Home

Awesome

An Open Guide

The Open Guide to Amazon Web Services

Slack Chat ⇦ Join us!

Credits βˆ™ Contributing guidelines

Table of Contents

Purpose

AWS in General

Specific AWS ServicesBasicsTipsGotchas
ALBπŸ“—πŸ“˜πŸ“™
AMIsπŸ“—πŸ“˜πŸ“™
API GatewayπŸ“—πŸ“˜πŸ“™
Auto ScalingπŸ“—πŸ“˜πŸ“™
BatchπŸ“—πŸ“˜
Certificate ManagerπŸ“—πŸ“˜πŸ“™
CLB (ELB)πŸ“—πŸ“˜πŸ“™
CloudFrontπŸ“—πŸ“˜πŸ“™
CloudFormationπŸ“—πŸ“˜πŸ“™
CloudWatchπŸ“—πŸ“˜πŸ“™
Device FarmπŸ“—πŸ“˜πŸ“™
DirectConnectπŸ“—πŸ“˜
DynamoDBπŸ“—πŸ“˜πŸ“™
EBSπŸ“—πŸ“˜πŸ“™
EC2πŸ“—πŸ“˜πŸ“™
ECSπŸ“—πŸ“˜
EKSπŸ“—πŸ“˜πŸ“™
EFSπŸ“—πŸ“˜πŸ“™
Elastic BeanstalkπŸ“—πŸ“˜πŸ“™
Elastic IPsπŸ“—πŸ“˜πŸ“™
ElastiCacheπŸ“—πŸ“˜πŸ“™
EMRπŸ“—πŸ“˜πŸ“™
FargateπŸ“—πŸ“˜πŸ“™
GlacierπŸ“—πŸ“˜πŸ“™
IoTπŸ“—πŸ“˜πŸ“™
Kinesis FirehoseπŸ“™
Kinesis StreamsπŸ“—πŸ“˜πŸ“™
KMSπŸ“—πŸ“˜πŸ“™
LambdaπŸ“—πŸ“˜πŸ“™
Load BalancersπŸ“—πŸ“˜πŸ“™
Mobile HubπŸ“—πŸ“˜πŸ“™
OpsWorksπŸ“—πŸ“˜πŸ“™
QuicksightπŸ“—πŸ“™
RDSπŸ“—πŸ“˜πŸ“™
RDS AuroraπŸ“—πŸ“˜πŸ“™
RDS Aurora MySQLπŸ“—πŸ“˜πŸ“™
RDS Aurora PostgreSQLπŸ“—πŸ“˜πŸ“™
RDS MySQL and MariaDBπŸ“—πŸ“˜πŸ“™
RDS PostgreSQLπŸ“—πŸ“˜πŸ“™
RDS SQL ServerπŸ“—πŸ“˜πŸ“™
RedshiftπŸ“—πŸ“˜πŸ“™
Route 53πŸ“—πŸ“˜πŸ“™
S3πŸ“—πŸ“˜πŸ“™
Security and IAMπŸ“—πŸ“˜πŸ“™
SESπŸ“—πŸ“˜πŸ“™
SNSπŸ“—πŸ“˜πŸ“™
SQSπŸ“—πŸ“˜πŸ“™
Step FunctionsπŸ“—πŸ“˜πŸ“™
WAFπŸ“—πŸ“˜πŸ“™
VPCs, Network Security, and Security GroupsπŸ“—πŸ“˜πŸ“™

Special Topics

Legal

Figures and Tables

Tools and Services Market Landscape AWS Data Transfer Costs

Why an Open Guide?

A lot of information on AWS is already written. Most people learn AWS by reading a blog or a β€œgetting started guide” and referring to the standard AWS references. Nonetheless, trustworthy and practical information and recommendations aren’t easy to come by. AWS’s own documentation is a great but sprawling resource few have time to read fully, and it doesn’t include anything but official facts, so omits experiences of engineers. The information in blogs or Stack Overflow is also not consistently up to date.

This guide is by and for engineers who use AWS. It aims to be a useful, living reference that consolidates links, tips, gotchas, and best practices. It arose from discussion and editing over beers by several engineers who have used AWS extensively.

Before using the guide, please read the license and disclaimer.

Back to top :arrow_up:

Please help!

This is an early in-progress draft! It’s our first attempt at assembling this information, so is far from comprehensive still, and likely to have omissions or errors.

Slack Chat

Please help by joining the Slack channel (we like to talk about AWS in general, even if you only have questions β€” discussion helps the community and guides improvements) and contributing to the guide. This guide is open to contributions, so unlike a blog, it can keep improving. Like any open source effort, we combine efforts but also review to ensure high quality.

Scope

Legend

General Information

When to Use AWS

Back to top :arrow_up:

Which Services to Use

Back to top :arrow_up:

Tools and Services Market Landscape

There are now enough cloud and β€œbig data” enterprise companies and products that few can keep up with the market landscape.

We’ve assembled a landscape of a few of the services. This is far from complete, but tries to emphasize services that are popular with AWS practitioners β€” services that specifically help with AWS, or a complementary, or tools almost anyone using AWS must learn.

Popular Tools and Services for AWS Practitioners

🚧 Suggestions to improve this figure? Please file an issue.

Back to top :arrow_up:

Common Concepts

Back to top :arrow_up:

Service Matrix

Many services within AWS can at least be compared with Google Cloud offerings or with internal Google services. And often times you could assemble the same thing yourself with open source software. This table is an effort at listing these rough correspondences. (Remember that this table is imperfect as in almost every case there are subtle differences of features!)

ServiceAWSGoogle CloudGoogle InternalMicrosoft AzureOther providersOpen source β€œbuild your own”Openstack
Virtual serverEC2Compute Engine (GCE)Virtual MachineDigitalOceanOpenStackNova
PaaSElastic BeanstalkApp EngineApp EngineWeb AppsHeroku, AppFog, OpenShiftMeteor, AppScale, Cloud Foundry, Convox
Serverless, microservicesLambda, API GatewayFunctionsFunction AppsPubNub Blocks, Auth0 WebtaskKong, TykQinling
Container, cluster managerECS, EKS, FargateContainer Engine, KubernetesBorg or OmegaContainer ServiceKubernetes, Mesos, AuroraZun
Object storageS3Cloud StorageGFSStorage AccountDigitalOcean SpacesSwift, HDFS, MinioSwift
Block storageEBSPersistent DiskStorage AccountDigitalOcean VolumesNFSCinder
SQL datastoreRDSCloud SQLSQL DatabaseMySQL, PostgreSQLTrove (stores NoSQL as well)
Sharded RDBMSCloud SpannerF1, SpannerAzure Database for PostgreSQL - Hyperscale (Citus)Crate.io, CockroachDB
BigtableCloud BigtableBigtableHBase
Key-value store, column storeDynamoDBCloud DatastoreMegastoreTables, DocumentDBCassandra, CouchDB, RethinkDB, Redis
Memory cacheElastiCacheApp Engine MemcacheRedis CacheMemcached, Redis
SearchCloudSearch, Elasticsearch (managed)SearchAlgolia, QBox, Elastic CloudElasticsearch, Solr
Data warehouseRedshiftBigQueryDremelSQL Data WarehouseOracle, IBM, SAP, HP, many othersGreenplum
Business intelligenceQuickSightData Studio 360Power BITableau
Lock managerDynamoDB (weak)ChubbyLease blobs in Storage AccountZooKeeper, Etcd, Consul
Message brokerSQS, SNS, IoTPub/SubPubSub2Service BusRabbitMQ, Kafka, 0MQ
Streaming, distributed logKinesisDataflowPubSub2Event HubsKafka Streams, Apex, Flink, Spark Streaming, Storm
MapReduceEMRDataprocMapReduceHDInsight, DataLake AnalyticsQuboleHadoop
MonitoringCloudWatchStackdriver MonitoringBorgmonMonitorPrometheus(?)
TracingX-RayStackdriver TraceMonitor (Application Insights)DataDog, New Relic, EpsagonZipkin, Jaeger, Appdash
Metric managementBorgmon, TSDBApplication InsightsGraphite, InfluxDB, OpenTSDB, Grafana, Riemann, Prometheus
CDNCloudFrontCloud CDNCDNAkamai, Fastly, Cloudflare, Limelight NetworksApache Traffic Server
Load balancerCLB/ALBLoad BalancingGFELoad Balancer, Application Gatewaynginx, HAProxy, Apache Traffic Server
DNSRoute53DNSDNSbind
EmailSESSendgrid, Mandrill, Postmark
Git hostingCodeCommitCloud Source RepositoriesVisual Studio Team ServicesGitHub, BitBucketGitLab
User authenticationCognitoFirebase AuthenticationAzure Active Directoryoauth.io
Mobile app analyticsMobile AnalyticsFirebase AnalyticsHockeyAppMixpanel
Mobile app testingDevice FarmFirebase Test LabXamarin Test CloudBrowserStack, Sauce Labs, Testdroid
Managing SSL/TLS certificatesCertificate ManagerLet's Encrypt, Comodo, Symantec, GlobalSign
Automatic speech recognition and natural language understandingTranscribe (ASR), Lex (NLU)Cloud Speech API, Natural Language APICognitive servicesAYLIEN Text Analysis API, Ambiverse Natural Language Understanding APIStanford's Core NLP Suite, Apache OpenNLP, Apache UIMA, spaCy
Text-to-speech engine in the cloudPollyNuance, Vocalware, IBMMimic, eSpeak, MaryTTS
Image recognitionRekognitionVision APICognitive servicesIBM Watson, ClarifaiTensorFlow, OpenCV
OCR (Text recognition)Textract (documents), Rekognition (photographs)Cloud Vision APIComputer Vision APITesseract
Language TranslationTranslateTranslateTranslator Text APIApertium
File Share and SyncWorkDocsGoogle DocsOneDriveDropbox, Box, Citrix File ShareownCloud
Machine LearningSageMaker, DeepLens, MLML Engine, Auto MLML StudioWatson ML
Data Loss PreventionMacieCloud Data Loss PreventionAzure Information Protection

🚧 Please help fill this table in.

Selected resources with more detail on this chart:

Back to top :arrow_up:

AWS Product Maturity and Releases

It’s important to know the maturity of each AWS product. Here is a mostly complete list of first release date, with links to the release notes. Most recently released services are first. Not all services are available in all regions; see this table.

ServiceOriginal releaseAvailabilityCLI SupportHIPAA CompliantPCI-DSS Compliant
πŸ₯X-Ray2016-12Generalβœ“βœ“βœ“
πŸ₯Lex2016-11Preview
πŸ₯Polly2016-11Generalβœ“βœ“βœ“
πŸ₯Rekognition2016-11Generalβœ“βœ“βœ“
πŸ₯Athena2016-11Generalβœ“βœ“βœ“
πŸ₯Batch2016-11Generalβœ“βœ“βœ“
πŸ₯Database Migration Service2016-03Generalβœ“βœ“
πŸ₯Certificate Manager2016-01Generalβœ“βœ“βœ“
πŸ₯IoT2015-08Generalβœ“βœ“βœ“<sup>13</sup>
πŸ₯WAF2015-10Generalβœ“βœ“βœ“
πŸ₯Data Pipeline2015-10Generalβœ“
πŸ₯Elasticsearch2015-10Generalβœ“βœ“βœ“
πŸ₯Aurora2015-07Generalβœ“βœ“<sup>3</sup>βœ“<sup>3</sup>
πŸ₯Service Catalog2015-07Generalβœ“βœ“βœ“
πŸ₯Device Farm2015-07Generalβœ“
πŸ₯CodePipeline2015-07Generalβœ“βœ“
πŸ₯CodeCommit2015-07Generalβœ“βœ“βœ“
πŸ₯API Gateway2015-07Generalβœ“βœ“<sup>1</sup>βœ“
πŸ₯Config2015-06Generalβœ“βœ“βœ“
πŸ₯EFS2015-05Generalβœ“βœ“βœ“
πŸ₯Machine Learning2015-04Generalβœ“
Lambda2014-11Generalβœ“βœ“βœ“
ECS2014-11Generalβœ“βœ“βœ“
EKS2018-06Generalβœ“<sup>12</sup>βœ“βœ“
KMS2014-11Generalβœ“βœ“βœ“
CodeDeploy2014-11Generalβœ“βœ“
Kinesis2013-12Generalβœ“βœ“βœ“<sup>11</sup>
CloudTrail2013-11Generalβœ“βœ“βœ“
AppStream2013-11Previewβœ“
CloudHSM2013-03Generalβœ“βœ“βœ“
Silk2013-03Obsolete?
OpsWorks2013-02Generalβœ“βœ“βœ“
Redshift2013-02Generalβœ“βœ“βœ“
Elastic Transcoder2013-01Generalβœ“
Glacier2012-08Generalβœ“βœ“βœ“
CloudSearch2012-04Generalβœ“
SWF2012-02Generalβœ“βœ“βœ“
Storage Gateway2012-01Generalβœ“βœ“βœ“
DynamoDB2012-01Generalβœ“βœ“βœ“
DirectConnect2011-08Generalβœ“βœ“βœ“
ElastiCache2011-08Generalβœ“βœ“<sup>14</sup>βœ“<sup>14</sup>
CloudFormation2011-04Generalβœ“βœ“βœ“
SES2011-01Generalβœ“βœ“
Elastic Beanstalk2010-12Generalβœ“βœ“βœ“
Route 532010-10Generalβœ“βœ“βœ“
IAM2010-09Generalβœ“βœ“
SNS2010-04Generalβœ“βœ“βœ“
EMR2010-04Generalβœ“βœ“βœ“
RDS2009-12Generalβœ“βœ“<sup>2</sup>βœ“<sup>9</sup>
VPC2009-08Generalβœ“βœ“βœ“
Snowball2015-10Generalβœ“βœ“βœ“<sup>15</sup>
Snowmobile2016-11Generalβœ“βœ“
CloudWatch2009-05Generalβœ“βœ“βœ“
CloudFront2008-11Generalβœ“βœ“<sup>4</sup>βœ“
Fulfillment Web Service2008-03Obsolete?
SimpleDB2007-12❗Nearly obsoleteβœ“βœ“
DevPay2007-12General
Flexible Payments Service2007-08Retired
EC22006-08Generalβœ“βœ“<sup>5,6,7</sup>βœ“<sup>6,7,10</sup>
SQS2006-07Generalβœ“βœ“βœ“
S32006-03Generalβœ“βœ“<sup>8</sup>βœ“
Alexa Top Sites2006-01General ❗HTTP-only
Alexa Web Information Service2005-10General ❗HTTP-only

Back to top :arrow_up:

Footnotes

<a name="user-content-hipaa-apigateway">1</a>: Excludes use of Amazon API Gateway caching<br /> <a name="user-content-hipaa-rds">2</a>: RDS MySQL, Oracle, and PostgreSQL engines only<br /> <a name="user-content-hipaa-aurora">3</a>: MySQL-compatible Aurora edition only<br /> <a name="user-content-hipaa-cloudfront">4</a>: Excludes Lambda@Edge<br /> <a name="user-content-hipaa-ec2sysmgr">5</a>: Includes EC2 Systems Manager<br /> <a name="user-content-hipaa-ec2ebs">6</a>: Includes Elastic Block Storage (EBS)<br /> <a name="user-content-hipaa-ec2elb">7</a>: Includes Elastic Load Balancing<br /> <a name="user-content-hipaa-s3">8</a>: Includes S3 Transfer Acceleration<br /> <a name="user-content-pci-rds">9</a>: Includes RDS MySQL, Oracle, PostgreSQL, SQL Server, and MariaDB</br> <a name="user-content-pci-asg">10</a>: Includes Auto-Scaling</br> <a name="user-content-pci-kinesis">11</a>: Data Analytics, Streams, Video Streams and Firehose</br> <a name="user-content-eks-cli">12</a>: Kubernetes uses a custom CLI for Pod/Service management called kubectl. AWS CLI only handles Kubernetes Master concerns</br> <a name="user-content-pci-iot">13</a>: IoT Core (includes Device Management) and Greengrass</br> <a name="user-content-pci-elasticache">14</a>: ElastiCache for Redis only</br> <a name="user-content-pci-snowball">15</a>: Snowball and Snowball Edge</br>

Compliance

Getting Help and Support

Restrictions and Other Notes

Related Topics

Learning and Career Development

Certifications

Associate level certifications were once required as pre-requisites to taking the Professional examinations - this is no longer the case.

Certifications are required to access certificate lounges at official AWS events such as Summits and re:Invent. Lounges typically provide power charging points, seats and relatively better coffee.

Managing AWS

Managing Infrastructure State and Change

A great challenge in using AWS to build complex systems (and with DevOps in general) is to manage infrastructure state effectively over time. In general, this boils down to three broad goals for the state of your infrastructure:

Much of what we discuss below is really about how to improve the answers to these questions.

There are several approaches to deploying infrastructure with AWS, from the console to complex automation tools, to third-party services, all of which attempt to help achieve visibility, automation, and flexibility.

AWS Configuration Management

The first way most people experiment with AWS is via its web interface, the AWS Console. But using the Console is a highly manual process, and often works against automation or flexibility.

So if you’re not going to manage your AWS configurations manually, what should you do? Sadly, there are no simple, universal answers β€” each approach has pros and cons, and the approaches taken by different companies vary widely, and include directly using APIs (and building tooling on top yourself), using command-line tools, and using third-party tools and services.

AWS Console

Command-Line tools

APIs and SDKs

Boto

Back to top :arrow_up:

General Visibility

Managing Servers and Applications

Back to top :arrow_up:

AWS vs Server Configuration

This guide is about AWS, not DevOps or server configuration management in general. But before getting into AWS in detail, it’s worth noting that in addition to the configuration management for your AWS resources, there is the long-standing problem of configuration management for servers themselves.

Back to top :arrow_up:

Philosophy

Back to top :arrow_up:

Server Configuration Management

Back to top :arrow_up:

Containers and AWS

Back to top :arrow_up:

Visibility

Back to top :arrow_up:

Tips for Managing Servers

Security and IAM

We cover security basics first, since configuring user accounts is something you usually have to do early on when setting up your system.

Security and IAM Basics

Back to top :arrow_up:

Security and IAM Tips

Back to top :arrow_up:

Security and IAM Gotchas and Limitations

S3

S3 Basics

Back to top :arrow_up:

S3 Tips

Back to top :arrow_up:

S3 Gotchas and Limitations

Back to top :arrow_up:

Storage Durability, Availability, and Price

As an illustration of comparative features and price, the table below gives S3 Standard, RRS, IA, in comparison with Glacier, EBS, EFS, and EC2 d2.xlarge instance store using Virginia region as of Sept 2017.

Durability (per year)Availability β€œdesigned”Availability SLAStorage (per TB per month)GET or retrieve (per million)Write or archive (per million)
GlacierEleven 9sSloooow–$4$50$50
S3 IAEleven 9s99.9%99%$12.50$1$10
S3 RRS99.99%99.99%99.9%$24 (first TB)$0.40$5
S3 StandardEleven 9s99.99%99.9%$23$0.40$5
EBS99.8%Unstated99.99%$25/$45/$100/$125+ (sc1/st1/gp2/io1)
EFSβ€œHighβ€β€œHigh”–$300
EC2 d2.xlarge instance storeUnstatedUnstated–$25.44$0$0

Especially notable items are in boldface. Sources: S3 pricing, S3 SLA, S3 FAQ, RRS info (note that this is considered deprecated), Glacier pricing, EBS availability and durability, EBS pricing, EFS pricing, EC2 SLA

EC2

EC2 Basics

Back to top :arrow_up:

EC2 Alternatives and Lock-In

Back to top :arrow_up:

EC2 Tips

Back to top :arrow_up:

EC2 Gotchas and Limitations

CloudWatch

CloudWatch Basics

Back to top :arrow_up:

CloudWatch Alternatives and Lock-In

Back to top :arrow_up:

CloudWatch Tips

Back to top :arrow_up:

CloudWatch Gotchas and Limitations

AMIs

AMI Basics

Back to top :arrow_up:

AMI Tips

Back to top :arrow_up:

AMI Gotchas and Limitations

Auto Scaling

Auto Scaling Basics

Back to top :arrow_up:

Auto Scaling Tips

Back to top :arrow_up:

Auto Scaling Gotchas and Limitations

EBS

EBS Basics

Back to top :arrow_up:

EBS Tips

Back to top :arrow_up:

EBS Gotchas and Limitations

EFS

EFS Basics

Back to top :arrow_up:

EFS Tips

Back to top :arrow_up:

EFS Gotchas and Limitations

Load Balancers

Load Balancer Basics

Back to top :arrow_up:

Load Balancer Tips

  1. Upload a new IAM Server Certificate with a unique name (e.g fuzzy.com.new)
  2. Rename the existing IAM Server Certificate (e.g fuzzy.com to fuzzy.com.expired)
  3. Rename the new IAM Server Certificate to the name of the previously existing certificate (e.g fuzzy.com.new to fuzzy.com)
  4. Jiggle the CLB/ALB Listener to pick up the change:
    • ALB: Invoke modify-listener with the existing details for the ALB Listener
    • CLB: Invoke create-load-balancer-listeners with the existing details for the CLB listener

Back to top :arrow_up:

Load Balancer Gotchas and Limitations

CLB

CLB Basics

Back to top :arrow_up:

CLB Tips

Back to top :arrow_up:

CLB Gotchas and Limitations

ALB

ALB Basics

Back to top :arrow_up:

ALB Tips

Back to top :arrow_up:

ALB Gotchas and Limitations

Elastic Beanstalk

Elastic Beanstalk Basics

Back to top :arrow_up:

Elastic Beanstalk Tips

Back to top :arrow_up:

Elastic Beanstalk Gotchas and Limitations

Elastic IPs

Elastic IP Basics

Back to top :arrow_up:

Elastic IP Tips

Back to top :arrow_up:

Elastic IP Gotchas and Limitations

Glacier

Glacier Basics

Back to top :arrow_up:

Glacier Tips

Back to top :arrow_up:

Glacier Gotchas and Limitations

Quicksight

Quicksight Basics

Back to top :arrow_up:

Quicksight Gotchas and Limitations

RDS

RDS Basics

Back to top :arrow_up:

RDS Tips

Back to top :arrow_up:

RDS Gotchas and Limitations

RDS MySQL and MariaDB

RDS MySQL and MariaDB Basics

Back to top :arrow_up:

RDS MySQL and MariaDB Tips

Back to top :arrow_up:

RDS MySQL and MariaDB Gotchas and Limitations

RDS PostgreSQL

RDS PostgreSQL Basics

Back to top :arrow_up:

RDS PostgreSQL Tips

Back to top :arrow_up:

RDS PostgreSQL Gotchas and Limitations

RDS SQL Server

RDS SQL Server Basics

Back to top :arrow_up:

RDS SQL Server Tips

Back to top :arrow_up:

RDS SQL Server Gotchas and Limitations

RDS Aurora

RDS Aurora Basics

Aurora is a cloud only database service designed to provide a distributed, fault-tolerant relational database with self-healing storage and auto-scaling up to 64TB per instance. It currently comes in two versions, a MySQL compatible system, and a PostgreSQL compatible system.

RDS Aurora MySQL

RDS Aurora MySQL Basics

Back to top :arrow_up:

RDS Aurora MySQL Tips

Back to top :arrow_up:

RDS Aurora MySQL Gotchas and Limitations

RDS Aurora PostgreSQL

RDS Aurora PostgreSQL Basics

Back to top :arrow_up:

RDS Aurora PostgreSQL Tips

Back to top :arrow_up:

RDS Aurora PostgreSQL Gotchas and Limitations

ElastiCache

ElastiCache Basics

Back to top :arrow_up:

ElastiCache Tips

Back to top :arrow_up:

ElastiCache Gotchas and Limitations

DynamoDB

DynamoDB Basics

Back to top :arrow_up:

DynamoDB Alternatives and Lock-in

Back to top :arrow_up:

DynamoDB Tips

Back to top :arrow_up:

DynamoDB Gotchas and Limitations

ECS

ECS Basics

Back to top :arrow_up:

ECS Tips

Back to top :arrow_up:

ECS Alternatives and Lock-in

🚧 Please help expand this incomplete section.

EKS

EKS Basics

Back to top :arrow_up:

EKS Tips

Back to top :arrow_up:

EKS Alternatives and Lock-in

Back to top :arrow_up:

EKS Gotchas and Limitations

Back to top :arrow_up:

Footnotes

<a name="user-content-eks-aws-cli-create-kubeconfig">1</a>: https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html<br /> <a name="user-content-eks-aws-cli-get-token">2</a>: https://aws.amazon.com/about-aws/whats-new/2019/05/amazon-eks-simplifies-kubernetes-cluster-authentication/<br />

Fargate

Fargate Basics

Back to top :arrow_up:

Fargate Tips

Back to top :arrow_up:

Fargate Alternatives and Lock-in

Back to top :arrow_up:

Fargate Gotchas and Limitations

Lambda

Lambda Basics

Back to top :arrow_up:

Lambda Tips

Back to top :arrow_up:

Lambda Alternatives and Lock-in

Back to top :arrow_up:

Lambda Gotchas and Limitations

Back to top :arrow_up:

Lambda Code Samples

🚧 Please help expand this incomplete section.

API Gateway

API Gateway Basics

Back to top :arrow_up:

API Gateway Alternatives and Lock-In

Back to top :arrow_up:

API Gateway Tips

Back to top :arrow_up:

API Gateway Gotchas and Limitations

🚧 Please help expand this incomplete section.

Step Functions

Step Functions Basics

Back to top :arrow_up:

Step Functions Tips

Back to top :arrow_up:

Step Functions Gotchas and Limitations

Route 53

Route 53 Basics

Back to top :arrow_up:

Route 53 Alternatives and Lock-In

Back to top :arrow_up:

Route 53 Tips

Back to top :arrow_up:

Route 53 Gotchas and Limitations

CloudFormation

CloudFormation Basics

Back to top :arrow_up:

CloudFormation Alternatives and Lock-In

Back to top :arrow_up:

CloudFormation Tips

Back to top :arrow_up:

CloudFormation Gotchas and Limitations

VPCs, Network Security, and Security Groups

VPC Basics

Back to top :arrow_up:

VPC and Network Security Tips

Back to top :arrow_up:

PrivateLink

Back to top :arrow_up:

VPC and Network Security Gotchas and Limitations

KMS

KMS Basics

Back to top :arrow_up:

KMS Tips

Back to top :arrow_up:

KMS Gotchas and Limitations

CloudFront

CloudFront Basics

Back to top :arrow_up:

CloudFront Alternatives and Lock-in

Back to top :arrow_up:

CloudFront Tips

Back to top :arrow_up:

CloudFront Gotchas and Limitations

DirectConnect

DirectConnect Basics

Back to top :arrow_up:

DirectConnect Tips

Redshift

Redshift Basics

Back to top :arrow_up:

Redshift Alternatives and Lock-in

Back to top :arrow_up:

Redshift Tips

Back to top :arrow_up:

Redshift Gotchas and Limitations

EMR

EMR Basics

Back to top :arrow_up:

EMR Alternatives and Lock-in

Back to top :arrow_up:

EMR Tips

Back to top :arrow_up:

EMR Gotchas and Limitations

Kinesis Streams

Kinesis Streams Basics

Back to top :arrow_up:

Kinesis Streams Alternatives and Lock-in

Back to top :arrow_up:

Kinesis Streams Tips

Back to top :arrow_up:

Kinesis Streams Gotchas and Limitations

Kinesis Firehose

Back to top :arrow_up:

Kinesis Firehose Gotchas and Limitations

Device Farm

Device Farm Basics

Back to top :arrow_up:

Device Farm Tips

Back to top :arrow_up:

Device Farm Gotchas and Limitations

Mobile Hub

Mobile Hub Basics

Back to top :arrow_up:

Mobile Hub Tips

Back to top :arrow_up:

Mobile Hub Gotchas and Limitations

IoT

IoT Basics

How AWS IoT Works

Back to top :arrow_up:

IoT Greengrass

IoT Greengrass

Back to top :arrow_up:

IoT Alternatives and Lock-in

Back to top :arrow_up:

IoT Tips

Back to top :arrow_up:

IoT Gotchas and Limitations

Back to top :arrow_up:

IoT Code Samples

SES

SES Basics

Back to top :arrow_up:

SES Tips

Back to top :arrow_up:

SES Gotchas and Limitations

Certificate Manager

Certificate Manager Basics

Back to top :arrow_up:

Certificate Manager Alternatives and Lock-in

Back to top :arrow_up:

Certificate Manager Tips

Back to top :arrow_up:

Certificate Manager Gotchas and Limitations

WAF

WAF Basics

Back to top :arrow_up:

WAF Tips

Back to top :arrow_up:

WAF Gotchas and Limitations

OpsWorks

OpsWorks Basics

Back to top :arrow_up:

OpsWorks Alternatives and Lock-in

Back to top :arrow_up:

OpsWorks Tips

Back to top :arrow_up:

OpsWorks Gotchas and Limitations

Batch

Batch Basics

Back to top :arrow_up:

Batch Tips

SQS

SQS Basics

Back to top :arrow_up:

SQS Alternatives and Lock-In

Back to top :arrow_up:

SQS Tips

Back to top :arrow_up:

SQS Gotchas and Limitations

SNS

SNS Basics

Back to top :arrow_up:

SNS Alternatives and Lock-In

Back to top :arrow_up:

SNS Tips

Back to top :arrow_up:

SNS Gotchas and Limitations

High Availability

This section covers tips and information on achieving high availability.

High Availability Tips

Back to top :arrow_up:

High Availability Gotchas and Limitations

Billing and Cost Management

Billing and Cost Visibility

Back to top :arrow_up:

AWS Data Transfer Costs

AWS Data Transfer Costs

Back to top :arrow_up:

EC2 Cost Management

Further Reading

This section covers a few unusually useful or β€œmust know about” resources or lists.

Disclaimer

The authors and contributors to this content cannot guarantee the validity of the information found here. Please make sure that you understand that the information provided here is being provided freely, and that no kind of agreement or contract is created between you and any persons associated with this content or project. The authors and contributors do not assume and hereby disclaim any liability to any party for any loss, damage, or disruption caused by errors or omissions in the information contained in, associated with, or linked from this content, whether such errors or omissions result from negligence, accident, or any other cause.

License

Creative Commons License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.