Create a 3-Tier Application (Part 3)

Totalcloud’s 3 Tier Application Workflow is a quick solution & template to an otherwise long scripting process. With the use of sequentially placed workflows, you can create an architecture framework with all the necessary infrastructure layers set up and ready to go.


The currently available methods to create a 3 tier application includes either manually coding or provisioning it using the AWS CLI, or writing out a CloudFormation or Terraform script. Needless to say, the manual methods are not only tedious but chaotic, time-consuming & prone to errors. You’re not just programmatically scripting the requirements and configuring multiple services independently, but spending time testing them, fixing bugs & then deploying it. Some of these issues are solved by tools like Terraform & CloudFormation, which allow you to write code that’s more readable — but the catch here is that your DevOps engineers need a considerable amount of Terraform & CloudFormation language knowledge and skill to be able to write the code.


Workflow Brief


The goal of these three workflows is to create individual layers that mimic the three layers of a 3-tier application. The outer layer being the network layer, followed by the traffic layer and finally the database layer. A fixed set of AWS services are configured to get this done. The services can be altered based on your custom application. No coding, no navigating between different pages or any other hassle. Everything will be available in the workflow setup in a drag & drop model, you just need to connect the nodes and create a flow of events.


Process


The details of deployment are defined within the workflows - when to trigger, what the action is, which services to deploy, whether to get user approval, whether to send notifications at different points, whether to have validations, what customizations to have, etc. See the detailed workflow description here.


A quick overview of the 3 layers in this template: 

Network Layer

Here, all the network resources are set up to establish a connection and manage the other resources.


The first few nodes are set up to establish the VPCs. 4 subnets are created with designated IPs that will be attached to the internet gateway. This way, we establish a connection between the services and the internet.


Normally, with AWS, you will need to configure each of these services separately. With these action nodes, however, you can configure several different services consecutively without any coding or navigating between pages.


Traffic Layer

The traffic layer manages the traffic with the below services, it also responds and reacts to changing demands in traffic.


The second workflow is entirely focused on managing moving data. This is achieved by setting up route tables and associate route tables connected to the previously established internet gateway.


A load balancer is also configured to manage the data across the EC2 instances. In case, you need to adjust the EC2 scale to match your incoming load, an auto-scaling group is also configured.


Database Layer

Here, the DB Instances are created, that will help store and manage the data.


An RDS DB instance to act as our database. The cloudFront content distribution will allow the user to distribute the data to desired locations.


Integrations & Customizations 


Every TotalCloud workflow can accommodate multiple integrations & customized changes. For this template, you can set up external triggers - like ticketing systems or emails that can set this workflow to execute. For instance, whenever a JIRA ticket is created with a particular summary, this workflow will run automatically and deploy the application. Similarly, for MSPs, specific emails from clients can trigger the workflow as well, so you don’t have to manually do it every time. Slack & Email integrations also come in handy to send user approvals, notifications and reports wherever you require.


The 3 layers or workflows can also be customized, in every node. If you want to alter the type of resources deployed, or the specific configurations, you can. Every aspect of this template can be customized.  





Adopt Template

Trigger

Use this to initiate a workflow based on time, events or call.

Trigger by External Application

Action

Select action to be done on resources in the workflow.

Create Security Group in a specific AWS Region for EC2 service.

Action

Select action to be done on resources in the workflow.

Authorize Security Group Ingress in a specific AWS Region for EC2 service.

Action

Select action to be done on resources in the workflow.

Create D B Subnet Group in a specific AWS Region for RDS service.

Action

Select action to be done on resources in the workflow.

Create D B Instance in a specific AWS Region for RDS service.

Action

Select action to be done on resources in the workflow.

Create Distribution in a specific AWS Region for CloudFront service.

Action

Select action to be done on resources in the workflow.

Change Resource Record Sets in a specific AWS Region for Route53 service.
Adopt Template

Workflow Template

Trigger

Use this to initiate a workflow based on time, events or call.

Trigger by External Application

Action

Select action to be done on resources in the workflow.

Create Security Group in a specific AWS Region for EC2 service.

Action

Select action to be done on resources in the workflow.

Authorize Security Group Ingress in a specific AWS Region for EC2 service.

Action

Select action to be done on resources in the workflow.

Create D B Subnet Group in a specific AWS Region for RDS service.

Action

Select action to be done on resources in the workflow.

Create D B Instance in a specific AWS Region for RDS service.

Create A Template

Thank you! Your submission has been received!
Oops! Something went wrong while submitting. Please Try Again.

Request for a template

You can publish templates created by you on this platform.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Similar Templates

CloudFront distributions

CloudFront
None

CloudFront distributions (Inventory)

AutoScaling Groups

None
AWS Auto Scaling

AutoScaling Groups (Inventory)

Route53 hosted zones

None

Route53 hosted zones (Inventory)

ElastiCache Clusters

None
ElastiCache

ElastiCache Clusters (Inventory)