keenanromain / AWS-SAA-C02-Study-Guide

How to become a certified AWS Solutions Architect
1.66k stars 884 forks source link

AWS SAA-C02 Study Guide

This study guide will help you pass the newer AWS Certified Solutions Architect - Associate exam. Ideally, you should reference this guide while working through the following material:

  1. Stephane Maarek's Ultimate AWS Certified Solutions Architect Associate 2021 course (permanent discount available through this link) or A Cloud Guru's AWS Certified Solutions Architect Associate SAA-C02 course
  2. The FAQs for the most critical services, included in the recommended reading list below
  3. Tutorials Dojo's AWS Certified Solutions Architect Associate Practice Exams
  4. Andrew Brown's AWS Certified Solutions Architect - Associate 2020 (PASS THE EXAM!) | Ad-Free Course

Notes: If at any point you find yourself feeling uncertain of your progress and in need of more time, you can postpone your AWS exam date. Be sure to also keep up with the ongoing discussions in r/AWSCertifications as you will find relevant exam tips, studying material, and advice from other exam takers. Before experimenting with AWS, it's very important to be sure that you know what is free and what isn't. Relevant Free Tier FAQs can be found here. Finally, Udemy often has their courses go on sale from time to time. It might be worth waiting to purchase either the Tutorial Dojo practice exam or Stephane Maarek's course depending on how urgently you need the content.

Table of Contents

  1. Introduction

  2. Identity Access Management (IAM)

  3. Simple Storage Service (S3)

  4. CloudFront

  5. Snowball

  6. Storage Gateway

  7. Elastic Compute Cloud (EC2)

  8. Elastic Block Store (EBS)

  9. Elastic Network Interfaces (ENI)

  10. Security Groups

  11. Web Application Firewall (WAF)

  12. CloudWatch

  13. CloudTrail

  14. Elastic File System (EFS)

  15. Amazon FSx for Windows

  16. Amazon FSx for Lustre

  17. Relational Database Service (RDS)

  18. Aurora

  19. DynamoDB

  20. Redshift

  21. ElastiCache

  22. Route53

  23. Elastic Load Balancers (ELB)

  24. Auto Scaling

  25. Virtual Private Cloud (VPC)

  26. Simple Queuing Service (SQS)

  27. Simple Workflow Service (SWF)

  28. Simple Notification Service (SNS)

  29. Kinesis

  30. Lambda

  31. API Gateway

  32. CloudFormation

  33. ElasticBeanstalk

  34. AWS Organizations

  35. Miscellaneous

Introduction

The official AWS Solutions Architect - Associate (SAA-C02) exam guide

Exam Content Breakdown:

Screen Shot 2020-06-05 at 2 49 08 PM

Domain 1: Design Resilient Architectures

1.1 - Design a multi-tier architecture solution

1.2 - Design highly available and/or fault-tolerant architectures

1.3 - Design decoupling mechanisms using AWS services

1.4 - Choose appropriate resilient storage

Domain 2: Design High-Performing Architectures

2.1 - Identify elastic and scalable compute solutions for a workload

2.2 - Select high-performing and scalable storage solutions for a workload

2.3 - Select high-performing networking solutions for a workload

2.4 - Choose high-performing database solutions for a workload

Domain 3: Design Secure Applications and Architectures

3.1 - Design secure access to AWS resources

3.2 - Design secure application tiers

3.3 - Select appropriate data security options

Domain 4: Design Cost-Optimized Architectures

4.1 - Identify cost-effective storage solutions

4.2 - Identify cost-effective compute and database services

4.3 - Design cost-optimized network architectures

Recommended Reading:

You can cover a lot of ground by skimming over what you already know or what you can infer to be true. In particular, read the first sentence of each paragraph and if you have no uncertainty about what is being said in that sentence, move on to the first sentence of the next paragraph. Take notes whenever necessary.

  1. AWS Well-Architected Framework

  2. Amazon VPC FAQs

  3. AWS Autoscaling FAQs

  4. Amazon EC2 FAQs

  5. Amazon EC2 Auto Scaling FAQs

  6. Amazon EBS FAQs

  7. Elastic network interfaces

  8. Amazon S3 FAQs

  9. Elastic Load Balancing FAQs

  10. Amazon Route 53 FAQs

  11. AWS Storage Gateway FAQs

  12. Amazon EFS FAQs

  13. Amazon FSx for Windows File Server FAQs

  14. Amazon FSx for Lustre FAQs

  15. AWS Organizations FAQs

Identity Access Management (IAM)

IAM Simplified:

IAM offers a centralized hub of control within AWS and integrates with all other AWS Services. IAM comes with the ability to share access at various levels of permission and it supports the ability to use identity federation (the process of delegating authentication to a trusted external party like Facebook or Google) for temporary or limited access. IAM comes with MFA support and allows you to set up custom password rotation policy across your entire organization. It is also PCI DSS compliant i.e. payment card industry data security standard. (passes government mandated credit card security regulations).

IAM Entities:

Users - any individual end user such as an employee, system architect, CTO, etc.

Groups - any collection of similar people with shared permissions such as system administrators, HR employees, finance teams, etc. Each user within their specified group will inherit the permissions set for the group.

Roles - any software service that needs to be granted permissions to do its job, e.g- AWS Lambda needing write permissions to S3 or a fleet of EC2 instances needing read permissions from a RDS MySQL database.

Policies - the documented rule sets that are applied to grant or limit access. In order for users, groups, or roles to properly set permissions, they use policies. Policies are written in JSON and you can either use custom policies for your specific needs or use the default policies set by AWS.

Screen Shot 2020-06-06 at 10 49 48 PM

IAM Policies are separated from the other entities above because they are not an IAM Identity. Instead, they are attached to IAM Identities so that the IAM Identity in question can perform its necessary function.

IAM Key Details:

Priority Levels in IAM:

IAM Security Tools:

IAM Access Advisor(user level)

Simple Storage Service (S3)

S3 Simplified:

S3 provides developers and IT teams with secure, durable, and highly-scalable object storage. Object storage, as opposed to block storage, is a general term that refers to data composed of three things:

1.) the data that you want to store

2.) an expandable amount of metadata

3.) a unique identifier so that the data can be retrieved

This makes it a perfect candidate to host files or directories and a poor candidate to host databases or operating systems. The following table highlights key differences between object and block storage:

Screen Shot 2020-06-05 at 3 34 57 PM

Data uploaded into S3 is spread across multiple files and facilities. The files uploaded into S3 have an upper-bound of 5TB per file and the number of files that can be uploaded is virtually limitless. S3 buckets, which contain all files, are named in a universal namespace so uniqueness is required. All successful uploads will return an HTTP 200 response.

S3 Key Details:

S3 Storage Classes:

S3 Standard - 99.99% availability and 11 9s durability. Data in this class is stored redundantly across multiple devices in multiple facilities and is designed to withstand the failure of 2 concurrent data centers.

S3 Infrequently Accessed (IA) - For data that is needed less often, but when it is needed the data should be available quickly. The storage fee is cheaper, but you are charged for retrieval.

S3 One Zone Infrequently Accessed (an improvement of the legacy RRS / Reduced Redundancy Storage) - For when you want the lower costs of IA, but do not require high availability. This is even cheaper because of the lack of HA.

S3 Intelligent Tiering - Uses built-in ML/AI to determine the most cost-effective storage class and then automatically moves your data to the appropriate tier. It does this without operational overhead or performance impact.

S3 Glacier - low-cost storage class for data archiving. This class is for pure storage purposes where retrieval isn’t needed often at all. Retrieval times range from minutes to hours. There are differing retrieval methods depending on how acceptable the default retrieval times are for you:

Expedited: 1 - 5 minutes, but this option is the most expensive.
Standard: 3 - 5 hours to restore.
Bulk: 5 - 12 hours. This option has the lowest cost and is good for a large set of data.

The Expedited duration listed above could possibly be longer during rare situations of unusually high demand across all of AWS. If it is absolutely critical to have quick access to your Glacier data under all circumstances, you must purchase Provisioned Capacity. Provisioned Capacity guarantees that Expedited retrievals always work within the time constraints of 1 to 5 minutes.

S3 Deep Glacier - The lowest cost S3 storage where retrieval can take 12 hours.

storage_types

S3 Encryption:

S3 data can be encrypted both in transit and at rest.

Encryption In Transit: When the traffic passing between one endpoint to another is indecipherable. Anyone eavesdropping between server A and server B won’t be able to make sense of the information passing by. Encryption in transit for S3 is always achieved by SSL/TLS.

Encryption At Rest: When the immobile data sitting inside S3 is encrypted. If someone breaks into a server, they still won’t be able to access encrypted info within that server. Encryption at rest can be done either on the server-side or the client-side. The server-side is when S3 encrypts your data as it is being written to disk and decrypts it when you access it. The client-side is when you personally encrypt the object on your own and then upload it into S3 afterwards.

You can encrypt on the AWS supported server-side in the following ways:

S3 Versioning:

S3 Lifecycle Management:

S3 Cross Region Replication:

S3 Transfer Acceleration:

S3 Event Notications:

The Amazon S3 notification feature enables you to receive and send notifications when certain events happen in your bucket. To enable notifications, you must first configure the events you want Amazon S3 to publish (new object added, old object deleted, etc.) and the destinations where you want Amazon S3 to send the event notifications. Amazon S3 supports the following destinations where it can publish events:

S3 and ElasticSearch:

Maximizing S3 Read/Write Performance:

S3 Server Access Logging:

S3 Multipart Upload:

S3 Pre-signed URLs:

Screen Shot 2020-06-09 at 8 20 53 PM

S3 Select:

CloudFront

CloudFront Simplified:

The AWS CDN service is called CloudFront. It serves up cached content and assets for the increased global performance of your application. The main components of CloudFront are the edge locations (cache endpoints), the origin (original source of truth to be cached such as an EC2 instance, an S3 bucket, an Elastic Load Balancer or a Route 53 config), and the distribution (the arrangement of edge locations from the origin or basically the network itself). More info on CloudFront's features

CloudFront Key Details:

CloudFront Signed URLs and Signed Cookies:

Snowball

Snowball Simplified:

Snowball is a giant physical disk that is used for migrating high quantities of data into AWS. It is a peta-byte scale data transport solution. Using a large disk like Snowball helps to circumvent common large scale data transfer problems such as high network costs, long transfer times, and security concerns. Snowballs are extremely secure by design and once the data transfer is complete, the snowballs are wiped clean of your data.

Snowball Key Details:

Screen Shot 2020-06-07 at 10 53 22 PM

Snowball Edge and Snowmobile:

Storage Gateway

Storage Gateway Simplified:

Storage Gateway is a service that connects on-premise environments with cloud-based storage in order to seamlessly and securely integrate an on-prem application with a cloud storage backend. Storage Gateway comes in three flavors: File Gateway, Volume Gateway and Tape Gateway.

Storage Gateway Key Details:

Stored Volumes vs. Cached Volumes:

Elastic Compute Cloud (EC2)

EC2 Simplified:

EC2 spins up resizable server instances that can scale up and down quickly. An instance is a virtual server in the cloud. With Amazon EC2, you can set up and configure the operating system and applications that run on your instance. Its configuration at launch is a live copy of the Amazon Machine Image (AMI) that you specify when you launched the instance. EC2 has an extremely reduced time frame for provisioning and booting new instances and EC2 ensures that you pay as you go, pay for what you use, pay less as you use more, and pay even less when you reserve capacity. When your EC2 instance is running, you are charged on CPU, memory, storage, and networking. When it is stopped, you are only charged for EBS storage.

EC2 Key Details:

architecture_ami_instance

EC2 Instance Pricing:

Standard Reserved vs. Convertible Reserved vs. Scheduled Reserved:

EC2 Instance Lifecycle:

The following table highlights the many instance states that a VM can be in at a given time.

Instance state Description Billing
pending The instance is preparing to enter the running state. An instance enters the pending state when it launches for the first time, or when it is started after being in the stopped state. Not billed
running The instance is running and ready for use. Billed
stopping The instance is preparing to be stopped or stop-hibernated. Not billed if preparing to stop. Billed if preparing to hibernate
stopped The instance is shut down and cannot be used. The instance can be started at any time. Not billed
shutting-down The instance is preparing to be terminated. Not billed
terminated The instance has been permanently deleted and cannot be started. Not billed

Note: Reserved Instances that are terminated are billed until the end of their term.

EC2 Security:

EC2 Placement Groups:

Elastic Block Store (EBS)

EBS Simplified:

An Amazon EBS volume is a durable, block-level storage device that you can attach to a single EC2 instance. You can think of EBS as a cloud-based virtual hard disk. You can use EBS volumes as primary storage for data that requires frequent updates, such as the system drive for an instance or storage for a database application. You can also use them for throughput-intensive applications that perform continuous disk scans.

EBS Key Details:

SSD vs. HDD:

hdd_vs_ssd

EBS Snapshots:

EBS Root Device Storage:

EBS Encryption:

Elastic Network Interfaces (ENI)

ENI Simplified:

An elastic network interface is a networking component that represents a virtual network card. When you provision a new instance, there will be an ENI attached automatically and you can create and configure additional network interfaces if desired. When you move a network interface from one instance to another, network traffic is redirected to the new instance.

ENI Key Details:

Security Groups

Security Groups Simplified:

Security Groups are used to control access (SSH, HTTP, RDP, etc.) with EC2. They act as a virtual firewall for your instances to control inbound and outbound traffic. When you launch an instance in a VPC, you can assign up to five security groups to the instance and security groups act at the instance level, not the subnet level.

Security Groups Key Details:

Web Application Firewall (WAF)

WAF Simplified:

AWS WAF is a web application that lets you allow or block the HTTP(s) requests that are bound for CloudFront, API Gateway, Application Load Balancers, EC2, and other Layer 7 entry points into your AWS environment. AWS WAF gives you control over how traffic reaches your applications by enabling you to create security rules that block common attack patterns, such as SQL injection or cross-site scripting, and rules that filter out specific traffic patterns that you can define. WAF's default rule-set addresses issues like the OWASP Top 10 security risks and is regularly updated whenever new vulnerabilities are discovered.

WAF Key Details:

WAF Protection Capabilities:

CloudWatch

CloudWatch Simplified:

Amazon CloudWatch is a monitoring and observability service. It provides you with data and actionable insights to monitor your applications, respond to system-wide performance changes, optimize resource utilization, and get a unified view of operational health.

CloudWatch Key Details:

Screen Shot 2020-06-17 at 8 16 23 PM

CloudWatch Logs:

CloudWatch Events:

CloudWatch Alarms:

CloudWatch Metrics:

CloudWatch Dashboards:

CloudTrail

CloudTrail Simplified:

AWS CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your AWS account. With it, you can log, continuously monitor, and retain account activity related to actions across your AWS infrastructure. CloudTrail provides event history of your AWS account activity, including actions taken through the AWS Management Console, AWS SDKs, command line tools, API calls, and other AWS services. It is a regional service, but you can configure CloudTrail to collect trails in all regions.

CloudTrail Key Details:

Elastic File System (EFS)

EFS Simplified:

EFS provides a simple and fully managed elastic NFS file system for use within AWS. EFS automatically and instantly scales your file system storage capacity up or down as you add or remove files without disrupting your application.

EFS Key Details:

Amazon FSx for Windows

Amazon FSx for Windows Simplified:

Amazon FSx for Windows File Server provides a fully managed native Microsoft File System.

Amazon FSx for Windows Key Details:

Amazon FSx for Lustre

Amazon FSx for Lustre Simplified:

Amazon FSx for Lustre makes it easy and cost effective to launch and run the open source Lustre file system for high-performance computing applications. With FSx for Lustre, you can launch and run a file system that can process massive data sets at up to hundreds of gigabytes per second of throughput, millions of IOPS, and sub-millisecond latencies.

Amazon FSx for Lustre Key Details:

Relational Database Service (RDS)

RDS Simplified:

RDS is a managed service that makes it easy to set up, operate, and scale a relational database in AWS. It provides cost-efficient and resizable capacity while automating or outsourcing time-consuming administration tasks such as hardware provisioning, database setup, patching and backups.

RDS Key Details:

RDS Multi-AZ:

RDS Read Replicas:

RDS Backups:

RDS Security:

RDS Enhanced Monitoring:

Aurora

Aurora Simplified:

Aurora is the AWS flagship DB known to combine the performance and availability of traditional enterprise databases with the simplicity and cost-effectiveness of open source databases. It is a MySQL/PostgreSQL-compatible RDBMS that provides the security, availability, and reliability of commercial databases at 1/10th the cost of competitors. It is far more effective as an AWS database due to the 5x and 3x performance multipliers for MySQL and PostgreSQL respectively.

Aurora Key Details:

Screen Shot 2020-06-18 at 3 02 39 PM

Aurora Serverless:

Aurora Cluster Endpoints:

Aurora Reader Endpoints:

DynamoDB

DynamoDB Simplified:

Amazon DynamoDB is a key-value and document database that delivers single-digit millisecond performance at any scale. It's a fully managed, multiregion, multimaster, durable non-SQL database. It comes with built-in security, backup and restore, and in-memory caching for internet-scale applications.

DynamoDB Key Details:

DynamoDB Accelerator (DAX):

DynamoDB Streams:

DynamoDB Global Tables

Redshift

Redshift Simplified:

Amazon Redshift is a fully managed, petabyte-scale data warehouse service in the cloud. The Amazon Redshift service manages all of the work of setting up, operating, and scaling a data warehouse. These tasks include provisioning capacity, monitoring and backing up the cluster, and applying patches and upgrades to the Amazon Redshift engine.

Redshift Key Details:

Redshift Spectrum:

Redshift Enhanced VPC Routing:

ElastiCache

ElastiCache Simplified:

The ElastiCache service makes it easy to deploy, operate, and scale an in-memory cache in the cloud. It helps you boost the performance of your existing databases by retrieving data from high throughput and low latency in-memory data stores.

ElastiCache Key Details:

Route53

Route53 Simplified:

Amazon Route 53 is a highly available and scalable Domain Name System (DNS) service. You can use Route 53 to perform three main functions in any combination: domain registration, DNS routing, and health checking.

Route53 Key Details:

Route53 Routing Policies:

Elastic Load Balancers (ELB)

ELB Simplified:

Elastic Load Balancing automatically distributes incoming application traffic across multiple targets, such as Amazon EC2 instances, Docker containers, IP addresses, and Lambda functions. It can handle the varying load of your application traffic in a single Availability Zone or across multiple Availability Zones. Elastic Load Balancing offers three types of load balancers that all feature the high availability, automatic scaling, and robust security necessary to make your applications fault tolerant.

ELB Key Details:

ELB Advanced Features:

ELB Cross Zone Load Balancing:

ELB Security:

Auto Scaling

Auto Scaling Simplified:

AWS Auto Scaling lets you build scaling plans that automate how groups of different resources respond to changes in demand. You can optimize availability, costs, or a balance of both. AWS Auto Scaling automatically creates all of the scaling policies and sets targets for you based on your preference.

Auto Scaling Key Details:

Screen Shot 2020-06-19 at 4 44 18 PM

Auto Scaling Default Termination Policy:

Screen Shot 2020-06-19 at 5 19 02 PM

Auto Scaling Cooldown Period:

Virtual Private Cloud (VPC)

VPC Simplified:

VPC lets you provision a logically isolated section of the AWS cloud where you can launch services and systems within a virtual network that you define. By having the option of selecting which AWS resources are public facing and which are not, VPC provides much more granular control over security.

VPC Key Details:

Screen Shot 2020-06-19 at 6 26 37 PM

Screen Shot 2020-06-21 at 6 20 09 PM

VPC Subnets:

Network Access Control Lists:

NACL Security Group
Operates at the subnet level Operates at the instance level
Supports allow rules and deny rules Supports allow rules only
Is stateless: Return traffic must be explicitly allowed by rules Is stateful: Return traffic is automatically allowed, regardless of any rules
We process rules in order, starting with the lowest numbered rule, when deciding whether to allow traffic We evaluate all rules before deciding whether to allow traffic
Automatically applies to all instances in the subnets that it's associated with (therefore, it provides an additional layer of defense if the security group rules are too permissive) Applies to an instance only if someone specifies the security group when launching the instance, or associates the security group with the instance later on

NAT Instances vs. NAT Gateways:

Bastion Hosts:

Route Tables:

Internet Gateway:

Virtual Private Networks (VPNs):

Screen Shot 2020-06-21 at 6 13 17 PM

AWS DirectConnect:

VPC Endpoints:

AWS PrivateLink:

VPC Peering:

Screen Shot 2020-06-19 at 6 12 02 PM

VPC Flow Logs:

Screen Shot 2020-06-21 at 5 50 02 PM

Simple Queuing Service (SQS)

SQS Simplified:

SQS is a web-based service that gives you access to a message queue that can be used to store messages while waiting for another service to process them. It helps in the decoupling of systems and the horizontal scaling of AWS resources.

SQS Key Details:

SQS Polling:

Simple Workflow Service (SWF)

SWF Simplified:

SWF is a web service that makes it easy to coordinate work across distributed application components. SWF has a range of use cases including media processing, web app backend, business process workflows, and analytical pipelines.

SWF Key Details:

Simple Notification Service (SNS)

SNS Simplified:

Simple Notification Service is a pushed-based messaging service that provides a highly scalable, flexible, and cost-effective method to publish a custom messages to subscribers who wish to be informed about a certain topic.

SNS Key Details:

Kinesis

Kinesis Simplified:

Amazon Kinesis makes it easy to collect, process, and analyze real-time, streaming data so you can get timely insights and react quickly to new information. With Amazon Kinesis, you can ingest real-time data such as video, audio, application logs, website clickstreams, and IoT telemetry data for machine learning, analytics, and other applications. Amazon Kinesis enables you to process and analyze data as it arrives and respond instantly instead of having to wait until all your data is collected before the processing can begin.

Kinesis Key Details:

Lambda

Lambda Simplified:

AWS Lambda lets you run code without provisioning or managing servers. You pay only for the compute time you consume. With Lambda, you can run code for virtually any type of application or backend service - all with zero administration. You upload your code and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to be automatically triggered from other AWS services or be called directly from any web or mobile app.

Lambda Key Details:

Screen Shot 2020-06-30 at 9 19 33 AM

Lambda@Edge:

Screen Shot 2020-06-30 at 9 27 48 AM

API Gateway

API Gateway Simplified:

API Gateway is a fully managed service for developers that makes it easy to build, publish, manage, and secure entire APIs. With a few clicks in the AWS Management Console, you can create an API that acts as a “front door” for applications to access data, business logic, or functionality from your back-end services, such as workloads running on EC2) code running on AWS Lambda, or any web application.

API Gateway Key Details:

Cross Origin Resource Sharing:

CloudFormation

CloudFormation Simplified:

CloudFormation is an automated tool for provisioning entire cloud-based environments. It is similar to Terraform where you codify the instructions for what you want to have inside your application setup (X many web servers of Y type with a Z type DB on the backend, etc). It makes it a lot easier to just describe what you want in markup and have AWS do the actual provisioning work involved.

CloudFormation Key Details:

Screen Shot 2020-07-01 at 8 44 52 AM

ElasticBeanstalk

ElasticBeanstalk Simplified:

ElasticBeanstalk is another way to script out your provisioning process by deploying existing applications to the cloud. ElasticBeanstalk is aimed toward developers who know very little about the cloud and want the simplest way of deploying their code.

ElasticBeanstalk Key Details:

AWS Organizations

AWS Organizations Simplified:

AWS Organizations is an account management service that enables you to consolidate multiple AWS accounts into an organization that you create and centrally manage.

AWS Organizations Key Details:

Miscellaneous

The following section includes services, features, and techniques that may appear on the exam. They are also extremely useful to know as an engineer using AWS. If the following items do appear on the exam, they will not be tested in detail. You'll just have to know what the meaning is behind the name. It is a great idea to learn each item in depth for your career's benefit, but it is not necessary for the exam.

What is the Amazon Cognito?

What is AWS Resource Access Manager?

What is Athena?

What is AWS Macie?

What is AWS KMS?

What is AWS Secrets Manager?

What is AWS STS?

What is OpsWorks?

What is Elastic Transcoder?

What is AWS Directory Service?

What is IoT Core?

What is AWS WorkSpaces?

What is AWS Fargate?

What is Amazon Elastic Container Service?

What is Amazon Elastic Kubernetes Service?

What does pilot light mean?

What are Blue-Green deployments?

What is Amazon Data Lifecycle Manager?

What is Route Origin Authorization?

What is Amazon MQ?

What is AWS Config?