AWS Well-Architected Overview
Table of Contents
Get Better at AWS Architecture
There are five distinct pillars in the Well-Architected Framework and each one is designed to guide you into building a better application. The first three pillars (Operational Excellence, Security, and Reliability) focus on foundation or process models that you can use to prepare your application for a production workload. The last two pillars (Performance Efficiency and Cost Optimization) cover example scenarios that you can use to shape how you think about your AWS architecture solutions.
Read more about AWS Architecture
Pillar: Operational Excellence
This is a good pillar to start with for your cloud devops teams. Being good good at operations determines if you sleep soundly at night. Sloppy operations practices inject risk into your application, which can lead to a high financial penalties or burnout in your development and devops teams.
There are three major areas or stages to the Operational Excellence Pillar:
- Prepare - how to get ready for a production workload
- Operate - how to think about operating a production workload
- Evolve - how your production systems change over time
- Identity and Access Management - how do you identify and grant access?
- How do you implement detection controls - how do you know who did what?
- Infrastructure Protection (e.g. boundaries and system configuration) - how do you protect your core system?
- Data Protection (encryption and backup/recovery) - how do you protect your data?
- Incident Response - how do you deal with a breach?
Reliability Keeps Your App Online
You likely know about regions, availabily zones, and other high-level concepts reliability concepts in AWS. This whitepaper specifically walks you through design and examples of how to think about availability for your AWS architecture.
- Foundations in Limit Management and Networking - what are you tolerances and core networking setup?
- Design for High Availability - how are you architected to support availability targets?
- Examples for Availability Goals - how you can think about availability/
Pillar: Performance Efficiency
Performance Efficiency has four major categories:
- Selection - what resources choose and why?
- Review - what do you look at to determine performance?
- Monitoring - how do you track it?
- Trade-offs - what are the dials you can turn up and down or what architectural choices can you make?
Pillar: Cost Optimization
Cost Optimization is broken up into four major areas:
- Cost-Effective Resources - do you use the right-sized resources for your workload? How do you think about what “right” is?
- Matching Supply and Demand - which includes models and scenarios for thinking about your workload
- Usage and Expenditure Awareness - how do you manage and track your costs?
- Optimizing Over Time - how do you monitor and cost optimize (how do you spend less money)
Well-Architected Framework - Lens
There are four “lens” that can be viewed next to the Well-Architected Framework. Around our outfit, we’d normally use the term “perspective” as it’s how you view the pillars from your viewpoint.
Lens: Serverless Application
Serverless gains two major wins for applications. First, it offers the possiblity of running your workload with a per-item or per-usage charge vs. having to precalculate your workload (or determine your autoscaling pattern). Second, it can lower the overall surface area that developers are working on - you spend time debugging your function vs debugging your server or framework. Most of the serverless architectures make heavy use of AWS managed services, so it also has the potentional to lower the operational knowledge required to run a production workload. The dream is that your application developers spend most of their time working your unique business logic and just off-the-shelf managed services to glue everything together.
- RESTful Microservices - each of your services can likely map your CRUD operations to lambda fu nctions.
- Alexa Skills - voice request/response maps naturally to lambda functions
- Mobile Backend - most of your mobile backends will be 80% CRUD workloads, easily scaling up and down with lambda functions.
- Stream Processing - lambda functions map to stream operations very easily. It’s typically easier to model these apps as functions applied to data items in the stream
- Web Application - akin the to the mobile backend, many apps will run both a mobile and web backend that’s 80% CRUD functions.
Lens: High Performance Computing (HPC)
- Loosely Coupled Scenario - workloads that are a large number of smaller jobs, that don’t communicate with each other. Examples include monte carlo simulations, image processing, etc.
- Tightly Coupled Scenario - these are parallel jobs that have communicate with each other. For example, large scale simulations would be tightly coupled in this context.
- Reference Architectures
- Traditional cluster environment - this is a typical HPC cluster architecture, but moved to the cloud for easy access to computational resources and elastic pricing.
- Batch-based architecture - These are typically batch workloads which can be run via AWS Batch. Think of image processing or analytics processing over a fixed data set.
- Queue-based architecture - Workloads that are piecing out data via a queue to a large group of interchangable worker nodes.
- Hybrid deployment - this is a mix of on prem infrastructure combined with AWS resources that allow for more computational or storage resources (as an example).
- Serverless workflow - given the functional nature of many HPC workloads (e.g. take f(x) -> y ), many of these map naturally to lambda functions that can be run without thinking about resource provisioning.
Lens: Internet of Things (IoT)
For this lens, the focus is on IoT scenarios in embedded or manufacturing systems. The scenarios called out in the whitepaper include:
- Device Provisioning
- Device Telemetry
- Device Commands
- Firmware Updates
Lens: Machine Learning
This lens focuses on all of the machine learning (some might say deep learning or AI) scenario you might want to run in the cloud. Specifically there’s guidance about the following scenarios:
- Building intelligent applications using AWS AI Services
- Use Managed ML Services to Build Custom ML Models
- Managed ETL Services for Data Processing
- Machine Learning on Edge and on Multiple Platforms
- Model Deployment Approaches
and evaluates each scenario through the well-architected pillars.