iframe-eb-deploy
v1.3.1
Published
A Node.js utility to deploy Docker containers to AWS Elastic Beanstalk
Downloads
22
Readme
iframe-eb-deploy
Purpose
iframe-eb-deploy makes short work of deploying Invisible Framework applications to AWS Elastic Beanstalk.
With a small amount of configuration, it deploys auto-scaling applications with HTTPS.
Applications are automatically versioned and archived to S3 on every deploy, making build-promotion extremely easy via both the AWS interface and the AWS SDK.
NOTE: this utility enforces HTTPS and no-www for your domains.
Installation
Install as a local dependency in your Invisible Framework-based project:
npm install -S iframe-eb-deploy
Setup
iframe-eb-deploy uses a config file named deploy.js
at the root of your Invisible Framework project. The default configuration will automatically be created when you first install iframe-eb-deploy.
A postinstall script will automatically add the deploy script to your package.json file.
Usage
npm run deploy
Configuring Your AWS Infrastructure
- Using S3, create a new bucket. In your
deploy.js
, enter the name you used for this bucket as the value for thes3Bucket
property.
- Using EC2, create a security group that allows all inbound request from HTTP and HTTPS. Copy the name you give it to your clipboard, you'll need it in the next step.
- Using Elastic Beanstalk, create a new web server application. Choose Docker as the configuration, and choose "Load balancing, auto scaling" as the environment type. Create a new application environment using at least a "t2.small" instance size with auto-scaling enabled (even if you set the maximum instance count to 1). Set the security group for your Beanstalk application to the one you created in step 1.
- Using AWS Certificate Manager, create a certificate for the domain you plan to use. Be sure to include "www" as an additional domain if you plan to use both "domain.com" and "www.domain.com".
- Using EC2, go to the Load Balancer for your Elastic Beanstalk application and configure the listeners to use both HTTP and HTTPS, with HTTPS configured to use the certificate you created in the previous step.
- Change the Load Balancer's security group to the one you created in step 2.
- Using Route 53, configure your domain with an A Record to point to your Load Balancer as an Alias.
Versioning
To keep better organization of releases this project follows the Semantic Versioning 2.0.0 guidelines.
Contributing
Want to contribute? Follow these recommendations.