AWS CDK Elastic Beanstalk Automation
virtualenv -p python3 .env
source .env/bin/activate
pip install -r requirements.txt
docker build -t martin/flask:latest .
Install node dependencies
Bootstrap the AWS Accounts only once
node_modules/aws-cdk/bin/cdk bootstrap --profile "mp-dev"
node_modules/aws-cdk/bin/cdk bootstrap --profile "mp-demo"
node_modules/aws-cdk/bin/cdk bootstrap --profile "mp-prod"
Deploying a new development environment
node_modules/aws-cdk/bin/cdk deploy \
--profile "mp-dev" \
-c debug="true" \
-c profile="mp-dev" \
-c application="mp" \
-c network="devnet" \
-c database="devmartindb" \
-c environment="devmartin" \
----require-approval "never" \
--all
Destroying the development environment
node_modules/aws-cdk/bin/cdk destroy \
--profile "mp-dev" \
-c debug="true" \
-c profile="mp-dev" \
-c application="mp" \
-c network="devnet" \
-c database="devmartindb" \
-c environment="devmartin" \
----require-approval "never" \
--all
Deploying 2 demo environments that share the same database
node_modules/aws-cdk/bin/cdk deploy \
--profile "mp-demo" \
-c debug="true" \
-c profile="mp-demo" \
-c application="mp" \
-c network="testnet" \
-c database="demodb" \
-c environment="demo01" \
----require-approval "never" \
--all
node_modules/aws-cdk/bin/cdk deploy \
--profile "mp-demo" \
-c profile="mp-demo" \
-c debug="true" \
-c application="mp" \
-c network="testnet" \
-c database="demodb" \
-c environment="demo01" \
----require-approval "never" \
--all
Deploying the production environment
node_modules/aws-cdk/bin/cdk deploy \
--profile "mp-prod" \
-c debug="true" \
-c profile="mp-prod" \
-c application="mp" \
-c network="mainnet" \
-c database="proddb" \
-c environment="production" \
----require-approval "never" \
--all
Deploying from AWS ECR to AWS Elastic Beanstalk
aws s3 cp \
--profile "mp-dev" \
/tmp/devmartin.json \
s3://mp-767087296931-deployments-bucket/Dockerrun.aws.json
aws elasticbeanstalk create-application-version \
--profile "mp-dev" \
--application-name "mp" \
--version-label "${VERSION}" \
--source-bundle "S3Bucket=mp-767087296931-deployments-bucket,S3Key=Dockerrun.aws.json"
aws elasticbeanstalk \
update-environment \
--profile "mp-dev" \
--application-name "mp" \
--version-label "${VERSION}" \
--environment-name "devmartin"