Design a Multi-Tier Solution
The course is part of these learning paths
Domain One of The AWS Solution Architect Associate exam guide SAA-CO2 requires us to be able to Design a multi-tier architecture solution so that is our topic for this course.
The objective of this course is to prepare you for answering questions related to this domain. We’ll cover the need to know aspects of how to design Multi-Tier solutions using AWS services.
By the end of this course, you will be well prepared for answering questions related to Domain One in the Solution Architect Associate exam.
You need to be familiar with a number of technology stacks that are common to multi-tier solution design for the Associate certification- LAMP, MEAN, Serverless and Microservices are relevant patterns to know for the exam.
What is Multi-Tier Architecture?
A business application generally needs three things. It needs something to interact with users - often called the presentation layer - it needs something to process those interactions - often called the logic or application layer - and it generally needs somewhere to store the data from that logic and interactions - commonly named as the data tier.
When Should You Consider a Multi-Tier Design?
The key thing to remember is that the benefit of multi-tier architecture is that the tiers are decoupled which enables them to be scaled up or down to meet demand. This we generally call burst activity and is a major benefit of building applications in the cloud
When Should We Consider Single-Tier Design?
Single tier generally implies that all your application services are running on the one machine or instance. Single-Tier deployment is generally going to be a cost-effective and easy to manage architecture but speed and cost is about all there is for benefits. Single tier suits development or test environments where finite teams need to work and test quickly.
Design a Multi-Tier Solution
First we review the design of a multi-tier architecture pattern using instances and elastic load balancers. Then we’ll review how we could create a similar solution using serverless services or a full microservices design.
AWS Services we use
The Virtual Private Cloud
Subnets and Availability Zones
Elastic Load Balancers
Security groups and NACLs
AWS WAF and AWS Shield
Amazon API Gateway
AWS Secrets Manager
We review sample exam questions to apply and solidify our knowledge.
Review of the content covered to help you prepare for the exam.
Auto Scaling enables horizontal scaling, i.e. adding more instances rather than a vertical scaling, which traditionally tends to be increasing the size or capacity of an instance or machine. When an autoscaling rule is applied, the autoscaling configuration plan launches new instances based on that autoscale configuration. So, autoscaling can be scheduled to scale based on estimated usages, or you can set alarms to scale the size of an autoscale group based on CPU network or memory usage.
So, when any instance in your group reaches a certain threshold, an alarm will be created and the autoscaling group configuration will launch more instances to meet that demand, this is way more resilient. So, if you have a question that mentions high availability, then most likely it is going to need a decoupled multi tier architecture, and it is going to need to be able to scale parts of that application quickly to meet burst activity. So, before we move into design mode, a few questions you need to ask yourself if you're presented with a scenario. Does it need to be highly available?
Does it need to be scalable? Does it need to be fault-tolerant? And in practical terms, does the system need to always be able to answer customer requests? And if so, then it needs to have a multi tier architecture.
Andrew is fanatical about helping business teams gain the maximum ROI possible from adopting, using, and optimizing Public Cloud Services. Having built 70+ Cloud Academy courses, Andrew has helped over 50,000 students master cloud computing by sharing the skills and experiences he gained during 20+ years leading digital teams in code and consulting. Before joining Cloud Academy, Andrew worked for AWS and for AWS technology partners Ooyala and Adobe.