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 the preferred choice and most commonly used.
This three-tier architecture includes the Presentation tier, the Logic tier, and the Data tier.
Tiers of Architecture
Users directly interact with the 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 a 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:
No operating systems to choose, patch, or manage.
No servers to monitor, scale-out, or secure.
No risk to infrastructure cost by over-provisioning.
No risk to application performance by under-provisioning.
All the above services scale automatically to support the exact needs of the application.
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, 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 a sign-in option for app users. It can also control who can access API in Amazon API Gateway
For dynamic content, Route 53 sends the request to API Gateway through AWS WAF. From there, API Gateway Lambda functions trigger and store 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 developers to focus on the code that matters to the application rather than on various other aspects of implementing the multi-tiered architecture.
For network privacy, AWS has the ability to create lambda functions within Amazon VPC
AWS WAF is a web application firewall that can be deployed on CloudFront to protect the application against DDoS attacks. WAF either allows or blocks traffic by defining security rules. Amazon Route 53 can connect user’s requests to CloudFront distribution through AWS WAF.
AWS Glue can run ETL (Extract, Transform, and Load) jobs based on an event such as getting a new data set. In the above architecture, as soon as new data (logs) becomes available in Amazon S3, Glue runs ETL jobs; these logs will then be pushed to Amazon CloudWatch and notifications can be sent through Amazon SNS from Amazon CloudWatch.
According to the application scenario, AWS Lambda will store the data to Amazon DynamoDB or AWS Aurora.
Amazon DynamoDB has the capability to store 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 that 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 can also generate reports and Amazon QuickSightcan can be integrated with Athena for easy data visualization.
As per best practices, all services are connected with AWS IAM Role. In many scenarios, one can take advantage of this AWS managed service rather than managing a 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, and scale.