@johnedquinn/ecs-application v1.2.0
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-applicationConfiguration
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/AdministratorAccessRoute 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 StringThis 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 buildThen, to make sure CloudFormation is able to be generated without issues, run:
cdk synthTo Run
Once you've verified that you can build without issues, it's time to deploy to your AWS account. Run:
cdk deployGreat! 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 buildcompile typescript to jsnpm run watchwatch for changes and compilenpm run testperform the jest unit testscdk deploydeploy this stack to your default AWS account/regioncdk diffcompare deployed stack with current statecdk synthemits the synthesized CloudFormation template