Best practice blueprints for AWS production topologies
Branch: master
Clone or download
Latest commit 26e1b71 Feb 14, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Update fargate-ssm-env-var-helper.sh Nov 7, 2018
docs Set theme jekyll-theme-cayman Jan 23, 2019
img img Feb 14, 2019
nested-stacks Update README.md Feb 14, 2019
pipelines allow codebuild role to ssm:Get* Dec 5, 2018
.gitignore ssm helper Jun 27, 2018
LICENSE Initial commit Jun 13, 2018
README.md Update README.md Feb 14, 2019

README.md

aws-blueprint

Easy to use CI/CD driven, convention based application harness that facilitates production grade, multi-stage approval based deployments. Each developer on your team can easly create production replica toplogies from a git feature branch.

Architected to work with a low cost (but scaleable) APIGateway+Lambda OR a high transaction ECS Fargate environment. Includes an upgrade path from the APIG+Lambda to Fargate if/when the workload outgrows Lambda.

Prerequisites

There are a handful of necessary steps prior to running any of the Blueprints below. These steps only need to be done once.

  1. AWS CLI
  2. Create a personal github access token. This token will be used by the CI/CD to pull code. If you work in a team, it is recommended to create a seperate github user account for this.
  3. Create a versioned S3 bucket to store CloudFormation nested stack templates. See nested-stacks for instructions.
  4. If you are running MacOS, install GNU tools (below)

Terminology

The Stage/Stages term referred to thoughout the Blueprints are: test,staging,prod. All CI/CD enviornments created by Blueprint will give you these 3 stages by default.

Blueprints

View the setup instructions in the README.md of the blueprint you wish to use.

GNU tools for MacOS

Not required, but recomended. Some blueprints have a quickstart script, that will require GNU versions if running MacOS.

brew install wget
brew install coreutils
brew install gnu-sed

#add the following to your PATH

#### fish example (~/.config/fish/config.fish):
set -x GNU_BIN_PATH /usr/local/opt/coreutils/libexec/gnubin
set -x GNU_SED_PATH /usr/local/opt/gnu-sed/libexec/gnubin
set -x PATH $GNU_BIN_PATH $GNU_SED_PATH $PATH

#### Bash example (~/.bash_profile)
GNU_BIN_PATH=/usr/local/opt/coreutils/libexec/gnubin
GNU_SED_PATH=/usr/local/opt/gnu-sed/libexec/gnubin
export PATH="$GNU_BIN_PATH:$GNU_SED_PATH:$PATH"

Tips

  1. Setup a trusted, https certificate for local development.