Elastic Beanstalk is a powerful Development Operations tool (Dev Ops) to deploy your code to AWS services and infrastructure with minimal effort.
We'll be using the Command Line Interface to work with Elastic Beanstalk. This will provide us with a set of commands to create new applications and deploy code to these systems. Before continuing, you must install the EB CLI by reading the AWS Doc Instructions for Install for your platform.
eb --version eb init
After running the
eb init command and following the guided setup will create a new directory in our project named
.elasticbeanstalk. Within this configuration file, there is a configuration file named
config.yml. This is the set of instructions Elastic Beanstalk will follow when provisioning your AWS infrastructure and deploying your code.
Add following code to the file:
branch-defaults: default: ... deploy: artifact: ./www/Archive.zip global:
ElasticBeanstalk only interests in source code, put all the code into zip with package.json.
You can also upload zip using mangement console.
Creating Deployable Build Archives and Deploying
package.json file. As described in the video, we've included the
build command to perform these steps for us.
"clean": "rimraf www/ || true", "build": "npm run clean && tsc && cp -rf src/config www/config && cp .npmrc www/.npmrc && cp package.json www/package.json && cd www && zip -r Archive.zip . && cd ..",
npm run build
It creates `/www` folder and `Archive.zip`.
Deploy to AWS
Environment Name, DNS CNAME prefix, load balance type: 2) application Spot Fleet request: N
After successfully deploy to Elastic Beanstalk, open AWS Management Console -> Elastic Beanstalk -> Configuration -> Software -> Edit button
Add all necessary Environment properties.
In "Configuration" -> "Security", can see that it is using
Need to assign: AmazonRDSDataFullAccess, AmazonS3FullAccess, AdministratorAccess-AWSElasticBeanstalk and AWSElasticBeanstalkReadOnly.
Since we need to modify s3, database, and ElasticBeanstalk needs to setup EC2 and load balancer.
After the settings, application should work