I build things.

CloudFormation Template Basics

Defining your resources in JSON.

An AWS CloudFormation template, which is a JSON document, may contain the following sections (keys): Parameters Conditions Mappings Resources Outputs Note that only the Resources section is required to use a template, the rest are optional. In addition you can include: AWSTemplateFormatVersion Description Metadata Parameters Parameters allow you to accept input into your CloudFormation stacks. It might be something as simple as the application name, it might be database parameters, it might be instance types for your EC2 instances.

Intro to CloudFormation

Infrastructure as Code.

Over the last several months I’ve had the opportunity to start working directly with AWS CloudFormation and it’s already become a staple of any new AWS related project. CloudFormation is a service that allows you define, create, iterate and destroy AWS infrastructure from a JSON formatted template or set of templates (you can also template external resources with more advanced tooling). At its simplest you define a Stack in JSON, and hand it off to CloudFormation to manage the provisioning of all the resources.

Drawing AWS diagrams with Cloudcraft

Drag and drop architecture diagrams.

The folks over at Cloudcraft have created a great resource to easily build and manage architecture diagrams. You can drag and drop, edit and manipulate icons for all AWS services, and add text, visual aids and even Font Awesome icons. It’s also a free service. As a quick example below is how this site, statically hosted in an S3 bucket, served through CloudFront and using API Gateway + Lambda + SES to handle dynamic functionality (processing a contact form) would be modeled:

Power tool: aws-shell

The interactive productivity booster for the AWS CLI.

The AWS CLI can be an incredibly efficient means of interacting with your AWS account, but there is a steep learning curve for beginners and the breadth and depth of functionality can be overwhelming. Enter aws-shell. It’s an interactive shell that provides cool features like: Auto/tab completion of commands and options as you type Examples of the shorthand syntax for various options Fuzzy searching Integration with your account (for autocompleting instance IDs for example) Inline documentation/help Note: If you are like me and don’t read the instructions before getting started and you are running El Capitan take note of the need to install with some extra flags: