/aws-workshop

Learn to deploy real applications in a scalable way, using Amazon Web Services.

Primary LanguagePythonMIT LicenseMIT

AWS Workshop

This workshop aims to introduce the reader to managing infrastructure using Amazon Web Services (AWS).

We will learn to deploy real applications. As our demo app, we will use an open source test application called Conduit, which is handy to learn new frameworks because the same app has implementations in multiple frameworks for backend and frontend. In particular, we will use the version built with React and Django + Django-Rest-Framework backend.

In this repo, you can find the backend and frontend components, both with modified settings to fit our future infrastructure.

Preconditions

You must have an AWS account. Even though you mostly will be in the free tier, some services like Elastic Load Balancers, Encryption Keys, and others will be billed. This means that you should be ready to spend a few dollars (< 5 U$S) to complete this workshop.

If you want to, you can set up a billing alarm to avoid these situations, just in case.

Content

This workshop contains the following sections:

  1. Fork this Github repo to your own account. If you don't have Github account, create one
  2. Set up users.
  3. S3, RDS and EC2. Here, you will deploy the website on S3, the backend will store the data using RDS and the API will be deployed on EC2.
  4. Load Balancer and Auto Scaling Group.
  5. VPC configuration and Bastion instance. Here, you will setup your own VPC with public and private subnets, modify your Auto Scaling Group and Load Balancer to work with those and add a Bastion to access to your API instances through SSH.
  6. Beanstalk. Here we will learn how to use Beanstalk to setup and manage our backend (EC2 + ASG + ELB) without handcrafting every detail of the setup.

Next: assuming you already have an AWS account, you can get started.