Imran
.NET, AWS, Cloud, Container, Serverless

Modern Web Apps Architecture with AWS Fargate

I recently helped client build Architecture in AWS . They had following requirements.

The Architecture is very self-explanatory , however I would like to discuss important points.

Fargate

Fargate is ECS’ serverless offering where you don’t have to manage servers. You simply package (containerize) your application/APIs and run them as Task (container) inside a cluster. AWS is responsible for underline infrastructure, updates, scaling and patching so you only focus on your business applications. Fargate makes it very easy to run the existing applications in cloud and also it’s simpler to introduce new services. You can run legacy and new services side by side.

VPC

Virtual Private Cloud is isolated cloud space for our services. I have put all the Fargate services , DB and rest of application services in Private Subnet and they can only be accessed via network Load Balancer. This makes them more secure since there are no direct public access to these services. The network load balancer itself is in private subnet and can only be reached via API gateway. So only public end point is API gateway.

Database

Amazon Aurora is a MySQL compatible relational database built for the cloud. Amazon Aurora provides security, availability, and reliability of commercial databases at lower cost than traditional databases. Amazon Aurora is fully managed DB service, which automates time-consuming administration tasks like hardware provisioning, database setup, patching, and backups. You get out of box point-in-time recovery, continuous backup, and replication across three Availability Zones (AZs).

User Click Stream Analysis

Learning user behavior and patterns is key to serve customers better in future. Due to chatty nature, user click service can add additional load on existing application/API so in our architecture . I am keeping this service separate from the rest of the application. Usage pattern and click data from web frontend can be ingested directly using Amazon API Gateway.
Leveraging cloud native technologies like Amazon Kinesis and AWS Lambda to process and save the data and they can scale massively without overhead of server maintenance. Amazon Kinesis is data collection and processing service. These AWS services can integrate with AWS Machine learning capabilities to get more information out of click stream.

Continuous Integration and Deployment (CI/CD)

AWS code pipeline provide you feature for end to end build and release. Using pipeline you can build the Docker Image that can be pushed to ECR and from there image can be deployed to Fargate.

Note: The Fargate launch type is not currently supported for Windows containers.

Like the post ? Share !

Related posts

Parallelize tasks with Azure Durable Functions

Imran
January 27, 2019

Introduction to Microsoft Azure Bot Service

Imran
July 15, 2018

Azure Logic Apps – Approval Workflow using HTML Form

Imran
June 7, 2020
Exit mobile version