Need advice about which tool to choose?Ask the StackShare community!
Amazon EC2 vs Heroku vs PythonAnywhere: What are the differences?
Pricing: Amazon EC2 utilizes a pay-as-you-go pricing model, where you are charged based on usage. Heroku, on the other hand, offers a simplified pricing structure with tiered plans. PythonAnywhere has free and paid plans available, making it more accessible for developers on a budget.
Customization: Amazon EC2 provides a high level of customization, allowing users to configure their virtual servers for specific needs. Heroku, on the other hand, abstracts much of the infrastructure management, limiting the level of customization available. PythonAnywhere offers a balance between the two, providing some customization options while maintaining ease of use.
Scalability: Amazon EC2 is known for its scalability, allowing users to easily adjust resources based on demand. Heroku provides automated scaling options but may not offer the same level of control as Amazon EC2. PythonAnywhere is designed for smaller applications and may not provide the same scalability options as the other two platforms.
Supported Technologies: Amazon EC2 supports a wide range of programming languages and technologies, making it versatile for various applications. Heroku is optimized for Ruby on Rails and Node.js but supports other languages as well. PythonAnywhere, as the name suggests, is specialized for Python applications, offering built-in support and tools for Python development.
Deployment Process: Heroku simplifies the deployment process with git push commands, making it easy to update applications. Amazon EC2 requires more manual configuration for deployment, but offers more control over the process. PythonAnywhere streamlines deployment for Python applications, simplifying the process for developers.
Monitoring and Management: Amazon EC2 provides extensive monitoring and management tools for tracking performance and managing instances. Heroku has built-in logging and monitoring features, but may not offer the same level of customization as Amazon EC2. PythonAnywhere offers basic monitoring tools for tracking resource usage and logs.
In Summary, Amazon EC2 offers advanced customization and scalability, Heroku simplifies deployment and pricing, while PythonAnywhere is tailored for Python applications with a balance of customization and ease of use.
I host my stuff with Hetzner in large part because their tools are straighforward and easy to use and they're based in a country whose laws respect privacy.
If you're hosting with a company that's US-based, you have to worry about their laws affecting your site, which isn't an acceptable requirement in my opinion.
DigitalOcean was where I began; its USD5/month is extremely competitive and the overall experience as highly user-friendly.
However, their offerings were lacking and integrating with other resources I had on AWS was getting more costly (due to transfer costs on AWS). Eventually I moved the entire project off DO's Droplets and onto AWS's EC2.
One may initially find the cost (w/o free tier) and interface of AWS daunting however with good planning you can achieve highly cost-efficient systems with savings plans, spot instances, etcetera.
Do not dive into AWS head-first! Seriously, don't. Stand back and read pricing documentation thoroughly. You can, not to the fault of AWS, easily go way overbudget. Your first action upon getting your AWS account should be to set up billing alarms for estimated and current bill totals.
We first selected Google Cloud Platform about five years ago, because HIPAA compliance was significantly cheaper and easier on Google compared to AWS. We have stayed with Google Cloud because it provides an excellent command line tool for managing resources, and every resource has a well-designed, well-documented API. SDKs for most of these APIs are available for many popular languages. I have never worked with a cloud platform that's so amenable to automation. Google is also ahead of its competitors in Kubernetes support.
GCE is much more user friendly than EC2, though Amazon has come a very long way since the early days (pre-2010's). This can be seen in how easy it is to edit the storage attached to an instance in GCE: it's under the instance details and is edited inline. In AWS you have to click the instance > click the storage block device (new screen) > click the edit option (new modal) > resize the volume > confirm (new model) then wait a very long time. Google's is nearly instant.
- In both cases, the instance much be shut down.
There also the preference between "user burden-of-security" and automatic security: AWS goes for the former, GCE the latter.
Most bioinformatics shops nowadays are hosting on AWS or Azure, since they have HIPAA tiers and offer enterprise SLA contracts. Meanwhile Heroku hasn't historically supported HIPAA. Rackspace and Google Cloud would be other hosting providers we would consider, but we just don't get requests for them. So, we mostly focus on AWS and Azure support.
Pros of Amazon EC2
- Quick and reliable cloud servers647
- Scalability515
- Easy management393
- Low cost277
- Auto-scaling271
- Market leader89
- Backed by amazon80
- Reliable79
- Free tier67
- Easy management, scalability58
- Flexible13
- Easy to Start10
- Widely used9
- Web-scale9
- Elastic9
- Node.js API7
- Industry Standard5
- Lots of configuration options4
- GPU instances2
- Simpler to understand and learn1
- Extremely simple to use1
- Amazing for individuals1
- All the Open Source CLI tools you could want.1
Pros of Heroku
- Easy deployment703
- Free for side projects459
- Huge time-saver374
- Simple scaling348
- Low devops skills required261
- Easy setup190
- Add-ons for almost everything174
- Beginner friendly153
- Better for startups150
- Low learning curve133
- Postgres hosting48
- Easy to add collaborators41
- Faster development30
- Awesome documentation24
- Simple rollback19
- Focus on product, not deployment19
- Natural companion for rails development15
- Easy integration15
- Great customer support12
- GitHub integration8
- Painless & well documented6
- No-ops6
- I love that they make it free to launch a side project4
- Free4
- Great UI3
- Just works3
- PostgreSQL forking and following2
- MySQL extension2
- Security1
- Able to host stuff good like Discord Bot1
- Sec0
Pros of PythonAnywhere
- Web apps15
- Easy Setup11
- Great support8
- Shell access8
- Free plan8
- Super-easy to use7
- Libraries5
- Many things like Python are pre-installed2
Sign up to add or upvote prosMake informed product decisions
Cons of Amazon EC2
- Ui could use a lot of work14
- High learning curve when compared to PaaS6
- Extremely poor CPU performance3
Cons of Heroku
- Super expensive27
- Not a whole lot of flexibility9
- No usable MySQL option7
- Storage7
- Low performance on free tier5
- 24/7 support is $1,000 per month2
Cons of PythonAnywhere
- No root access1
- Really small community1