At the virtual ElixirConf 2020 @alex_peachey and I led a class on building a small liveview app and deploying it to AWS. Although the video is not posted anywhere (yet), the steps we followed, the code we used, and the Terraform scripts to setup the structure created before the class is all hosted here. and the outline is reprinted below:

Build the Nook Book Application
  • Step 1: Project Setup
  • Step 2: Mnesia Schema Setup
  • Step 3: Table Setup
  • Step 4: Create a Repo for Easier Mnesia Access
  • Step 5: Expand the GenericCache Module
  • Step 6: A Simple API Client
  • Step 7: Create a Simple Cache
  • Step 8: Create a LiveView for the Application
  • Step 9: Create a Controller for Our Images
  • Step 10: Update Our Router
  • Step 11: Build Out the HTML
  • Step 12: Setup Local Multi-Node Mnesia
Deploy Nook Book to AWS
  • Step 13: Setup Release
  • Step 14: Setup Circle
  • Step 15: Setup AWS
  • Step 16: Setup Terraform
  • Step 17: Implement Security Group
  • Step 18: Update Release Files
  • Step 19: Finish Infrastructure Setup
  • Step 20: Use Terraform Output for Hosts
  • Step 21: Setup Libcluster
  • Step 22: Use Terraform Output for SSH Config
  • Step 23: Build and Download Release
  • Step 24: Upload and Run the Release