Microservices Architecture on AWS

This is the working github repository for the "Learning Live with AWS & HashiCorp" series. We'll discuss the foundations of a microservices architecture, the problem space it solves, where service mesh fits into all of this, and then begin from scratch - setting up a Terraform project, creating a Virtual Private Cloud (VPC), and explaining all of the concepts along the way.

This repo will be updated after each episode!

This repo is split into branches, each representing a part in the series:

  • Part 1 - Setting up the Terraform project and creating a VPC
  • Part 2 - Creating your first containerized microservice on Amazon ECS with Terraform
  • Part 3 - Extending your application with private microservices

The Architecture

Our first section of episodes will work towards building out the following architecture:

Microservices Architecture on AWS Section 1

The second section of episodes will work towards refactoring the first section's architecture into using a Service Mesh.

Getting Started

Prerequisites

  1. Have an AWS Account.

  2. Install HashiCorp Terraform.

  3. Have the AWS CLI Installed.

  4. Create an AWS IAM User with Admin or Power User Permissions.

  • this user will only be used locally
  1. Configure the AWS CLI with the IAM User from Step 4.

Using this Code

  1. Clone this repo to an empty directory.

  2. Run terraform plan to see what resources will be created.

  3. Run terraform apply to create the infrastructure on AWS!

  4. Run terraform destroy when you're done to get rid of the infrastructure.

Questions? Suggestions? Comments?

Reach out to either Jenna Pederson or J. Cole Morrison. Also, feel free to leave any issues you run into on this Github Repo!