Nicholas Hunt-Walker, Starbucks Corporation
For many developers, the experience of deploying an application consists of finding a server to host the app, copying it over, and serving using some system like Nginx or Apache.
And that's ok!
It'll work for small applications that aren't meant to handle large loads.
However, if your product is growing or you're adding a new service to an existing, mature application, chances are you're going to need to learn how to scale your web application.
You can do it manually, of course, but Amazon Web Services provides great tools for managing and scaling your applications automatically.
In this tutorial we'll walk through how to set up those services in the AWS environment, enabling your web application to maintain reliability whether big or small.
Nicholas Hunt-Walker, Starbucks Corporation
![](https://www.usenix.org/sites/default/files/styles/speaker_photo/public/nicholas_hunt_walker_200x230.png?itok=49BV8F-e)
After 5.5 years working toward a Ph.D. in astrophysics, I left the field to move into teaching software development at a Seattle-area coding school. Since that move, I've been able to have a hand in training over 100 new software developers. I now work as an application developer at Starbucks on the Emerging Technologies team, helping foster innovation and produce proofs of concept for Starbucks Technology. I'm fiercely interested in good mentorship both as a mentee and a mentor of others, and am always looking for ways to grow personally and professionally.
![](https://www.usenix.org/sites/all/modules/usenix/usenix_files/images/usenix-locked.png)
author = {Nicholas Hunt-Walker},
title = {Deploying a {Load-Balanced} Python Web Application with Amazon Web Services},
year = {2018},
address = {Nashville, TN},
publisher = {USENIX Association},
month = oct
}
The target audience is web app developers looking to move from a single-server solution to a load-balanced, scalable solution for the applications that they support.
Attendees should take back to work a consistent, accessible work flow for deploying applications into a load-balanced cloud service.
Topics covered in this tutorial include:
- Creating an AWS IAM user account for deploying and maintaining apps on AWS
- Creating an AWS RDS instance to host a Postgres database
- Configuring an AWS S3 bucket for static files
- Deploying a Python application to AWS Elastic Beanstalk
- Configuring Elastic Beanstalk's load balancer
- Delivering static S3 resources with AWS CloudFront
- Familiarity with Git and Github
- Passing familiarity with Python
- Experience deploying a web application in some way, shape, or form