Skip to content

Infrastructure

CloudFormation

CloudFormation is a declaritive way of outlining your AWS services for almost any resource. You can also define infrastructure programmatically via the CDK.

Elastic Beanstalk

This gives you one view where you can manage most of your AWS services for an application (EC2, ASG, ELB, RDS, etc). This view still gives you full control over the configuration of these services. Beanstalk is free but you pay for the underlying resources. That way you are only responsible for the application code. Supports many languages and single/multi-container docker workloads. There are three architecture models:

  • Single instance - dev
  • LB + ASG - Prod web apps
  • ASG only - prod workers

CodeDeploy

CodeDeploy is a method of deploying our applications automatically, working on both EC2 instances and on-prem servers. There is a CodeDeploy agent that must be deployed on the receiving machines first.

CodeCommit

Github for AWS.

CodeBuild

Compiles source code, runs tests, and produces packages ready for deployment.

CodePipeline

Orchestrate the steps your code goes through with the above services. Go from commit to build to deploy.

CodeArtifact

Artifact storage in AWS for dependencies and packages. Works for most major dependency management tools.

CodeStar

One stop shop for the above services.

Cloud9

Cloud IDE for writing, running, and debugging code. Allows for real-time pair programming.

AWS Systems Manager

Central place to manage both EC2 instances and on-prem servers at scale. Install an agent on the machines so they can communicate back. This agent can run commands, patch, and configure our servers.

SSM Session Manager

Allows you to start a secure shell on machines with the SSM Agent installed without SSH. This is better for security by not needing to allow traffic on that port.

Parameter Store

Place to store keys, passwords, configs, etc.