Developing on AWS Resources
AWS Infrastructure
- https://aws.amazon.com/about-aws/global-infrastructure/regions_az
- https://aws.amazon.com/about-aws/global-infrastructure/
- AWS global infrastructure: https://infrastructure.aws/
- Latency between AWS regions: https://www.cloudping.co/
- AWS Service Health Dashboard: https://status.aws.amazon.com/
- A digital tour of an AWS data center: https://aws.amazon.com/compliance/data-center/
- AWS re:Invent 2016 | Amazon Global Network Overview with James Hamilton: https://youtu.be/uj7Ting6Ckk?t=232
- A Day in the life of a Netflix engineer
- https://www.youtube.com/watch?v=-mL3zT1iIKw&list=PLR1oeA7piE4-zE4J6JTJwQ7K_Cc1WGsRa
- When it comes to uptime, not all cloud providers are created equal: https://www.networkworld.com/article/3394341/when-it-comes-to-uptime-not-all-cloud-providers-are-created-equal.html
AWS Foundation Services
- Amazon EC2 Instance Types: https://aws.amazon.com/ec2/instance-types/
- It can be tricky to locate all information about Amazon EC2 Instance Types, here is a third party tool that helps: https://ec2instances.info/
- AWS re:Invent 2018 | New – Hibernate Your EC2 Instances: https://aws.amazon.com/blogs/aws/new-hibernate-your-ec2-instances/
- AWS re:Invent 2018 | New – Predictive Scaling for EC2, Powered by Machine Learning: https://aws.amazon.com/blogs/aws/new-predictive-scaling-for-ec2-powered-by-machine-learning/
Developer Tool Resources for AWS
- Signature Version 4 Signing Process: https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
- Language Support in the AWS Cloud9 IDE: https://docs.aws.amazon.com/cloud9/latest/user-guide/language-support.html
- Tracing serverless application with AWS X-Ray: https://medium.com/nordcloud-engineering/tracing-serverless-application-with-aws-x-ray-2b5e1a9e9447
- AWS re:Invent 2018 | New – AWS Toolkits for PyCharm, IntelliJ (Preview), and Visual Studio Code (Preview): https://aws.amazon.com/blogs/aws/new-aws-toolkits-for-pycharm-intellij-preview-and-visual-studio-code-preview/
- AWS re:Invent 2018 |New – Amazon CloudWatch Logs Insights – Fast, Interactive Log Analytics: https://aws.amazon.com/blogs/aws/new-amazon-cloudwatch-logs-insights-fast-interactive-log-analytics/
- CloudTrail Record Contents: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html
AWS Local Development and Testing
- LocalStack – Develop and test your cloud apps offline: https://localstack.cloud/
- Setting Up DynamoDB Local: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html
- AWS SAM Local – Build and Test Serverless Applications Locally: https://aws.amazon.com/blogs/aws/new-aws-sam-local-beta-build-and-test-serverless-applications-locally/
Developer IAM Resources
- What exactly are the Access Key ID and the Secret Access Key? https://stackoverflow.com/questions/49331467/aws-access-key-id-and-secret-access-key
- IAM JSON Policy Elements Reference: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html
- IAM Policy Simulator:
- https://policysim.aws.amazon.com/home/index.jsp
- Variables in AWS Access Control Policies: https://aws.amazon.com/blogs/aws/variables-in-aws-access-control-policies/
S3 Resources
- 30 APR 2019, New – Amazon S3 Batch Operations | https://aws.amazon.com/blogs/aws/new-amazon-s3-batch-operations/
- AWS re:Invent 2018 | New – Automatic Cost Optimization for Amazon S3 via Intelligent Tiering: https://aws.amazon.com/blogs/aws/new-automatic-cost-optimization-for-amazon-s3-via-intelligent-tiering/
- AWS re:Invent 2018 | New – AWS Transfer for SFTP – Fully Managed SFTP Service for Amazon S3: https://aws.amazon.com/blogs/aws/new-aws-transfer-for-sftp-fully-managed-sftp-service-for-amazon-s3/
- Amazon S3 Block Public Access – Another Layer of Protection for Your Accounts and Buckets: https://aws.amazon.com/blogs/aws/amazon-s3-block-public-access-another-layer-of-protection-for-your-accounts-and-buckets/
- S3 event message structure: https://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html
- AWS re:Invent 2016 | Move Exabyte-Scale Data Sets with AWS Snowmobile: https://www.youtube.com/watch?v=8vQmTZTq7nw
- Amazon S3 Transfer Acceleration Speed Comparison
- https://s3-accelerate-speedtest.s3-accelerate.amazonaws.com/en/accelerate-speed-comparsion.html
Dynamo DB Resources
- A great primer on what DynamoDB is and how to use it
- https://www.dynamodbguide.com/
- Understanding DynamoDB Service limits
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html
- What Is a Key-Value Database?
- https://aws.amazon.com/nosql/key-value/
- AWS re:Invent 2018 | New – Amazon DynamoDB Transactions: https://aws.amazon.com/blogs/aws/new-amazon-dynamodb-transactions/
- AWS re:Invent 2018 | New – Amazon DynamoDB On-Demand – No Capacity Planning and Pay-Per-Request Pricing: https://aws.amazon.com/blogs/aws/amazon-dynamodb-on-demand-no-capacity-planning-and-pay-per-request-pricing/
- How It Works-Partitions and Data Distribution: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html
- A Deep Dive into DynamoDB Partitions: https://shinesolutions.com/2016/06/27/a-deep-dive-into-dynamodb-partitions/
- Partition Key (HASH) Best Practices:
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html
- Sort Key (RANGE) Best Practices:
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-sort-keys.html
- DynamoDB ORM: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.html
- DynamoDB Atomic Counters: https://docs.amazonaws.cn/en_us/amazondynamodb/latest/developerguide/GettingStarted.Python.03.html#GettingStarted.Python.03.05
- Best practices: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices.html
- DynamoDB pitfall: limited throughout due to hot partitions: https://cloudonaut.io/dynamodb-pitfall-limited-throughput-due-to-hot-partitions/
- Detecting and Correcting Index Key Violations in GSI:
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.ViolationDetection.html
- NoSQL Injection attacks against DynamoDB: https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.nosql_injection_dynamodb
- How to convert a boto3 Dynamo DB item to a regular dictionary in Python? https://stackoverflow.com/questions/43755888/how-to-convert-a-boto3-dynamo-db-item-to-a-regular-dictionary-in-python
- Understanding the CAP Theorem: https://dzone.com/articles/understanding-the-cap-theorem
- Simplify Amazon DynamoDB data extraction and analysis by using AWS Glue and Amazon Athena: https://aws.amazon.com/blogs/database/simplify-amazon-dynamodb-data-extraction-and-analysis-by-using-aws-glue-and-amazon-athena/
- Gateway VPC Endpoints for Amazon DynamoDB:
- https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-ddb.html
- Amazon DynamoDB Table Design Patterns:
- Amazon DynamoDB Read/Write Capacity Mode: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html
- 2017 AWS Online Tech Talks | Amazon DynamoDB Accelerator (DAX), DynamoDB Just Got Faster: https://youtu.be/wBCDe5964-0
Lambda
- AWS Lambda Best Practices
- https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html
- AWS Lambda Context Reuse
- https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html
- AWS re:Invent 2018 | New for AWS Lambda – Use Any Programming Language and Share Common Components: https://aws.amazon.com/blogs/aws/new-for-aws-lambda-use-any-programming-language-and-share-common-components/
- AWS Lambda Pricing Calculator: https://s3.amazonaws.com/lambda-tools/pricing-calculator.html
- Sample Events Published by Event Sources: https://docs.aws.amazon.com/lambda/latest/dg/eventsources.html
- AWS IoT Button, Cloud Programmable Dash Button: https://aws.amazon.com/iotbutton/
- Using AWS Lambda with an Application Load Balancer: https://docs.aws.amazon.com/lambda/latest/dg/services-alb.html
- Lambda integration with API Gateway vs Application Load Balancer: https://serverless-training.com/articles/api-gateway-vs-application-load-balancer-technical-details/
- Comparing AWS SAM with the Serverless framework:
- https://sanderknape.com/2018/02/comparing-aws-sam-with-serverless-framework/
Amazon API Gateway
- API Gateway Throttling Explained:
- https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html
- Key concepts of API Gateway:
- https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-basic-concept.html
- Building APIs with Amazon API Gateway:
- https://www.youtube.com/watch?v=XwfpPEFHKtQ
- This Is My Code | Cutting Code with API Gateway Validation:
- https://www.youtube.com/watch?v=xjwIRaK6wcY&index=14&list=PLhr1KZpdzukdeX8mQ2qO73bg6UKQHYsHb
- Error Handling Patterns in Amazon API Gateway and AWS Lambda:
- https://aws.amazon.com/blogs/compute/error-handling-patterns-in-amazon-api-gateway-and-aws-lambda/
- Handle Lambda Errors in API Gateway:
- https://docs.aws.amazon.com/apigateway/latest/developerguide/handle-errors-in-lambda-integration.html
- This guide walks you through the steps to build an example serverless application using the AWS Serverless Application Model (AWS SAM):
- https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-quick-start.html
- Using API Gateway as a proxy for DynamoDB:
- https://aws.amazon.com/blogs/compute/using-amazon-api-gateway-as-a-proxy-for-dynamodb/
- Create a Canary Release Deployment: https://docs.aws.amazon.com/apigateway/latest/developerguide/create-canary-deployment.html
AWS SAM
- The AWS Serverless Application Model (AWS SAM) is an open-source framework that enables you to build serverless applications on AWS. It provides you with a template specification to define your serverless application, and a command line interface (CLI) tool.
- https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html
AWS AppSync
- AWS AppSync simplifies application development by letting you create a flexible API to securely access, manipulate, and combine data from one or more data sources. AppSync is a managed service that uses GraphQL to make it easy for applications to get exactly the data they need.
- GraphQL | A query language for your API: https://graphql.org/
- Creating Your First AWS AppSync GraphQL API: https://www.youtube.com/watch?v=_ayZeVjwRPk
Step Functions
- AWS Step Functions Service Integrations:
- https://docs.aws.amazon.com/step-functions/latest/dg/concepts-service-integrations.html
- AWS re:Invent 2018 | New – Compute, Database, Messaging, Analytics, and Machine Learning Integration for AWS Step Functions: https://aws.amazon.com/blogs/aws/new-compute-database-messaging-analytics-and-machine-learning-integration-for-aws-step-functions/
- Amazon States Language: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html
- Tim Bray introduces newly launched AWS Step Functions service at re:Invent 2016: https://www.youtube.com/watch?v=75MRve4nv8s
- The concept of Activities: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-activities.html
- Hitchhiker’s Guide to AWS Step Functions: http://blog.epsagon.com/hitchhikers-guide-to-aws-step-functions
- Things Go Better With Step Functions (a real-world use case): https://aws.amazon.com/blogs/aws/things-go-better-with-step-functions/
Securing Your AWS Applications
- AWS Shared Responsibility Model: https://aws.amazon.com/compliance/shared-responsibility-model/
- Encryption and Key Management in AWS: https://www.youtube.com/watch?v=uhXalpNzPU4
- AWS Certificate Manager (ACM) FAQs: https://aws.amazon.com/certificate-manager/faqs/
- AWS Secrets Manager FAQs: https://aws.amazon.com/secrets-manager/faqs/
Identity and Access Management
- AWS re:Invent 2017 | Soup to Nuts: Identity Federation for AWS: https://www.youtube.com/watch?v=CJexxdv054c
- AWS re:Invent 2017 | Implement User Onboarding, Sign-Up, and Sign-In for Mobile and Web Applications with Amazon Cognito: https://www.youtube.com/watch?v=EB226VmI2vQ
- AWS re:Invent 2017 | Identity Management for Your Users and Apps – A Deep Dive on Amazon Cognito: https://www.youtube.com/watch?v=jLQjQpUYw6g
- How to use Amazon Cognito identity pools and user pools with API Gateway, Lambda, and IAM: https://www.youtube.com/watch?v=VZqG7HjT2AQ and the reference SpaceFinder application: https://github.com/awslabs/aws-serverless-auth-reference-app
- Web Identity Federation Playground: https://web-identity-federation-playground.s3.amazonaws.com/index.html
- OAuth 2.0 and OpenID Connect (in plain English): https://youtu.be/996OiexHze0
- Understanding OAuth 2.0 and OpenID Connect: https://blog.runscope.com/posts/understanding-oauth-2-and-openid-connect
DevOps
- Let’s deploy to production (or why we need DevOps): https://youtu.be/5p8wTOr8AbU
- The Three Ways – The Principles Underpinning DevOps:
- https://itrevolution.com/the-three-ways-principles-underpinning-devops/
- My resource page for “DevOps Engineering on AWS” course:
- https://bit.ly/2V5YAVy
- 2009 – John Allspaw and Paul Hammond discuss what later becomes known as the DevOps culture as well as the best practices like one-step deploy, feature switches, dark launches, shared metrics, etc. in their groundbreaking talk “10+ Deploys Per Day: Dev and Ops Cooperation at Flickr” at Velocity 2009 O’Reilly Conference: https://www.youtube.com/watch?v=LdOe18KhtT4
- 2009 – Patrick Debois kicks off first Devopsdays conference in Ghent, Belgium: https://www.devopsdays.org
- 2013 – Gene Kim, Kevin Behr and George Spafford publish “The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win”: https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/0988262592
- 2016 – Gene Kim, Patrick Debois, John Willis and Jez Humble publish “The DevOps Handbook – How to Create World-Class Agility, Reliability, and Security in Technology Organizations”: https://www.amazon.com/DevOps-Handbook-World-Class-Reliability-Organizations/dp/1942788002
- AWS re:Invent 2017 | Deep Dive on Advanced Continuous Delivery Techniques Using AWS DevOps tools: https://www.youtube.com/watch?v=Lrrgd0Kemhw
- Six Strategies for Application Deployment: https://thenewstack.io/deployment-strategies/
- 10 Fascinating A/B Testing Examples: https://www.designforfounders.com/ab-testing-examples/
- Martin Fowler on Blue/Green Deployment: https://martinfowler.com/bliki/BlueGreenDeployment.html
- Deploy Code to a Virtual Machine
- with AWS CodeDeploy: https://aws.amazon.com/getting-started/tutorials/deploy-code-vm/
- Build A CI/CD Pipeline Using AWS Developer Tools: https://blog.pythian.com/build-ci-cd-pipeline-using-aws-developer-tools/
- AWS re:Invent 2017 | Building CI/CD Pipelines for Serverless Applications (best practices @31:00): https://www.youtube.com/watch?v=dCDZ7HR7dms
- AWS re:Invent 2017 | Continuous Integration Best Practices for Software Development: https://www.youtube.com/watch?v=GEPJ7Lo346A
Additional Resources
- Decouple and Scale Applications Using Amazon SQS and Amazon SNS: https://www.youtube.com/watch?v=UesxWuZMZqI
- How Do Dead-Letter Queues Work? https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html