Why it's awesome
Why should we use it
How should we use it
Configuration management,
CloudWatch monitoring,
SSL support,
Rolling updates,
State notifications,
Robust logging system,
Sticky sessions,
Healthchecks
and more...
Version_1
Version_1:latest
Version_1
Version_1:latest
Code on the machine
*Application can have multiple environments
Versions are prebuilt docker images stored on ECR
# Setup
eb init
eb create
# Deployment
eb deploy -r <AWS_REGION>
# Logs
eb logs
# Logs realtime
eb logs --stream
# SSH to instance
eb ssh
# Rescale
eb scale
~ ➜ eb
usage: eb (sub-commands ...) [options ...] {arguments ...}
Welcome to the Elastic Beanstalk Command Line Interface (EB CLI).
For more information on a specific command, type "eb {cmd} --help".
commands:
abort Cancels an environment update or deployment.
clone Clones an environment.
config Edits the environment configuration settings or manages saved configurations.
console Opens the environment in the AWS Elastic Beanstalk Management Console.
create Creates a new environment.
deploy Deploys your source code to the environment.
events Gets recent events.
health Shows detailed environment health.
init Initializes your directory with the EB CLI. Creates the application.
labs Extra experimental commands.
list Lists all environments.
local Runs commands on your local machine.
logs Gets recent logs.
open Opens the application URL in a browser.
platform Manages platforms.
printenv Shows the environment variables.
scale Changes the number of running instances.
setenv Sets environment variables.
ssh Opens the SSH client to connect to an instance.
status Gets environment information and status.
swap Swaps two environment CNAMEs with each other.
terminate Terminates the environment.
upgrade Updates the environment to the most recent platform version.
use Sets default environment.
# Setup
terraform plan -out plan.tfplan
terraform apply
# Deploy
./deploy.sh <appname> <environment> <region> <commit_sha>
^ ^ ^ ^
[Same as on Beanstalk] [us-east-1] [might be gibberish]
./deploy.sh
=
1. Login to Container Registry
2. Build Image
3. Add tags to it
4. Deploy to Container Registry
5. Create new Version on beanstalk
6. Create new beanstalk task (new version with new code)
*May be executed locally or on Circle