Question

I have been given a task to complete: Deploy my pre-existing Pyramid application onto our EC2 Linux server. I would like to do this with a minimal amount of stress and error, especially considering am I totally new to AWS.

What I have done so far:

  • Setup the EC2 instance which I can SSH into.
  • Locally develop my Pyramid application
  • And, we version control the application with GitHub.

We are using: Pyramid (latest), along with Python 2.7.5 and Postgresql (via SQLAlchemy and Alembic.)

What is a basic, high-level list of steps to ensure that my application is deployed appropriately?

Where, if at all, does something like Elastic Beanstalk come into play?

And, considering my project is currently in a Git repo, what steps or considerations must be taken to accommodate this?

I'm not looking for opinions on how to tweak my setup or anything like that. I am looking for a non-debatable, comprehensible set of steps or considerations to deploy my application in the most basic form. This server is for development purposes only, so I am not looking for a full-blown solution.

I have researched this topic for Django projects, and frankly, I am a bit overwhelmed with the amount of different possible options. I am trying to boil this situation down to its minimal components.

I appreciate the time and help.

Was it helpful?

Solution

Deploying to an EC2 server is just like deploying to any other Linux server.

If you want to put it behind a load balancer, you can do which is fully documented.

You can also deploy to Elastic Beanstalk. Where as EC2 is a normal Linux sever, Beanstalk is more like deploying to an environment, you just push all your git changes into an S3 repo, your app then gets built and deployed onto beanstalk.

Meaning no server setups, no configuration (other than the very basics) and all new changes you push to S3, get built and update each version of your app that may have been launched on beanstalk.

You don't want to host your database server on EC2, use Amazons RDS database server, dead simple and takes about two minutes to setup and configure.

As far as file storage goes, move everything to S3.

EC2 and beanstalk should not be used for any form of storage.

OTHER TIPS

I would suggest to run two instances and use Elastic Load Balancer.

Never run anything important on a single EC2 instance, EC2 instances are not durable, they can suddenly vanish, taking whatever data you had stored on it.

Everything else should work as in Pyramid Cookbook description.

Although there is no specific recipe for deploying a Pyramid application to AWS in the Pyramid Cookbook, there are other recipes that may offer a partial solution.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top