@johnedquinn/ecs-application
v1.2.0
Published
A Construct Library for deploying containerized applications
Downloads
10
Readme
ECS Application
This project generates the industry-standard infrastructure for a containerized application of any language or framework.
Installation
From your Node.js project, run:
npm install @johnedquinn/ecs-application
Configuration
Bootstrap
To bootstrap your AWS account (provide your AWS account with the necessary CDK configuration):
npx cdk bootstrap --profile <AWS_PROFILE> --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess
Route 53 Domain
Prior to running this code, it's necessary to register two domains on Route 53 -- this is because it requires checking its availability, payment, etc. One will be for Beta, and one will be for Prod.
After that, you'll need to configure the A (Alias) records so you can access the site, but I'm working on creating these records on deployment. See the roadmap in the contributing file.
SSM Parameters and GitHub Connection
You'll need to set up a GitHub connection, and you'll store its ARN (along with other strings) in the AWS SSM Parameter Store. After setting up the GitHub connection, run:
aws ssm put-parameter --name GITHUB_USER --value ${YOUR_USER} --type String
aws ssm put-parameter --name GITHUB_REPO --value ${YOUR_REPO} --type String
aws ssm put-parameter --name GITHUB_CONN --value ${YOUR_CONNECTION_ARN} --type String
This project will connect to SSM to grab these strings before deploying the Pipeline.
Environment Variables
To configure to your own needs, you can specify some environment variables -- namely:
APP_INFRA_NAME
: this project's nameAPP_NAME
: the web-application nameCDK_DEFAULT_ACCOUNT
: the account to create this pipeline inCDK_DEFAULT_REGION
: the region to create this pipeline in
Contributing
Please see the CONTRIBUTING.md file.
Build
To perform a build, there will be some necessary configuration (which I'll fill out later), but, once set up, you can run:
npm run build
Then, to make sure CloudFormation is able to be generated without issues, run:
cdk synth
To Run
Once you've verified that you can build without issues, it's time to deploy to your AWS account. Run:
cdk deploy
Great! It's as simple as that.
CDK Generated Information
The cdk.json
file tells the CDK Toolkit how to execute your app.
Useful commands
npm run build
compile typescript to jsnpm run watch
watch for changes and compilenpm run test
perform the jest unit testscdk deploy
deploy this stack to your default AWS account/regioncdk diff
compare deployed stack with current statecdk synth
emits the synthesized CloudFormation template