The AWS services that allocate and set up resources for you — most powered by CloudFormation underneath — with a deep dive and hands-on lab on Elastic Beanstalk. 9:43:12
What is provisioning
- Provisioning = the allocation or creation of resources and services to a customer; provisioning services set up and manage AWS services, and most of them use CloudFormation underneath
9:43:12
Provisioning services at a glance
- Elastic Beanstalk (EB) — PaaS to easily deploy web apps; provisions EC2, S3, SNS, CloudWatch, EC2 Auto Scaling groups, load balancers; think of it as "the Heroku equivalent for AWS"
9:43:33 - OpsWorks — configuration management service providing managed instances of Chef and Puppet
9:43:33 - CloudFormation — infrastructure modeling and provisioning service; automates provisioning by writing templates in JSON or YAML; this is IaC (Infrastructure as Code)
9:44:02 - Quick Starts — pre-made packages (essentially CloudFormation templates authored by the community or the Amazon Partner Network) that configure compute, network, storage, and other services to deploy a workload
9:44:02 - AWS Marketplace — digital catalog of thousands of software listings from independent software vendors to find, buy, test, and deploy software
9:44:33 - AWS Amplify — mobile/web app framework that provisions multiple AWS services as your backend, specifically serverless services (DynamoDB, AppSync/GraphQL, API Gateway...)
9:44:33 - AWS App Runner — fully managed service to quickly deploy containerized web apps and APIs at scale, no prior infrastructure experience required; basically PaaS for containers
9:44:56 - AWS Copilot — CLI to quickly launch and manage containerized applications; sets up pipeline scripts for you
9:44:56 - AWS CodeStar — unified UI to manage software development activities in one place; commonly launches stack types like LAMP
9:45:30 - AWS CDK — IaC tool letting you use your favorite programming language; generates CloudFormation templates
9:45:30
Elastic Beanstalk (deep dive)
- PaaS definition: lets customers develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with launching an app
9:45:59 - EB workflow: choose a platform, upload your code, it runs — with little knowledge of infrastructure; AWS says it's "not recommended for production" but that caveat targets enterprises — small/medium companies can run EB for a long time just fine
9:45:59 - Powered by CloudFormation templates; sets up: ELB, Auto Scaling groups, RDS, preconfigured EC2 instances, CloudWatch monitoring, SNS integration, deployment strategies (in-place, blue/green), built-in security (e.g., database password rotation), and Dockerized environments
9:46:37 - Supported platforms include: Docker, Multicontainer Docker, Go, .NET, Java, Node.js, Ruby, PHP, Python, Tomcat
9:46:55
Elastic Beanstalk follow-along (lab)
- Two environment tiers: web server environment and worker environment (worker = long-running workloads/background jobs); it's generally recommended to have both
9:47:51 - Platform choice: managed platform vs custom platform (own containers); sample application provided per platform (e.g., Ruby 2.7)
9:48:16 - Configuration presets: single instance (one EC2, very cost effective), single instance with spot pricing, high availability (load balancer + auto scaling group), or custom configuration
9:48:54 - More options: enable X-Ray, log rotation, log streaming, load balancer settings; deployment strategies: all at once, rolling, immutable, traffic splitting; key pair for SSH; can create and manage a database alongside the environment with key rotation handled for you
9:49:23 - Troubleshooting tip: if the environment hangs in a pending state ("instance has not sent any data since launch"), rebooting the instance can fix it
9:50:39 - Built-in operations: request logs (last 100 lines — access logs, error logs, Puma logs, EB engine logs, commonly sent to support), instance health monitoring, a built-in monitoring dashboard, alarms, managed event schedules, and event history
9:51:51 - Deploying a new version: download the running app version, edit it (demo used Cloud9), zip it (
zip -r app.zip .), then "Upload and deploy" with a version name10:00:02 - EB config files (YAML) can live in the app's root directory; the AWS samples work with defaults
10:00:31 - Cleanup gotchas: "Rate exceeded" errors when terminating can require retries; deleting the environment can take the application with it; EB leaves lingering S3 buckets protected by a bucket policy you must delete before the bucket can be removed
10:01:20,10:03:26