Deploying Pega Platform on AWS
Deploy Pega Platform™ on Amazon Web Services (AWS) to take advantage of Pega Platform Cloud Choice flexibility. This article provides general instructions for creating typical Pega Platform environments on AWS.
This content applies to Cloud Choice deployments using Pega Platform software versions prior to 8.2. To explore the latest information about the Cloud Choice deployment solution using Kubernetes across client-managed environments, see Cloud Choice.
The most common Pega Platform environments deployed to AWS are:
- A single-node development or test environment is the simplest configuration and typically consists of a single Amazon Elastic Compute Cloud (Amazon EC2) instance with Pega Platform installed and an Amazon Relational Database Service (Amazon RDS) instance. This configuration is typically used for proof-of-concept development or testing.
- A shared development environment typically includes multiple Amazon EC2 instances, an Amazon RDS instance, and an AWS Elastic Load Balancer (AWS ELB) to support development across several teams. Use auto scaling for high-availability.
- An advanced multi-tiered environment is typically used for production deployments or pre-production testing. In this environment, separate tiers of servers are added to address specific needs such as front-end processing, back-end processing, and database services.
Assumptions and best practices
The instructions assume the following:
- You have access to the AWS Management Console.
- You are using Amazon RDS for PostgreSQL. If you choose to use another supported database, the general content in this article still applies to your environment. For a list of supported application servers and databases, see the Platform Support Guide.
- All Pega Platform resources are provisioned in the same AWS region.
- All Amazon AWS and Pega Platform resources are contained in single Amazon Virtual Private Cloud (Amazon VPC).
- Each Amazon EC2 instance includes only one Pega Platform node.
bypass.udf.generation=true
in the setupDatabase.properties file. For more information, see your Pega Platform Installation Guide.System requirements
Before you continue, ensure that you have access to the following items:
- Pega Platform installation file.
- A supported JDK. See the Platform Support Guide for a list of supported versions.
- A supported application server. See the Platform Support Guide for a list of supported versions.
- The JDBC driver JAR file. See the Platform Support Guide for a list of supported files.
Typical environments
Each of these typical environments includes similar components with increasing complexity.
Development or test environment
The development or test reference environment provides a minimal Pega Platform environment at the lowest cost. This environment is appropriate for proof-of-concept development and testing. The following graphic shows a simple development environment with one Amazon EC2 instance.
A typical development or test environment includes the following Amazon AWS resources:
- AWS Region — A single region is used for all AWS resources.
- Amazon VPC — All resources for this environment are contained in a single Amazon VPC.
- Amazon EC2 instances — The development or test environment requires only a single Amazon EC2 instance that performs all Pega Platform roles.
- Amazon RDS instance —All Pega Platform database assets live inside a single database.
- Availability zone — A single availability zone is used for the Amazon EC2 instance and the Amazon RDS instance.
- Security groups — This environment includes two security groups to create different security zones for each tier:
- A security group for the Amazon EC2 instance
- A separate security group for the Amazon RDS instance
Creating the development or test environment
Follow these general steps to create a development or test environment by using the AWS Management Console:
- Launch one Amazon EC2 instance that meets the following minimum requirements:
- Instance type — m4.large
- Storage — 10 GB minimum disk space plus at least 8 GB available space in the temporary directory of the root file system
- Security group — Create a new security group; open all required ports to allow traffic into your application server and to allow for remote access for administration.
- Launch one Amazon RDS instance that meets the following minimum requirements:
- Region — Use the same AWS region as the Amazon EC2 instance
- Availability zone — Use the same availability zone as the Amazon EC2 instance.
- DB Instance class — db.m4.large
- Security group — Create a new security group; open all required ports to allow traffic into your Amazon RDS instance from your application server and to allow for remote access for administration.
- Open the Pega Platform Installation Guide for your application server and follow the instructions to perform the following:
- Create the rules and data schema on the Amazon RDS instance.
- Install Pega Platform on the Amazon RDS instance.
- Configure the application server and deploy the Pega Platform WAR or EAR files.
- Complete the post-installation tasks.
Shared development environment
The shared development environment supports multiple development teams. The load-balanced application layer makes it an appropriate production environment for a small, non-mission-critical application. The shared development environment is less expensive than an advanced environment.
The following graphic shows additional Pega Platform EC2 instances and Amazon RDS instances. The AWS ELB is added for load balancing.
A typical shared development environment includes the following AWS resources:
- Region — A single region is used for all AWS resources.
- Amazon VPC — All resources for this environment are contained in a single Amazon VPC.
- AWS ELB — Use either a Classic Load Balancer or an Application Load Balancer to load-balance Pega Platform applications.
- Amazon EC2 instances — Multiple Amazon EC2 instances increase the capacity and availability of the Pega Platform environment. These Amazon EC2 instances perform all Pega Platform roles.
- Amazon RDS —All Pega Platform database assets live inside a multi-AZ RDS deployment.
- Availability zones — This configuration includes two availability zones:
- The Amazon EC2 instances are launched across two availability zones for high-availability and failover.
- The Amazon RDS instances are configured in a multi-AZ deployment for high availability and failover.
- Auto Scaling group — The Amazon EC2 instances are launched in an auto scaling group for high availability and failover.
- Security groups — This environment includes three security groups to create different security groups for each tier:
- A security group for the Amazon EC2 instances
- A second security group for the Amazon RDS instance
- A third security group for the AWS ELB
Creating the shared development environment
Follow these general steps to create a development or test environment by using the AWS Management Console:
- Launch an environment that meets the criteria for the development or test environment.
- Create an AWS ELB that you will use for load balancing the EC2 instances configured in an auto scaling group.
- Create a snapshot of the existing Amazon EC2 instance and from that snapshot, create an Amazon Machine Image (AMI).
- Create the auto scaling group:
- Use the new AMI to create the auto scaling group launch configuration. Select the existing security group created when you launched the development or test environment.
- Create and configure the auto scaling group to ensure that at least one Amazon EC2 instance is launched and running in each availability zone.
- Configure load balancing to use the AWS ELB you created in step 2.
- Update the Amazon RDS instance:
- For high availability and failover, enable multi-AZ deployment option.
- Update the DB Instance class based on your capacity requirements. Use one of the following values:
- db.m4.xlarge
- db.m4.2xlarge
- db.m4.4xlarge
Advanced multi-tiered environments
The advanced multi-tiered environment is typically used for production deployments, or for pre-production testing such as load or stress testing. Use Amazon EC2 auto scaling groups and an Amazon RDS multi-AZ deployment for high availability and failover.
This environment includes separate tiers for specific Pega Platform roles. Roles can be either front-end (user-facing), or back-end. Example Pega Platform roles include the following:
- Universal — This is the default role for any Pega Platform node that performs the functions of all front-end and back-end Pega Platform nodes.
- WebUser — A front-end role that performs only UI tasks.
- Search — A back-end role that performs only search-related tasks such as indexing, query processing, and crawling.
- SMA — A back-end role that serves System Management Application (SMA).
- BIX — A back-end role to support Business Intelligence Exchange (BIX).
- Background Processing — Back-end roles that perform only Agent Schedules and batch job tasks.
- Decisioning — A back-end role to optimize Decision Strategy Manager (DSM)-related tasks. The decisioning role can be further specialized to handle specific components of DSM, for example:
- Cassandra Data Node
- Virtual Business Director
- Adaptive Data Manager
For more information about DSM, see Decision Strategy Manager (DSM)— Landing pages.
The following graphic shows a second Pega Platform auto-scaling group that could be used for any of the Pega Platform roles.
A typical advanced multi-tiered environment includes the following AWS resources:
- Region — A single region is used for all AWS resources.
- Amazon VPC — All resources for this environment are contained in a single Amazon VPC.
- AWS ELB — Use one or more AWS ELBs, either Classic Load Balancers or Application Load Balancers to load-balance Pega Platform applications.
- Amazon EC2 instances — Multiple Amazon EC2 instances increase the capacity and availability of the Pega Platform environment. Some Amazon EC2 instances perform the Universal role; other instances perform additional roles, such as Search.
- Amazon RDS —All Pega Platform database assets live inside a multi-AZ RDS deployment.
- Availability zone — There are two availability zones. Each availability zone includes the following:
- Amazon EC2 instances that perform the Universal role in an application tier
- Amazon EC2 instances that perform other roles in separate tiers, for example, a separate search tier
- Amazon RDS instances configured in a multi-AZ deployment
- Auto Scaling group — All Amazon EC2 instances are launched in auto scaling groups for high availability and failover.
- Security groups — There are three security groups:
- A security group for the Amazon EC2 instances
- A second security group for the Amazon RDS instance
- A third security group for the AWS ELB
Creating the advanced multi-tiered environment
Follow these general steps to create an advanced multi-tiered environment by using the AWS Management Console:
- Create an environment that meets the criteria for a shared development environment.
- Create a new tier:
- Create an AWS ELB that will be used to load balance the Amazon EC2 instances configured in an auto scaling group.
- Create an auto scaling group:
- Use the custom AMI you created for the shared development environment to create the auto scaling group launch configuration.
- Optional: Change the instance type based on your capacity requirements. The following are valid values:
- m4.large
- m4.xlarge
- m4.2xlarge
- Create and configure the auto scaling group to ensure that at least one Amazon EC2 instance is launched and running in each availability zone.
- Configure load balancing to use the AWS ELB you created in step 2a.
- Update the Amazon RDS instance:
- For high availability and failover, enable multi-AZ deployment option.
- Update the DB Instance class based on your capacity requirements. Use one of the following values:
- db.m4.xlarge
- db.m4.2xlarge
- db.m4.4xlarge
Previous topic Deploying Pega Platform on GCP Next topic Deploying Pega Platform on MS Azure