AWS Stack8 R21 Runbook Customer
AWS Stack8 R21 Runbook Customer
Contents
1 About this runbook 5
1.1 Legal 6
1.2 History 7
2 Introduction 8
2.1 Prerequisites 8
2.2 Terminology 9
2.3 Architecture 10
2.4 AWS Transact architecture diagram 11
2.5 Architecture diagram 13
3 Creating the IAM roles 14
3.1 Creating the ECS role 14
4 Creating the VPC 17
5 Creating the VPC endpoints 18
5.1 Creating the shared security group 18
5.2 Creating an Elastic Container Registry (ECR) endpoint 18
5.3 Creating a CloudWatch endpoint 19
5.4 Creating an S3 endpoint 20
5.5 Creating a Secrets Manager endpoint 20
6 Creating the Subnets 22
7 Creating the Amazon MQ Broker 24
7.1 Creating the broker security group 24
7.2 Creating the broker 24
8 Restoring an RDS instance 26
8.1 Creating the RDS snapshot 26
8.2 Creating the database subnet group 27
8.3 Creating the RDS security group 27
8.4 Restoring the database 27
9 Creating secrets in Secrets Manager 29
9.1 Configuring an MQ broker secret 29
9.2 Creating an RDS instance secret 31
10 Creating the ECS services 32
10.1 Creating the cluster 32
10.2 Creating the task definitions 33
10.2.1 Creating the application task definition 33
10.2.2 Creating the web task definition 37
2
Stack 8 Cloud AWS Internal Runbook
3
Stack 8 Cloud AWS Internal Runbook
4
Stack 8 Cloud AWS Internal Runbook
5
Stack 8 Cloud AWS Internal Runbook
1.1 Legal
TM
The information in this guide relates to TEMENOS information, products and services. It also
includes information, data and keys developed by other parties.
While all reasonable attempts have been made to ensure accuracy, currency and reliability of the
content in this guide, all information is provided "as is".
There is no guarantee as to the completeness, accuracy, timeliness or the results obtained from the
use of this information. No warranty of any kind is given, expressed or implied, including, but not limited
to warranties of performance, merchantability and fitness for a particular purpose.
In no event will TEMENOS be liable to you or anyone else for any decision made or action taken in
reliance on the information in this document or for any consequential, special or similar damages, even
if advised of the possibility of such damages.
TEMENOS does not accept any responsibility for any errors or omissions, or for the results obtained
from the use of this information. Information obtained from this guide should not be used as a substitute
for consultation with TEMENOS.
References and links to external sites and documentation are provided as a service. TEMENOS is not
endorsing any provider of products or services by facilitating access to these sites or documentation
from this guide.
The content of this guide is protected by copyright and trademark law. Apart from fair dealing for the
purposes of private study, research, criticism or review, as permitted under copyright law, no part may
be reproduced or reused for any commercial purposes whatsoever without the prior written permission
of the copyright owner. All trademarks, logos and other marks shown in this guide are the property of
their respective owners.
6
Stack 8 Cloud AWS Internal Runbook
1.2 History
7
Stack 8 Cloud AWS Internal Runbook
2 Introduction
This Stack 8 Cloud AWS Runbook will guide you through creating the AWS Transact1 architecture
shown in the diagram below.
l Creating a VPC3.
l Setting up and configuring BrowserWeb and/or UXP Browser,Transact and a Temenos API
services.
NOTE: This runbook does not cover creation of the Transact app, BrowserWeb, UXP web or API container
images or restoring a Transact database in RDS. For guidance on building the container images, please
refer to the delivery note document in your preimage kit. To find out how to do the RDS database restore,
this, see Saving Database Images as EBS AWS Snapshots.
2.1 Prerequisites
To use this guide effectively, there are a few requirements regarding your AWS environment. You
need:
8
Stack 8 Cloud AWS Internal Runbook
l UXP app and web container stored in ECR if deploying UXP Browser.
l A valid SSL certificate linked to a domain name that is either stored in ACM or can be uploaded to
ACM when required. This is needed for using SSL listeners on the load balancer.
2.2 Terminology
In this guide, you will create a cluster, task definitions, and then services to run instances of the task
definitions in the cluster.
Cluster
A cluster is a regional grouping of one or more container instances on which you can run task
requests. Each account receives a default cluster the first time you use the Elastic Container Service
(ECS1).
It is possible to associate Virtual Machines with a cluster to run tasks on, but we are only using
Fargate2 services, and the cluster automatically provisions hardware for the tasks belonging to
Fargate services.
Container
A container is an environment in which a piece of software can run, isolated like a virtual machine but
more lightweight.
Task Definition
A task definition sets the parameters for a task. The definition sets the name of the task, the amount of
allocated hardware for the task to utilise, and one or more container configurations. Each container
configuration section defines the name of the container within the task, the container image to be
used, the network ports to be exposed, and environment variables. (It is approximately equivalent to a
deployment in Kubernetes.)
Service
9
Stack 8 Cloud AWS Internal Runbook
A service lets you specify how many copies of your task definition to run and maintain in a cluster, and
what network subnets to run them in. You can optionally use an Elastic Load Balancing load balancer
to distribute incoming traffic to the tasks in your service. Amazon ECS maintains that number of tasks
and coordinates task scheduling with the load balancer.
Task
A task is a running instance of a task definition in a service. It consists of one or more containers. (It is
equivalent to a pod in Kubernetes.)
Container Image
A container image is what the container defined in a task definition will run. The images used in this
reference architecture consist of an operating system (typically CentOS or Alpine Linux), and installed
software.
In this reference architecture, the images used will have OpenJDK1, WildFly2, and Transact/TAFJ
installed and configured. The image also contains a command that is executed when the image is run
in a task. In this case, the command starts the WildFly servers, which run the Temenos products
(UXP,BrowserWeb, TAFJJEE and so on.).
NOTE: In this guide, you will create a cluster, task definitions, and then services to run instances of the task
definitions in the cluster.
2.3 Architecture
l The Lambda function (handled routing between the network & application load balancers (ALB) )
1OpenJDK is a free and open-source implementation of the Java Platform, Standard Edition.
2WildFly, formerly known as JBoss AS, or simply JBoss, is an application server authored by JBoss, now developed by Red Hat.
10
Stack 8 Cloud AWS Internal Runbook
These have been replaced with a single HTTP API in the API Gateway. When we previously designed
the architecture with the ‘isolated’ network configuration (i.e. the VPC was not directly exposed via the
internet, rather it was accessed over a Private Link via API Gateway and CloudFront) HTTP APIs were
not available, so we had to use REST APIs.
The REST APIs could only be linked to an NLB that resided in the VPC, not an ALB, so despite the fact
we used an ALB to route traffic to our front-end products, we had to go via an NLB so that we could use
the API Gateway. This required a Lambda function that routed traffic from the NLB to the ALB via a
periodic DNS lookup, and then on to the application. This was a stopgap and not a desirable solution in
the long run. Now however, with the release of HTTP APIs, we can simplify the architecture by
removing CloudFront, the network load balancer and the Lambda function.
In this architecture, both the classic ‘BrowserWeb’ and the new UXP Browser have been tested – this
runbook will include the process for deploying both browsers. You can opt to use one browser and only
follow the appropriate sections, or you can deploy both. It should be noted that for UXP, the app image
has additional deployments and configuration compared to a standard app image used only by
BrowserWeb or APIs, so if you choose to deploy both browsers you will have two app services, though
they will ultimately still talk to the same Transact database.
The architecture consists of three services - a Transactapplication service, a BrowserWeb1 service and
a PSD22 payments API service. BrowserWeb and the API are accessed from outside the VPC through
the API gateway and load balancers that you will set up using this guide.
11
Stack 8 Cloud AWS Internal Runbook
We will deploy a CloudFront1 (a content delivery network service) distribution in front of the API
gateway to mitigate issues that the BrowserWeb redirects can cause. From there, BrowserWeb and the
API services will communicate with the Transactapplication service through an Amazon MQ2 broker.
1A fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency and
high transfer speeds.
2A managed message broker service for ActiveMQ that makes it easy to set up and operate message brokers in the cloud.
12
Stack 8 Cloud AWS Runbook
13
Stack 8 Cloud AWS Internal Runbook
Procedure
1Identity and access management (IAM) is a framework of business processes, policies and technologies that facilitates the management of electronic or
digital identities. You can use an IAM framework to control user access to critical information within an organisation.
2AWS container orchestration service that supports Docker containers
3Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry.
14
Stack 8 Cloud AWS Internal Runbook
4. Under Select your use case, select Elastic Container Service Task.
15
Stack 8 Cloud AWS Internal Runbook
16
Stack 8 Cloud AWS Internal Runbook
Procedure
NOTE: You can give the resource any name you choose. We've followed this format, where Name- is
a variable of your own choosing, for demonstration purpose
3. Set the CIDR block to [Link]/16. This will define the range of IP addresses in your VPC.
5. On the next screen go to the Actions dropdown. Click Edit DNS hostnames.
8. Now go to Actions again and go to Edit DNS resolution and check the Enable checkbox.
17
Stack 8 Cloud AWS Internal Runbook
First we need a shared security group for the endpoints – this will allow your app and web services to
connect to the endpoint services.
1. Go to Services > EC2 > Security Groups > Create security group.
7. Click in the Source search box and select your app, web & API security groups from the
dropdown menu.
Procedure
3. Scroll down and select your VPC from the VPC drop-down menu.
18
Stack 8 Cloud AWS Internal Runbook
5. In the Security group table, select your ECR endpoint security group named Name-Endpoints-
SG.
9. Scroll down and select your VPC from the VPC drop-down menu.
11. In the Security group table, select your ECR endpoint security group named Name-Endpoints-
SG.
Procedure
3. Scroll down and select your VPC from the VPC drop-down menu.
5. In the Security group table, select your endpoint security group named Name-Endpoints-SG.
19
Stack 8 Cloud AWS Internal Runbook
Procedure
2. In the Service Name table, find [Link]-west-1.s3 and select the Gateway.
3. Scroll down and select your VPC from the VPC drop-down menu.
Procedure
20
Stack 8 Cloud AWS Internal Runbook
3. Scroll down and select your VPC from the VPC drop-down menu.
5. In the Security group table, select your endpoint security group named Name-Endpoints-SG.
21
Stack 8 Cloud AWS Internal Runbook
No services are directly publicly exposed, so there is no need for any publicly exposed subnets.
We need to create two, each in a separate availability zone (AZ) for high availability.
Procedure
22
Stack 8 Cloud AWS Internal Runbook
8. Set the Availability Zone to the second zone for the given region – in US-WEST-1 for example
this would be 1c.
23
Stack 8 Cloud AWS Internal Runbook
If you are only deploying UXP and not BrowserWeb, APIs or any other JMS based products, then this
section can be skipped.
Procedure
1. Go to Services > EC2 > Security Groups, located in the left menu bar under the Network &
Security section.
Procedure
24
Stack 8 Cloud AWS Internal Runbook
7. Under Network and security, set VPC and subnets to Select existing VPC and subnet(s).
Select your VPC and one of your isolated subnets from the drop-down menus.
8. Under Security group(s), select the option Select existing security groups and select your
security group (Name-Transact-MQ-SG).
NOTE: The broker takes approximately 10 - 15 minutes to create. You can continue with the next
section.
25
Stack 8 Cloud AWS Internal Runbook
3. Set the Snapshot name to a name of your choosing, for example Transactdb, and then click
Take Snapsho.
26
Stack 8 Cloud AWS Internal Runbook
Procedure
1. Go to Services > RDS > Subnet groups > Create DB Subnet Group.
2. Name it name-db-sng.
5. In the Add subnets section, check both availability zones in the Availability Zones drop down.
7. Click Create.
Procedure
1. Go to Services > EC2 > Security Groups > Create Security Group.
5. Click Create security group. We will add ingress rules to the group at a later stage that allow the
app service to connect to the database.
Procedure
27
Stack 8 Cloud AWS Internal Runbook
1. Go to Services > RDS and navigate to the Snapshots tab in the left side bar.
NOTE: This instruction is for demonstration purposes only. Configure the hardware settings
according to your needs.
9. In the VPC security groups section, select Choose existing VPC security groups.
11. Remove the default (VPC) security group by clicking the cross.
28
Stack 8 Cloud AWS Internal Runbook
NOTE: Skip this section if you have not deployed Amazon MQ.
Procedure
1AWS Secrets Manager helps you protect secrets needed to access your applications, services, and IT resources. It also allows you to control access to
secrets using fine-grained permissions and audit secret rotation centrally for resources in the AWS Cloud, third-party services, and on-premises.
29
Stack 8 Cloud AWS Internal Runbook
4. In the text box, delete the existing characters and enter the password that you set when you
were creating the user at broker creation.
5. Click Next.
7. Click Next.
NOTE: Automatic rotation is the process of periodically changing the encrypted key of the secret to
ensure ongoing security of the stored value(s). This is good practice in a production environment but
we won't use automatic rotation for this demonstration environment.
9. Click Next.
30
Stack 8 Cloud AWS Internal Runbook
Procedure
3. Set your database username and password in the User name and Password boxes.
4. Select your RDS instance from the list at the bottom of the page.
5. Click Next.
31
Stack 8 Cloud AWS Internal Runbook
3. The load balancers that route traffic from the API gateway to the services.
Procedure
32
Stack 8 Cloud AWS Internal Runbook
Before you can create services that run the Transact containers in your newly created cluster, you must
create task definitions that define the container parameters, such as container image, dedicated
memory, the number of virtual CPUs, and the runtime environment variables.
Procedure
2. Click Create new Task Definition. On the next page choose Fargate and click Next step.
3. Give the task definition the name Name-Transact-App, and set the Task Role to
ecsTaskExecutionRole.
4. Scroll down to the section titled Task Size. This is where you define the memory and number of
virtual CPUs to be allocated to the task. As this is going to be the application service running
Transact, set the memory to 4GB, and the number of vCPUs to 2.
33
Stack 8 Cloud AWS Internal Runbook
6. Name the container Transact-App. In the Image text box, paste the following ECR endpoint URI
of your app image.
8. In a new tab in your browser (do not close your current task definition tab), go to the AWS
console and navigate to Services > AmazonMQ, find your broker and click it.
10. Switch back to your ECS task definition tab, scroll down to the Environment section and add a
Key field, set to JMS_URL.
34
Stack 8 Cloud AWS Internal Runbook
12. In your second tab, navigate to Services > RDS > DB Instances and click on your instance ID.
Copy the Endpoint value.
13. Switch back to your task definition tab and set a new Key value to DB_URL.
15. Insert the following before the copied endpoint in the Value field.
For Oracle:
jdbc:oracle:thin:@
For PostgreSQL:
jdbc:postgresql://.
16. Append the following to the end of the connection string where <DBNAME> is the database
name:
For Oracle:
:1521/<DBNAME>
For PostgreSQL:
:1521/<DBNAME>
35
Stack 8 Cloud AWS Internal Runbook
17. Add a Key of JMS_USER, and set the value to the username that you specified when creating
the broker.
18. Add another Key named DB_USER and set the value to change the Value dropdown to
ValueFrom.
21. Switch back to your task definition tab and paste the copied ARN in the Value box, and append
:username::
24. Paste the copied ARN in the Value box and append :password:
36
Stack 8 Cloud AWS Internal Runbook
25. Switch back to your Secrets Manager tab and go to your MQ secret.
27. Switch back to your task definition tab and add another Key entry with the value JMS_
PASSWORD.
Procedure
1. Go back to the task definitions section in ECS. Click Create new Task Definition, choose
Fargate and click Next step.
37
Stack 8 Cloud AWS Internal Runbook
4. Give it the name Transact-Web and paste the ECR endpoint URI of your web image in the
Image text box.
6. In a new tab in your browser (do not close your current task definition tab). Go to the AWS
console and navigate to Services > AmazonMQ, find your broker and click it.
8. Switch back to your ECS task definition tab and set the Key field to JMS_URL under the
Environment section.
38
Stack 8 Cloud AWS Internal Runbook
10. Add a Key of JMS_USER and set the value to the user username that you specified when you
created the broker.
11. In your other open tab, navigate to Services > Secrets Manager.
14. Switch back to your task definition tab and add another Key entry named JMS_PASSWORD.
39
Stack 8 Cloud AWS Internal Runbook
The API service deploys a PSD21 payments API. This allows GET and POST requests to be executed
from a REST client against Transactthat can create payment orders and retrieve information regarding
existing orders.
Procedure
1. Go back to the task definitions section in ECS. Click Create new Task Definition, choose
Fargate and click Next step.
1Revised Directive on Payment Services (PSD2). The new rules aim to better protect consumers when they pay online, promote the development and
use of innovative online and mobile payments such as through open banking, and make cross-border European payment services safer.
40
Stack 8 Cloud AWS Internal Runbook
5. Give it the name Transact-API paste the ECR endpoint URI of your API image in the Image text
box.
7. In a new tab in your browser (do not close your current task definition tab), go to the AWS
console and navigate to Services > AmazonMQ, find your broker and click it.
9. Switch back to your ECS task definition tab and set the Key field to JMS_URL under the
Environment section.
41
Stack 8 Cloud AWS Internal Runbook
11. Add a Key of JMS_USER and set the value to the username that you specified when created the
broker.
12. In your other open tab, navigate to Services > Secrets Manager.
15. Switch back to your task definition tab and add another Key entry named JMS_PASSWORD.
42
Stack 8 Cloud AWS Internal Runbook
Procedure
2. Click Create new Task Definition. On the next page choose Fargate and click Next step.
3. Give the task definition the name Name-Transact-App-UXP and set the Task Role to
ecsTaskExecutionRole.
4. Scroll down to the section titled Task Size. This is where you define the memory and number of
virtual CPUs to be allocated to the task. As this is going to be the application service running
Transact with the UXP components, set the memory to 12GB, and the number of vCPUs to 4.
6. Name the container Transact-App-UXP. In the Image text box, paste the ECR endpoint URI of
your UXP app image.
8. In your second tab, navigate to Services > RDS > DB Instances and click on your instance ID.
Copy the Endpoint value.
9. Switch back to your task definition tab and under the Environment section set a new Key value
to DB_URL.
11. Insert the following before the copied endpoint in the value field.
For Oracle:
43
Stack 8 Cloud AWS Internal Runbook
jdbc:oracle:thin:@.
For PostgreSQL:
jdbc:postgresql://.
For Oracle:
:1521/TRANSACTDB
For PostgreSQL:
:5432/TRANSACTDB?autosave=always
13. Add another Key named DB_USER and change the Value dropdown to ValueFrom.
16. Switch back to your task definition tab and paste the copied ARN in the Value box, and append
:username::
17. Add another Key with the value of DB_PASSWORD and change the Value dropdown to
ValueFrom.
44
Stack 8 Cloud AWS Internal Runbook
23. Scroll down to the Resource Limits section and set the dropdown to NOFILE.
24. Set the Soft limit to 1024 and the Hard limit to 5048.
Procedure
1. Go back to the task definitions section in ECS. Click Create new Task Definition, choose
Fargate and click Next step.
5. Give it the name Transact-Web-UXP and paste the image ECR URI in the Image text box.
7. Under the Environment section, add a Key named APP_PWD and set the value to 123456.
45
Stack 8 Cloud AWS Internal Runbook
46
Stack 8 Cloud AWS Internal Runbook
At a later stage in this runbook, you will create an API in the AWS API Gateway service. This API will
utilise a VPC Link which is a private connection to a given resource that resides within a private VPC. In
this architecture, the VPC Link will be to your application load balancer. The VPC link needs a security
group – this will then be referenced in you ALB security group, thus allowing the API traffic to reach the
ALB.
Procedure
1. Go to Services > EC2 > Security Groups > Create security group.
Now you will create the security group for the application load balancer. This will permit traffic from the
API Gateway & VPC Link to the load balancer, and thus the Temenos applications
47
Stack 8 Cloud AWS Internal Runbook
1. Go to Services > EC2 > Security Groups > Create security group.
6. Select your ALB security group, and go to Actions > Edit inbound rules.
8. In the Source field, paste the ID of the VPC link security group that you copied in the previous
section.
In this section you will create the security group which allows traffic from the load balancer to the front-
end Temenos application tasks.
Procedure
3. Select it and copy the Group ID value by clicking the clipboard icon.
48
Stack 8 Cloud AWS Internal Runbook
10. In the Source field, paste the copied group ID value and select the security group from the
dropdown.
11.4
Creating the application service security group
In this section you will create the security group which allows traffic from the load balancer to the
Transact tasks.
Procedure
1. Go to Services > EC2 > Security Groups > Create Security Group.
6. Click in the Source field, and in the dropdown, find and select your web security group (Name-
Web-SG).
11.5
Creating the API service security group
Here you will create the security group that allows traffic from the load balancer to the API tasks.
Procedure
49
Stack 8 Cloud AWS Internal Runbook
1. Go to Services > EC2 > Security Groups > Create Security Group.
9. Click Create.
11.6
Updating the Amazon MQ broker security group
After you have created your app and web service security groups, you need to update your MQ broker
security group to allow connections from them and to allow the web and app containers to connect to
the broker.
50
Stack 8 Cloud AWS Internal Runbook
Procedure
9. Click Save.
51
Stack 8 Cloud AWS Internal Runbook
12. Now search for your MQ security group again (Name-Transact-MQ-SG) and select it.
19. Search for your API service security group (Name-API-SG) and select it.
52
Stack 8 Cloud AWS Internal Runbook
21. Search for your MQ security group again (Name-Transact-MQ-SG) and select it.
27. Click Save. Your services will now be allowed to connect to the messaging broker when they are
deployed.
11.7
Updating the RDS instance security group
You also need to update your database security group to allow connections from the application service
only.
Procedure
53
Stack 8 Cloud AWS Internal Runbook
7. From the Type drop-down menu, select Oracle-RDS or PostgreSQL depending on which
database you are using.
9. Click Save.
Now you need to update the load balancer security group to ensure traffic can be routed to the app and
web services.
Procedure
54
Stack 8 Cloud AWS Internal Runbook
9. Click Save.
12. Now search for your MQ security group again (Name-Transact-MQ-SG) and select it.
55
Stack 8 Cloud AWS Internal Runbook
19. Search for your API service security group (Name-API-SG) and select it.
21. Search for your MQ security group again (Name-Transact-MQ-SG) and select it.
27. Click Save. Your services will now be allowed to connect to the messaging broker when they are
deployed.
You must now update your shared security group to allow traffic from your web, app and API security
groups– this will allow your services to connect to the endpoints.
1. Go to Services > EC2 > Security Groups and find your endpoints security group (Name-
Endpoints-SG) and select it.
56
Stack 8 Cloud AWS Internal Runbook
5. Click in the Source search box and select your app, web & API security groups from the
dropdown menu.
57
Stack 8 Cloud AWS Internal Runbook
Procedure
1. Go to Services > EC2 > Load Balancers > Create Load Balancer.
6. Under the Availability Zones section, select your VPC from the VPC drop-down menu.
NOTE: Note: At this point you need to either choose an existing ACM or IAM or certificate or upload
one.
9. Choose the certificate and then click Next: Configure Security Groups.
58
Stack 8 Cloud AWS Internal Runbook
11. Select the load balancer security group that you created previously (Name-LB-SG).
59
Stack 8 Cloud AWS Internal Runbook
13 Creating services
Now that you have your task definitions and subnets ready, it is time to create the services for Transact
and BrowserWeb.
Procedure
1. Go to Services > ECS > Clusters > Name-Transact-Cluster > Services > Create.
60
Stack 8 Cloud AWS Internal Runbook
10. Choose Select existing security group and select your app security group (Name-App-SG)
and click Save.
11. Scroll down and leave Load balancer type set to None.
Procedure
3. For task definition, choose Name-Transact-Web and for the revision choose the latest.
7. Choose your VPC for Cluster VPC, and both web subnets for the Subnets field.
61
Stack 8 Cloud AWS Internal Runbook
10. Select your web security group (Name-Web-SG) and click Save.
12. Under the load balancer section, select Application Load Balancer.
14. Set the Health check grace period above the load balancer section to 180.
17. Set Target group name to Create new and name it Name-BrowserWeb-TG.
19. Set the Path Pattern to /BrowserWeb* and the Evaluation order to 1.
21. Click Next step, Next step again and then Create Service.
62
Stack 8 Cloud AWS Internal Runbook
You can create the API service, which will allow POST and GET requests to be executed against
Transact.
Procedure
3. For task definition, choose Name-Transact-API, and for the revision choose the latest.
7. Choose your VPC for Cluster VPC, and both web subnets for the Subnets field.
11. Under the Load balancing section, select Application Load Balancer.
12. Set the Health check grace period above the load balancer section to 180.
13. Select your application load balancer from the drop-down menu (Name-ALB).
16. Set Target group name to create new and name it Name-API-TG.
17. 17. Set the Path pattern to /irf-psd2-BG-LUXHUB-* and the Evaluation Order to 1.
63
Stack 8 Cloud AWS Internal Runbook
Procedure
1. Go to Services > ECS > Clusters > Name-Transact-Cluster > Services > Create.
64
Stack 8 Cloud AWS Internal Runbook
10. Choose Select existing security group and select your app security group (Name-App-SG)
and click Save.
12. Scroll down and leave Load balancer type set to None.
13. Enable service discovery by checking the Enable service discovery integration checkbox.
65
Stack 8 Cloud AWS Internal Runbook
Procedure
1. Go to Services > ECS > Clusters > Name-Transact-Cluster > Services > Create.
10. Choose Select existing security group and select your app security group (Name-Web-
SG) and click Save.
12. Scroll down and leave Load balancer type set to Application Load Balancer.
13. Set the Health check grace period above the load balancer section to 180.
14. Select your load balancer in the Load balance name dropdown.
66
Stack 8 Cloud AWS Internal Runbook
17. Set the Target group name to create new and set the name to name-UXP-TG.
22. Enable service discovery by checking the Enable service discovery integration checkbox.
67
Stack 8 Cloud AWS Internal Runbook
You also need to configure health check parameters that give the web container more time to start up
and an increased timeout lenience - this prevents the health check from unnecessarily killing tasks it
deems to be unhealthy.
Procedure
1. Go to Services > EC2 > Target Groups and select your web target group (Name-
BrowserWeb-TG).
68
Stack 8 Cloud AWS Internal Runbook
8. Click Save.
Procedure
1. Go to Services > EC2 > Target Groups and select your API target group (Name-API-TG).
8. Click Save.
69
Stack 8 Cloud AWS Internal Runbook
15 API Gateway
Our AWS reference architecture uses API gateway as the single point of access to the VPC1.
Procedure
1. Go to Services > API Gateway > VPC links and click Create.
6. Select your VPC link security group in the Security groups section (Name-VPC-Link-SG).
7. Click Create.
Procedure
1A virtual private cloud (VPC) is an on-demand configurable pool of shared computing resources allocated within a public cloud environment,
providing a certain level of isolation between the different organizations (denoted as users) using the resources.
70
Stack 8 Cloud AWS Internal Runbook
4. Set the API name to Name-Transact-API, click Review and Create and then click Create.
Procedure
3. Click Create.
71
Stack 8 Cloud AWS Internal Runbook
6. Then in the Load balancer dropdown, select your load balancer (Name-ALB).
9. In the Secure server name field, you need to specify the domain name that your SSL certificate
it assigned to.
10. In the VPC link dropdown select your VPC link (Name-Transact-VPC-Link) and then click
Create.
11. Now go to Routes on the left menu bar and click Create.
13. Now go to Integrations again on the left menu bar and click on $default.
14. In the Choose an existing integration dropdown, select your integration (HTTPS:443 - Name-
ALB) and then click Attach integration on the right-hand side.
72
Stack 8 Cloud AWS Internal Runbook
Procedure
1. Go to Services > API Gateway > Your API and click the Invoke URL hyperlink.
2. Append /BrowserWeb or /Browser depending on which browser you deployed and login.
Procedure
73
Stack 8 Cloud AWS Internal Runbook
1. In a REST client, for example Insomnia, paste the API Gateway endpoint URL, append the
following string and set the method to POST:
/irf-psd2-BG-LUXHUB-PX/api/v1.0.0/order/paymentOrder/instantPayment
2. Set the body of the request to JSON, and paste the following data:
{
"header":{
},
"body":{
"debitAccountId": "14613",
"beneficiaryName": "TESTER",
"beneficiaryAccount": "10968",
"transactionAmount": 10000.40,
"paymentCurrency": "USD",
"chargeBearer": "OUR",
"instructionIdentification": "NOTHING",
"endToEndIdentification": "IDENTIFIED",
"paymentProduct": "DOMESTIC",
"chargeType": "COMMP2",
"chargeAmount": "10",
"chargeCurrency":"USD"
74
Stack 8 Cloud AWS Internal Runbook
Procedure
2. Paste the copied payment order ID at the end of the URL used for the POST request, for
example:
/irf-psd2-BG-LUXHUB-PX/api/v1.0.0/order/paymentOrder/PI191070HTH6Y3QJ/paymentStatus
75
Stack 8 Cloud AWS Internal Runbook
Procedure
In a REST client, for example Insomnia, paste the API Gateway URL, append the following string and
set the method to GET.
/irf-psd2-BG-LUXHUB-PZ/api/v1.0.0/party/accounts/balance/14613
The JSON response displays balance details of the account ID passed in the URL.
76
Stack 8 Cloud AWS Internal Runbook
Procedure
1. Go to Services > ECS > Clusters > Name-T24-Cluster > Name-T24-App > Update.
3. Set Service Auto Scaling to Configure Service Auto Scaling to adjust your service’s
desired count.
1A compute engine for Amazon ECS that lets you run containers without having to manage servers or clusters.
77
Stack 8 Cloud AWS Internal Runbook
15. Click Save, Next step and Update Service. Your app service will now scale up when the
average CPU utilization hits 25%.
78
Stack 8 Cloud AWS Internal Runbook
18 AWS Troubleshooting
The logs from each container are captured in ECS. You can access them through the AWS console in
various ways, but the view of the logs is better in the CloudWatch console than in the ECS console.
If you navigate to your Service in the console, you can get aggregated logs from each of the Tasks for
that service. These are sorted with the most recent output at the top. The Task Id is included.
NOTE: There are limitations to this view. The way the tasks are sorted leaves less room to see what is
actually going on - even when you expand an entry you cannot see much detail. Use this view for quickly
verifying that everything is okay rather than for diagnosing problems.
If you navigate to your Task in the console, there is a Logs tab, which is also sorted with the most
recent output at the top.
79
Stack 8 Cloud AWS Internal Runbook
If you stay on the Details tab of the Task view, you can open up the container details. You will find a link
there to the logs for that container.
80
Stack 8 Cloud AWS Internal Runbook
Following that link takes you to the CloudWatch Console, which gives you a much better view of the
logs.
In this view, the logs are sorted with older logs first. As you scroll down it will automatically populate the
more recent logs on the screen. If you are looking for something recent you can use the time selectors
at the top right (for example, 30s or 5m).
81
Stack 8 Cloud AWS Internal Runbook
On any of the screens you can search using the text box at the top. For instance, entering
ERROR returns the following results.
82
Stack 8 Cloud AWS Internal Runbook
There is an advanced search syntax which can reference the JSON fields of the log output. This means
you can pull out the logs from a single thread, for example:
[$ thread="default-threads - 24"]
83
Stack 8 Cloud AWS Internal Runbook
The TAFJ log files that in a legacy deployment would be found in separate log files are all included in
these logs. The JSON field loggerName identifies these log files.
For instance, to see the EJB log you would enter the following:
[$ loggerName="EJB"]
NOTE: You can also reach this screen without navigating through the ECS console. Go directly to
CloudWatch and select Logs from the left hand menu.
The Logs screen in CloudWatch lists Log Groups. For ECS, one log group is created for each task
definition – so all logs from all tasks that use the same task definition will be in the same log group.
A log group starts with /ecs/, so you can search for it on the main Logs screen, using the Filter box.
84
Stack 8 Cloud AWS Internal Runbook
NOTE: If you know the name of the task definition you can search for it directly.
When you select a log group, you will see the log streams in that log group. Each container creates its
own log stream. The name of the log stream is /ecs/<Container Name>/<Task ID>
The container name is the name of the container within the task definition. Most of our task definitions
have only a single container, but there is a possibility of putting more than one container in a task
definition if they need to work closely together.
85
Stack 8 Cloud AWS Internal Runbook
The application layer container will make a connection to the message broker as soon as it has
completed initialising. Look for the message Successfully established connection to broker. You
can search for the message in CloudWatch.
The application will not attempt to connect to the database until it receives a request that causes
Transact code to run. To look for database errors, search for the DATABASE log file.
86
Stack 8 Cloud AWS Internal Runbook
87
Stack 8 Cloud AWS Internal Runbook
NOTE: The AWS user guide explains how to access AWS resources using the AWS CLI. The CLI
configuration and obtaining an access key are also explained in the user guide.
[Link]
2. Configure the CLI. This includes logging in to your account. You do not log in to the CLI with your
password, you log in with an AWS Access Key which you can create in the AWS Console. See
the AWS user guide for more information.
[Link]
3. To obtain the logs you need, you need to get the log group name and log stream name, just as in
the CloudWatch console.
Remember that:
Download the logs you want with the aws logs command. In the follwing example:
88
Stack 8 Cloud AWS Internal Runbook
NOTE: Take care - the log group name starts with a leading slash (/ecs/… ), while the log stream
name starts without one (ecs/…)
The output file is a JSON object, containing the field events, which is an array of log entries. The log
entries contain a 'message' field, which is the actual log output. In our containers this is usually (but not
always) in JSON format too.
If you want to process the log files further, the jq command line tool is useful for parsing JSON files. It is
available on Linux or Windows:
[Link]
This next command identifies messages with a chosen timestamp and a particular error code in the
stackTrace field and then outputs that field unescaped.
$ jq -r '.events[].message|select(match("^{"))|fromjson|.timestamp?
= "2019-05-17T[Link].221Z"|select(.stackTrace?|strings|match
("IJ031084"))|.stackTrace'
89
Stack 8 Cloud AWS Internal Runbook
Take only the values that match a regular expression, in this case those that start with a {. Most (not
all) of our log messages are in JSON format, so jq can parse those and process their contents.
Step Description
'.timestamp? = "2019-05- Filter for the timestamp value I want. The ? prevents an error if
17T[Link].221Z" there is no timestamp field in a given entry.
End the select and pipe the entries that matched in the select
to another step. Only entries with a stackTrace field
containing “IJ0301084” will be piped to the next step. Note
)|
they are output complete, the things that were done within the
select condition were only to calculate the entries to use, they
did not modify those entries.
90
Stack 8 Cloud AWS Internal Runbook
NOTE: Using these tools gives you as much access to log output as a traditional deployment.
91
Stack 8 Cloud AWS Internal Runbook
21 TAFJEE Servlet
The TAFJEE Servlet is not currently available in the container image builds.
92
22 Glossary
A
ACR
Azure Container Registry allows you to store images for all types of container deployments.
Active Directory
Active Directory is a directory service developed by Microsoft for Windows domain networks. It is
included in most Windows Server operating systems as a set of processes and services.
ActiveMQ
Apache ActiveMQ is an open source message broker written in Java together with a full Java
Message Service client.
Amazon MQ
A managed message broker service for ActiveMQ that makes it easy to set up and operate
message brokers in the cloud.
Amazon RDS
Amazon Relational Database Service (or Amazon RDS) is a distributed relational database
service by Amazon Web Services (AWS). It is a web service running "in the cloud" designed to
simplify the setup, operation, and scaling of a relational database for use in applications.
AMQ
Apache ActiveMQ is an open source message broker written in Java together with a full Java
Message Service client.
AMQP
The Advanced Message Queuing Protocol (AMQP) is an open standard for passing business
messages between applications or organizations.
93
Apache Maven
Maven is a build automation tool used primarily for Java projects.
Apigee
Apigee, part of Google Cloud, helps you design, secure, and scale application programming
interfaces (APIs).
AWS
Amazon Web Services (AWS) is a subsidiary of Amazon that provides cloud computing platforms
to both individuals and organisations.
AWS CLI
AWS Command Line Interface (CLI) is a unified tool to manage your AWS services.
AWS Kinesis
Processes big data in real time. AWS Kinesis can process hundreds of terabytes per hour from
high volumes of streaming data from sources such as operating logs, financial transactions and
social media feeds
AWS Lambda
AWS Lambda is an event-driven, serverless computing platform provided by Amazon as a part of
the Amazon Web Services.
94
AWS DynamoDB
A fully managed proprietary NoSQL database service that supports key-value and document data
structures. It is offered by [Link] as part of the Amazon Web Services portfolio.
Axis2
Apache Axis2 is a core engine for Web services. Axis2 provides the capability to add Web
services interfaces to Web applications.
Azure Bastion
A platform-managed PaaS service you provision inside your virtual network. It provides secure
and seamless RDP/SSH connections.
Azure CLI
Azure command-line tool for managing Azure resources
Azure Functions
Azure Functions is the serverless computing service hosted on the Microsoft Azure public cloud.
Azure Monitor
Platform capability for monitoring your Azure resources. Azure Monitor allows you to collect
granular performance and utilisation data, activity and diagnostics logs, and notifications from
your Azure resources.
95
B
BrowserWeb
A Temenos browser, used for accessing the Transact application.
Cloudflare Workers
Cloudflare Workers lets developers deploy serverless JavaScript applications on Cloudflare's
global cloud network
CloudFront
A fast content delivery network (CDN) service that securely delivers data, videos, applications,
and APIs to customers globally with low latency and high transfer speeds.
CloudWatch
Collects monitoring and operational data in the form of logs, metrics, and events, providing you
with a unified view of AWS resources, applications, and services that run on AWS and on-
premises servers.
Container Registry
A private container image registry that runs on Google Cloud Platform. To control access to your
images you need to use a private registry such as Container Registry.
DDoS
Distributed Denial of Service. DDoS is a type of DOS attack where multiple compromised systems
are used to target a single system, causing a Denial of Service (DoS) attack.
Docker
A set of platform-as-a-service products that use virtualisation to deliver software in containers.
96
Dockerfile
Text document that contains all the commands a user could call on the command line to assemble
an image. Using docker build users can create an automated build that executes several
command-line instructions in succession.
EBS
Amazon Elastic Block Store (EBS) is an easy to use, high performance block storage service
designed for use with Amazon Elastic Compute Cloud (EC2).
EC2
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides compute capacity in
the cloud.
ECR
Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry.
Elasticsearch
A search engine based on the Lucene library. It provides a distributed, multitenant-capable full-
text search engine with an HTTP web interface and schema-free JSON documents. Elasticsearch
is developed in Java.
Fargate
A compute engine for Amazon ECS that lets you run containers without having to manage servers
or clusters.
97
FQDN
A fully qualified domain name (FQDN) is the complete domain name for a specific computer, or
host, on the internet. The FQDN consists of two parts: the hostname and the domain name.
GCE
Google Compute Engine (GCE) is the Infrastructure as a Service (IaaS) component of Google
Cloud Platform which is built on the global infrastructure that runs Google's search engine, Gmail,
YouTube and other services. Google Compute Engine enables users to launch virtual machines
(VMs) on demand.
GCP
Google Cloud Platform, offered by Google, is a suite of cloud computing services that runs on the
same infrastructure that Google uses internally for its end-user products, such as Google Search
and YouTube.
GCP IAM
Google Cloud Platform (GCP) offers Identity and Access Management (IAM), which lets you grant
granular access to specific GCP resources and prevents unwanted access to other resources.
GlusterFS
The GlusterFS architecture aggregates compute, storage, and I/O resources into a global
namespace. Each server plus attached storage is considered to be a node. Capacity is scaled by
adding either nodes or additional storage to each node. Performance is increased by deploying
storage among more nodes. High availability is achieved by replicating data n-way between
nodes.
HAProxy
HAProxy is open source software that provides a high availability load balancer and proxy server
for TCP and HTTP-based applications. HAProxy spreads requests across multiple servers.
98
helm
A tool that streamlines installing and managing Kubernetes applications.
IAM
Identity and access management (IAM) is a framework of business processes, policies and
technologies that facilitates the management of electronic or digital identities. You can use an IAM
framework to control user access to critical information within an organisation.
IIB v10
IBM Integration Bus version 10
Infinity
Temenos' digital front office, focused on customer journeys from acquisition through retention.
ingress
An object that allows access to your Kubernetes services from outside the Kubernetes cluster.
You configure access by creating a collection of rules that define which inbound connections
reach which services.
Insomnia
A cross-platform GraphQL and REST client, available for Mac, Windows, and Linux.
Integration
Communication between two or more systems.
Interaction
Communication between an automated system and a human user.
99
J
JBoss
JBoss Application Server (JBoss AS) is an open-source, cross-platform Java application server
developed by JBoss, a division of Red Hat Inc. JBoss AS is an open-source implementation of
Java 2 Enterprise Edition (J2EE) that is used for implementing Java applications and other Web-
based applications and software.
JDK
Java Development Kit
JMS
Java Message Service (JMS) is an application program interface (API) from Sun Microsystems
that supports the formal communication known as messaging between computers in a network.
jumpbox
A jump server, jump host or jump box is a computer on a network used to access and manage
devices in a separate security zone. The most common example is managing a host in a DMZ
from trusted networks or computers.
Kafka
Apache Kafka is an open-source stream-processing software platform developed by LinkedIn and
donated to the Apache Software Foundation, written in Scala and Java.
Kube client
Rust client for Kubernetes, containing rust reinterpretations of the Reflector and Informer
abstractions (but without all the factories) to allow writing kubernetes controllers/operators easily.
kubectl
Kubernetes tool used to deploy applications, inspect and manage cluster resources, and view
logs.
100
Kubernetes
Kubernetes (K8s) is an open-source system for automating deployment, scaling, and
management of containerized applications.
Kubernetes (K8S)
Open-source system for automating deployment, scaling, and management of containerized
applications
MongoDB
MongoDB is a cross-platform document-oriented database program. Classified as a NoSQL
database program, MongoDB uses JSON-like documents with schema.
MQTT
Lightweight messaging protocol for small sensors and mobile devices.
nginx-ingress
nginx-ingress is an Ingress controller that uses ConfigMap to store the nginx configuration. To
use, add the [Link]/[Link]: nginx annotation to your Ingress resources.
NMS
The NMS API (.Net Message Service API) provides a standard .NET interface to Messaging
Systems.
NSG
A Network Security Group is a networking filter (firewall) containing a list of security rules allowing
or denying network traffic to resources connected to Azure VNets.
NuoDB
Distributed SQL database built for the Enterprise.
101
O
OpenJDK
OpenJDK is a free and open-source implementation of the Java Platform, Standard Edition.
Oracle 12c
Oracle Database 12c is an enterprise-class database from Oracle. Its features include pluggable
databases and multitenant architecture.
Postman
Postman is a Google Chrome app for interacting with HTTP APIs. It includes a GUI for
constructing requests and reading responses.
PSD2
Revised Directive on Payment Services (PSD2). The new rules aim to better protect consumers
when they pay online, promote the development and use of innovative online and mobile
payments such as through open banking, and make cross-border European payment services
safer.
RabbitMQ
RabbitMQ is the open-source message-broker software that originally implemented the Advanced
Message Queuing Protocol
RDP
Remote desktop protocol (RDP) is a secure network communications protocol designed for
remote management, as well as for remote access to virtual desktops, applications and an RDP
102
terminal server.
RDS
Amazon Relational Database Service (or Amazon RDS) is a distributed relational database
service by Amazon Web Services (AWS). It is a web service running "in the cloud" designed to
simplify the setup, operation, and scaling of a relational database for use in applications.
rkt
An application container engine developed for production cloud-native environments.
Route 53
Amazon Route 53 is a highly available and scalable cloud Domain Name System (DNS) web
service.
S3
Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services that
provides object storage through a web service interface.
SOAP
SImple Object Access Protocol. An XML-based messaging protocol that uses HTTP.
SQL Server MI
Managed instance is a deployment option of Azure SQL Database, which is fully compatible with
the latest SQL Server on-premises (Enterprise Edition) Database Engine
SSH
Secure Shell (SSH) is a cryptographic network protocol for operating network services securely
over an unsecured network.
103
stdout
Stdout, also known as standard output, is the default file descriptor where a process can write
output. In Unix-like operating systems, such as Linux, macOS X, and BSD, stdout is defined by the
POSIX standard.
STOMP
Simple (or Streaming) Text Oriented Message Protocol (STOMP), formerly known as TTMP, is a
simple text-based protocol, designed for working with message-oriented middleware (MOM).
TAFJ
Temenos Application Framework Java
TAP
Triple'A Plus™ is the private banking platform from Temenos. It incorporates the best practices
adopted by the leading international financial institutions that specialise in wealth management
solutions for high net worth and ultra high net worth individual clients.
TLS
Transport Layer Security (TLS) is a cryptographic protocol designed to provide communications
security over a computer network.
tOP
Splunk-based Temenos data monitoring application
TPH
Temenos payments solution for high-value, low-volume payments in the corporate banking space
Transact
Temenos' core banking solution.
104
U
UXP Browser
The new browser from Temenos, designed to access the Transact application
VirtualBox
Oracle VM VirtualBox is a free and open-source hosted hypervisor for x86 virtualization,
developed by Oracle Corporation.
vNET
Azure Virtual Network (VNet) enables Azure resources, such as Azure Virtual Machines (VM), to
securely communicate with each other, the internet, and on-premises networks.
VPC
A virtual private cloud (VPC) is an on-demand configurable pool of shared computing resources
allocated within a public cloud environment, providing a certain level of isolation between the
different organizations (denoted as users) using the resources.
VPN
A virtual private network (VPN) is a network that connects remote users or regional offices through
the Internet to a company's private, internal network.
WebSocket
WebSocket is a computer communications protocol, providing full-duplex communication
channels over a single TCP connection.
WebSphere MQ
Renamed IBM MQ in 2014. IBM's enterprise messaging solution. It allows independent and
potentially non-concurrent applications in a distributed system to communicate securely with each
other.
105
Wildfly
WildFly, formerly known as JBoss AS, or simply JBoss, is an application server authored by
JBoss, now developed by Red Hat.
WIP
Work In Progress
106
AWS Secrets Manager enhances security by providing protection for secrets needed to access applications, services, and IT resources. It allows for fine-grained permissions control and centralizes the management of secret rotation. This improves security posture by reducing the risk of exposure through effective secret management and compliance adherence within cloud, third-party services, and on-premises resources .
AWS Lambda offers the advantage of being an event-driven, serverless computing platform where developers can run code in response to events without managing servers. It allows for executing code based on specific AWS services events, such as changes in S3 buckets or DynamoDB tables, thereby enhancing scalability and reducing infrastructure management overhead .
AWS DynamoDB is a fully managed NoSQL database service that supports key-value and document data structures, making it suitable for handling large-scale data operations due to its scalability, reliability, and flexibility . It offers automatic data distribution and replication across multiple regions for high availability and disaster recovery . Additionally, DynamoDB provides seamless integration with other AWS services and supports complex queries with no downtime . It ensures consistent performance regardless of the scale of data, making it ideal for applications that require low latency and high throughput .
To set up an application load balancer in AWS: 1. **Create a Security Group for the Load Balancer:** - Navigate to EC2 > Security Groups > Create security group. - Name it, e.g., `Name-LB-SG`, set the description, and select your VPC. Save it. - Edit inbound rules to allow traffic from the VPC link security group . 2. **Create the Load Balancer:** - Go to Services > EC2 > Load Balancers > Create Load Balancer. - Choose Application Load Balancer. Name it, e.g., `Name-ALB`, select the scheme as 'internal', and set the protocol to HTTPS . - Select the VPC and availability zones. Proceed to configure security settings and assign the security group created earlier . 3. **Configure Load Balancer Settings:** - Set the Production listener port (e.g., 443 for HTTPS). - Set up Target Groups, either by creating a new one or using existing ones. Name them descriptively, set the protocol (HTTPS), and configure paths and health checks . 4. **Set Health Check Parameters:** - Assign a health check path, e.g., `/`, and set a grace period (e.g., 180 seconds). 5. **Add to Load Balancer:** - Ensure the new or existing target groups are linked to the load balancer, with paths and evaluation orders set correctly . 6. **Final Steps:** - Confirm security groups for services linked to the load balancer and ensure integration with service discovery if necessary . Ensure all associated app and web services allow communication based on the load balancer setup . Crucial configurations include setting appropriate security groups and rules, configuring listener ports and protocols, and defining load balancer health checks.
Update the Amazon MQ broker security group by following these steps: 1. Go to Services > EC2 > Security Groups. 2. Find and copy the Group ID of your app security group (Name-App-SG). 3. Search and select your MQ broker security group (Name-Transact-MQ-SG). 4. Go to the Inbound tab and click Edit. 5. Select Custom TCP from the Type drop-down menu. 6. Set the Port Range to 61617. 7. Paste the app security group ID into the Source field and click Save . 8. Repeat these steps for the web service security group (Name-Web-SG) and the API service security group (Name-API-SG) by copying their respective Group IDs and adding them to the MQ broker security group's inbound rules with the same port and type settings .
Amazon RDS (Relational Database Service) plays a critical role in the AWS ecosystem by simplifying the setup, operation, and scaling of relational databases in the cloud. It automates complex tasks such as hardware provisioning, database setup, patching, and backups, which reduces administrative burdens and allows developers to focus on application development . By managing these aspects, RDS improves efficiency and reliability in database management, supporting a variety of database engines including Oracle and PostgreSQL. This reduces the need for in-depth database administration skills and streamlines operations . Additionally, Amazon RDS supports scaling operations, enabling databases to be scaled up or down according to demand, further enhancing flexibility and cost-efficiency in managing database infrastructure .
AWS API Gateway acts as the single point of access to the VPC, utilizing a VPC link that connects to an internal application load balancer (ALB) within a VPC. This setup allows API Gateway to route external HTTP API requests securely to the internal services running behind the ALB in the VPC, facilitating traffic management and distribution among backend services. By using API Gateway in conjunction with an ALB, the architecture can handle incoming traffic efficiently while ensuring secure and controlled access to the application services hosted within the VPC .
To create a security group for application services in AWS EC2, navigate to Services > EC2 > Security Groups and select 'Create Security Group.' Set the Security group name to Name-App-SG and the Description to App service SG. Choose your VPC from the VPC dropdown menu. Add a rule by setting the Port Range to 9080 and selecting Name-Web-SG as the source. Click 'Create security group' to finalize . The specific rules to configure include setting a Port Range of 9080 and ensuring that the Source field references a relevant security group, such as your web security group . For API services, you would set Type to Custom TCP and Port Range to 8080, with the source being the group ID of the API tasks . For applications using Amazon MQ, update the MQ broker security group to allow connections from the app security group, setting Custom TCP with Port Range 61617 in the Inbound rules .
Services for the Transact application in AWS ECS are created by first defining task definitions, which include specifying the container image to be used, environment variables, and network ports to expose . Once task definitions are ready, services can be created for these tasks. The process includes setting the service name, launch type (Fargate), task definition, number of tasks, and selecting the Cluster VPC and associated subnets . Security groups play a critical role during service creation by controlling traffic to and from ECS tasks. You select existing security groups for the service, such as the app security group for the application service and the web security group for the web service . For load balancers, appropriate security groups must also be applied to ensure proper traffic flow . It is essential to ensure that the security groups allow required traffic and restrict unauthorized access to maintain security ."}
The shared security group is updated to allow traffic by modifying the inbound rules to include specific security groups as sources. For the shared security group (Name-Endpoints-SG), rules are added to permit traffic from the application, web, and API security groups. The procedure involves going to Services > EC2 > Security Groups, selecting the endpoints security group, and editing the inbound rules to add a rule with the type set to HTTPS. In the source field, the app, web, and API security groups are selected to allow their traffic to the endpoints .