FabulAWS¶
FabulAWS is a tool for deploying Python web applications to autoscaling-enabled AWS EC2 environments.
Simple example¶
FabulAWS lets you create EC2 instances using a context manager in Python and easily execute work on that instance. Typical workflow might look like this:
from fabulaws.ec2 import MicroLucidInstance
with MicroLucidInstance():
run('uname -a')
If needed, you can extend the instance classes defined in the fabulaws.ec2
module as needed to further customize the instance before presenting it as
a context manager (or using it in your fab file). To do so, simply extend
the setup()
and cleanup()
methods in one of the existing classes.
Contents¶
- Server Architecture
- New Project Setup
- Deployment
- Maintenance Tasks
- Describing an environment
- Adding new sysadmin users
- Updating New Relic keys
- Copying the database from production to staging or testing
- Fixing an issue with broken site icons
- Stopping EC2 machines while not in use
- Resizing servers or recreating an environment
- Updating Dependencies
- Upgrading system packages
- Troubleshooting server issues
- Managing SSH host keys
- Resetting a troubled environment
- Fixing Celery when it won’t stop
- Master database goes down
- Slave database goes down
- Adding a new slave
- Slave database loses replication connection
- Web server dies
- Worker server dies
- Adding a new worker server
- Cache service goes down
- Cache server (RabbitMQ and Redis) fails
- Web servers churning during a deploy
- Using FabulAWS in your fab file
- Useful commands