With more than 200 services and 15+ years of experience, Amazon Web Services (AWS) provides what you need to build fast, cost-effective architectures and run workloads in the Cloud. This allows your organisation to innovate at speed. In this blog, I’ll be highlighting the best practices for a basic AWS architecture.
Ideally, you build your infrastructure in a multi-tier model. A multi-tier architecture is a client-server architecture in which presentation, application processing and data management functions are physically separated. I’ll be covering the most common multitier architecture: the three-tier architecture.
Below you can see an example of a three-tier AWS architecture diagram.
1. Presentation Tier
The load balancing component, Elastic Load Balancing (ELB) service, helps to enhance the efficiency of your application and server. ELB spreads the traffic to web services to improve the performance of your workloads. The traffic is then spread to EC2 instances over multiple zones. Elastic Load Balancing can grow and shrink according to the traffic conditions. Elastic Load Balancing offers four types of load balancers that all feature the high availability, automatic scaling, and robust security necessary to make your applications fault tolerant.
Amazon Cloud Front
Amazon Cloud Front is responsible for the acceleration of content delivery that is used to deliver a website.
2. Application Tier
Amazon Elastic Cloud Computing (EC2) provides scalable computing capacity in the AWS Cloud. Amazon EC2 can be used for as many virtual services as you need.
If you need high availability of your workloads, it is recommended to create an autoscaling group. This goes hand in hand with a load balancer.
AWS has different storage solutions; the simple storage service (S3) and Elastic Block Storage (EBS). EBS is commonly used when fast storage is needed as is similar to hard drives. Amazon S3 is recommended when bigger file storage is required. AWS uses the pay-per-use model, which is cost-effective.
3. Database Tier
Amazon Relational Database Service (RDS) is an AWS service that gives you access to the capabilities of a database engine. Amazon RDS automatically patches database software, backs up your data and stores backups. Furthermore, it supports point-in-time recovery.
Amazon DynamoDB for non-relational DB
Amazon DynamoDB is a hosted NoSQL database. It is a good fit for applications with large amounts of data, serverless applications using AWS Lambda, and data sets with simple access patterns. It offloads the administrative burdens of operating and scaling a distributed database.
Amazon EC2 provides a feature called security groups. A security group is essentially a network firewall. For a security group, you can specify protocols, ports, and source IP ranges that are able to reach your EC2 instances. You can assign more security groups to an EC2 instance. It is important to have security in place for all of the layers of the multi-tier model.
The AWS Well-Architected framework describes design principles and architectural best practices and helps you to understand the pros and cons of decisions while you are building. The Well-architected framework consists of six pillars: operational excellence, security, reliability, performance efficiency, cost optimisation and the sustainability. Learn more about the pillars here. The framework gives a consistent approach to evaluate architectures and to implement designs.