Python makes it easy to develop great web applications. Amazon Web Services (AWS) makes it easy to deploy scalable, fault tolerant applications. In this tutorial we will focus on taking a provided Django web application and deploying it to AWS through a series of hands on exercises using Amazon's load balancing, auto scaling, content delivery and relational database services.
In this tutorial we will start with a demo Django application that we will use for the rest of the exercises. No previous experience with Django will be required.
Exercise 1: deploy the demo Django application to a single EC2 node using MySQL backed by an EBS (Elastic Bloc Storage) volume.
Exercise 2: move the database to RDS (Relational Database Service) and scale out reads using RDS read replicas.
Exercise 3: add a second node for the web application and place them into ELB (Elastic Load Balancer).
Exercise 4: move the static content into S3 and CloudFront.
Exercise 5: create an Auto Scaling group to automatically adjust the fleet of web servers based on load.
After these exercises the student will be left with a set of automated recipes for provisioning and deploying standard Django applications to AWS in a scalable, fault tolerant manner.
Students will be need to bring their own laptop and have a current AWS account including signing up for the following services: EC2, S3, CloudFront and RDS. Usage of AWS will be billed to the student by Amazon, but it should only be a few dollars for the 3 hour exercise. Students using Windows will need to have Putty installed for SSH access.
For more talks about python from PyCon 2011