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 depend 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.
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:
- 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 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 options for app users. It can also control who can access API in Amazon API Gateway.
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 focusing on code that matters to the application rather than focusing on various other aspects of implementing multi-tiered architecture.
For Network Privacy, AWS has the ability to create the lambda function within Amazon VPC.
AWS WAF is a web application firewall that can be deployed on CloudFront to protect the application against a DDoS attack. WAF either allows or blocks the traffic by defining the security rules. Amazon Route 53 can connect the 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 a new data set. In the above architecture, as soon as new data (logs) become 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.
As per the application scenario, AWS Lambda will store the data to Amazon DynamoDB or AWS Aurora.
Amazon DynamoDB has the capability of storing 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 QuickSight can 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.
About the Author
Aarti Parikh is an AWS Certified Solution Architect, AWS Certified developer, and AWS Business & Technical Professional. She is associated with Volansys Technologies as a Cloud Engineer. She has a lot of experience in serverless systems, designing, developing and maintaining cloud infrastructure for public clouds and architecting cloud solutions for enterprise applications.