Serverless Multi-Tier Architecture on AWS

Serverless Multi-Tier Architecture on AWS

150 150 VOLANSYS

Our previous article on AWS Serverless Platform talked about the fundamentals and challenges of the platform along with simple application use cases. In this article, we will explain how enterprises can implement a serverless application with multi-tier architecture using AWS Cloud.

Multi-tier Architecture Overview

Multi-tier Architecture is also known as n-tier architecture. In such architecture, an application is developed and distributed in more than one layer. The number of layers depends on business requirements but three-tier architecture is a preferred choice and most commonly used. 

This three-tier architecture includes the Presentation tier, the Logic tier, and the Data tier.

Fig 1 – Tiers of Architecture

Users directly interact with Presentation tier. The Logic tier contains code that translates the user’s actions to the application’s behavior. The Data-tier consists of storage that holds the data relevant to the application

Thousands of servers could be used in monolithic architecture to increase the performance of an application. This serverless multi-tier architecture pattern eliminates server management.

Following are the several benefits of using serverless services managed by AWS

  1. No Operating Systems to choose, patch or manage
  2. No servers to monitor, scale out or secure
  3. No risk to Infrastructure cost by over-provisioning
  4. No risk to application performance by under-provisioning

Serverless Services

Fig 2 – Serverless Services

All the above services scale automatically to support the exact needs of the application.

Serverless Architecture

Fig 3 – Serverless Architecture

Presentation Tier

In the above architecture, static content is hosted on Amazon S3 and distributed by Amazon CloudFront. Hosting static website content on Amazon S3 is an economical alternative to host content on server-based infrastructure. Also, a large amount of data can be stored in Amazon S3. Amazon CloudFront is a content delivery network to cache the static content and serve the dynamic and static content to improve webpage load times and reduce network bandwidth costs.

AWS CognitoUser pool is a user directory that provides sign-up and sign-in option for app users. It can also control who can access API in Amazon API Gateway

Logic Tier

For dynamic content, route-53 send the request to API Gateway through AWS WAF and from API Gateway Lambda function triggers and stores the data in Amazon S3 and DynamoDB or AWS Aurora.

Integration of Amazon’s API Gateway with AWS Lambda enables code functions to be triggered directly via HTTPS request. Both API Gateway and Lambda scale automatically regardless of the request volume required. These two services allow to focus on the code that matters to the application rather than focusing on various other aspects of implementing the multi-tiered architecture.

For Network Privacy AWS has the ability to create lambda function within Amazon VPC

AWS WAF is a web application firewall that can be deployed on CloudFront to protect the application against DDoS attack. WAF either allows or blocks the traffic by defining the security rules. Amazon Route 53 can connect user’s request to CloudFront distribution through AWS WAF.

AWS Glue can run ETL (Extract, Transform and Load) jobs based on an event such as getting new data set. In the above architecture, as soon as new data (logs) becomes available in Amazon S3, Glue runs ETL jobs and also these logs will be pushed to Amazon CloudWatch and notifications can be sent through Amazon SNS from Amazon CloudWatch.

Data Tier

As per the application scenario, AWS Lambda will store the data to Amazon DynamoDB or AWS Aurora.

Amazon DynamoDB has the capability of storing the infinitely scalable NoSQL database and also provides both provisioned and on-demand capacity modes so that costs can be optimized by specifying capacity per workload.

AWS Aurora is a MySQL and PostgreSQL compatible, fully managed relational database service built for the traditional enterprise database which needs performance and availability with the cost-effectiveness of open source databases. It has the ability to automatically start up, shut down and scale capacity up or down based on the application’s needs. It’s a cost-effective solution for infrequent or unpredictable workloads

Amazon Athena/Amazon Redshift Spectrum uses the AWS Glue as a central location to store and retrieve table metadata. It has the ability to analyze unstructured, semi-structured and structured data store. Athena also can generate reports and Amazon QuickSightcan be integrated with Athena for easy data visualization

As per the best practices all the services are connected with AWS IAM Role. In many scenarios one can take advantage of this AWS Managed service rather than managing typical server-based infrastructure. With the help of this serverless multi-tier architecture, one can easily create production application components that are easy to maintain, decouple, secure, scale and are highly available.

Using AWS serverless platform, VOLANSYS design stable, reliable, and efficient cloud solutions fulfilling business needs and values. We offer cloud solutions for connected app development, cloud computing platform architecture design, cloud migration, SaaS services, DevOps, service orchestration and cloud solution modernization. As a standard AWS consulting partner and having in-depth expertise on AWS products and solutions, VOLANSYS helps enterprises to implement serverless architecture solutions for a variety of use-cases.

Stay tuned to know more about Microservices based Serverless Architecture with AWS in our next blog.

About Author: Aarti Parikh

Aarti is AWS Certified Solution Architect, AWS Certified developer and AWS Business & Technical Professional. She is associated with VOLANSYS Technologies as a Cloud Engineer. She has good hands-on experience on Serverless systems, Designing, developing and maintaining cloud Infrastructure for public clouds and architecting cloud solutions for enterprise applications.