Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Amazon EC2
Amazon EC2

15.5K
9.1K
+ 1
2.5K
Heroku
Heroku

7.9K
5.6K
+ 1
3.1K
Add tool

Amazon EC2 vs Heroku: What are the differences?

What is Amazon EC2? Scalable, pay-as-you-go compute capacity in the cloud. Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.

What is Heroku? Build, deliver, monitor and scale web apps and APIs with a trail blazing developer experience. Heroku is a cloud application platform – a new way of building and deploying web apps. Heroku lets app developers spend 100% of their time on their application code, not managing servers, deployment, ongoing operations, or scaling.

Amazon EC2 can be classified as a tool in the "Cloud Hosting" category, while Heroku is grouped under "Platform as a Service".

Some of the features offered by Amazon EC2 are:

  • Elastic – Amazon EC2 enables you to increase or decrease capacity within minutes, not hours or days. You can commission one, hundreds or even thousands of server instances simultaneously.
  • Completely Controlled – You have complete control of your instances. You have root access to each one, and you can interact with them as you would any machine.
  • Flexible – You have the choice of multiple instance types, operating systems, and software packages. Amazon EC2 allows you to select a configuration of memory, CPU, instance storage, and the boot partition size that is optimal for your choice of operating system and application.

On the other hand, Heroku provides the following key features:

  • Agile deployment for Ruby, Node.js, Clojure, Java, Python, Go and Scala.
  • Run and scale any type of app.
  • Total visibility across your entire app.

"Quick and reliable cloud servers", "Scalability" and "Easy management" are the key factors why developers consider Amazon EC2; whereas "Easy deployment", "Free for side projects" and "Huge time-saver" are the primary reasons why Heroku is favored.

According to the StackShare community, Amazon EC2 has a broader approval, being mentioned in 3605 company stacks & 1613 developers stacks; compared to Heroku, which is listed in 1504 company stacks and 961 developer stacks.

- No public GitHub repository available -
- No public GitHub repository available -

What is Amazon EC2?

It is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.

What is Heroku?

Heroku is a cloud application platform – a new way of building and deploying web apps. Heroku lets app developers spend 100% of their time on their application code, not managing servers, deployment, ongoing operations, or scaling.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose Amazon EC2?
Why do developers choose Heroku?

Sign up to add, upvote and see more prosMake informed product decisions

What companies use Amazon EC2?
What companies use Heroku?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Amazon EC2?
What tools integrate with Heroku?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to Amazon EC2 and Heroku?
Amazon LightSail
Everything you need to jumpstart your project on AWS—compute, storage, and networking—for a low, predictable price. Launch a virtual private server with just a few clicks.
Amazon S3
Amazon Simple Storage Service provides a fully redundant data storage infrastructure for storing and retrieving any amount of data, at any time, from anywhere on the web
Amazon EC2 Container Service
Amazon EC2 Container Service lets you launch and stop container-enabled applications with simple API calls, allows you to query the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features like security groups, EBS volumes and IAM roles.
Beanstalk
A single process to commit code, review with the team, and deploy the final result to your customers.
Microsoft Azure
Azure is an open and flexible cloud platform that enables you to quickly build, deploy and manage applications across a global network of Microsoft-managed datacenters. You can build applications using any language, tool or framework. And you can integrate your public cloud applications with your existing IT environment.
See all alternatives
Decisions about Amazon EC2 and Heroku
Tim Specht
Tim Specht
‎Co-Founder and CTO at Dubsmash · | 15 upvotes · 55.2K views
atDubsmashDubsmash
Kubernetes
Kubernetes
Amazon EC2
Amazon EC2
Heroku
Heroku
Python
Python
#ContainerTools
#PlatformAsAService

Since we deployed our very first lines of Python code more than 2 years ago we are happy users of Heroku. It lets us focus on building features rather than maintaining infrastructure, has super-easy scaling capabilities, and the support team is always happy to help (in the rare case you need them).

We played with the thought of moving our computational needs over to barebone Amazon EC2 instances or a container-management solution like Kubernetes a couple of times, but the added costs of maintaining this architecture and the ease-of-use of Heroku have kept us from moving forward so far.

Running independent services for different needs of our features gives us the flexibility to choose whatever data storage is best for the given task.

#PlatformAsAService #ContainerTools

See more
Jerome Dalbert
Jerome Dalbert
Senior Backend Engineer at StackShare · | 7 upvotes · 17.7K views
atGratify CommerceGratify Commerce
AWS Elastic Beanstalk
AWS Elastic Beanstalk
Heroku
Heroku
Rails
Rails
#PaaS

When creating the web infrastructure for our start-up, I wanted to host our app on a PaaS to get started quickly.

A very popular one for Rails is Heroku, which I love for free hobby side projects, but never used professionally. On the other hand, I was very familiar with the AWS ecosystem, and since I was going to use some of its services anyways, I thought: why not go all in on it?

It turns out that Amazon offers a PaaS called AWS Elastic Beanstalk, which is basically like an “AWS Heroku”. It even comes with a similar command-line utility, called "eb”. While edge-case Rails problems are not as well documented as with Heroku, it was very satisfying to manage all our cloud services under the same AWS account. There are auto-scaling options for web and worker instances, which is a nice touch. Overall, it was reliable, and I would recommend it to anyone planning on heavily using AWS.

See more
Kestas Barzdaitis
Kestas Barzdaitis
Entrepreneur & Engineer · | 12 upvotes · 61.4K views
atCodeFactorCodeFactor
Google Cloud Functions
Google Cloud Functions
Azure Functions
Azure Functions
AWS Lambda
AWS Lambda
Docker
Docker
Google Compute Engine
Google Compute Engine
Microsoft Azure
Microsoft Azure
Amazon EC2
Amazon EC2
CodeFactor.io
CodeFactor.io
Kubernetes
Kubernetes
#SAAS
#IAAS
#Containerization
#Autoscale
#Startup
#Automation
#Machinelearning
#AI
#Devops

CodeFactor being a #SAAS product, our goal was to run on a cloud-native infrastructure since day one. We wanted to stay product focused, rather than having to work on the infrastructure that supports the application. We needed a cloud-hosting provider that would be reliable, economical and most efficient for our product.

CodeFactor.io aims to provide an automated and frictionless code review service for software developers. That requires agility, instant provisioning, autoscaling, security, availability and compliance management features. We looked at the top three #IAAS providers that take up the majority of market share: Amazon's Amazon EC2 , Microsoft's Microsoft Azure, and Google Compute Engine.

AWS has been available since 2006 and has developed the most extensive services ant tools variety at a massive scale. Azure and GCP are about half the AWS age, but also satisfied our technical requirements.

It is worth noting that even though all three providers support Docker containerization services, GCP has the most robust offering due to their investments in Kubernetes. Also, if you are a Microsoft shop, and develop in .NET - Visual Studio Azure shines at integration there and all your existing .NET code works seamlessly on Azure. All three providers have serverless computing offerings (AWS Lambda, Azure Functions, and Google Cloud Functions). Additionally, all three providers have machine learning tools, but GCP appears to be the most developer-friendly, intuitive and complete when it comes to #Machinelearning and #AI.

The prices between providers are competitive across the board. For our requirements, AWS would have been the most expensive, GCP the least expensive and Azure was in the middle. Plus, if you #Autoscale frequently with large deltas, note that Azure and GCP have per minute billing, where AWS bills you per hour. We also applied for the #Startup programs with all three providers, and this is where Azure shined. While AWS and GCP for startups would have covered us for about one year of infrastructure costs, Azure Sponsorship would cover about two years of CodeFactor's hosting costs. Moreover, Azure Team was terrific - I felt that they wanted to work with us where for AWS and GCP we were just another startup.

In summary, we were leaning towards GCP. GCP's advantages in containerization, automation toolset, #Devops mindset, and pricing were the driving factors there. Nevertheless, we could not say no to Azure's financial incentives and a strong sense of partnership and support throughout the process.

Bottom line is, IAAS offerings with AWS, Azure, and GCP are evolving fast. At CodeFactor, we aim to be platform agnostic where it is practical and retain the flexibility to cherry-pick the best products across providers.

See more
Russel Werner
Russel Werner
Lead Engineer at StackShare · | 17 upvotes · 199.6K views
atStackShareStackShare
Redis
Redis
CircleCI
CircleCI
Webpack
Webpack
Amazon CloudFront
Amazon CloudFront
Amazon S3
Amazon S3
GitHub
GitHub
Heroku
Heroku
Rails
Rails
Node.js
Node.js
Apollo
Apollo
Glamorous
Glamorous
React
React
#FrontEndRepoSplit
#Microservices
#SSR
#StackDecisionsLaunch

StackShare Feed is built entirely with React, Glamorous, and Apollo. One of our objectives with the public launch of the Feed was to enable a Server-side rendered (SSR) experience for our organic search traffic. When you visit the StackShare Feed, and you aren't logged in, you are delivered the Trending feed experience. We use an in-house Node.js rendering microservice to generate this HTML. This microservice needs to run and serve requests independent of our Rails web app. Up until recently, we had a mono-repo with our Rails and React code living happily together and all served from the same web process. In order to deploy our SSR app into a Heroku environment, we needed to split out our front-end application into a separate repo in GitHub. The driving factor in this decision was mostly due to limitations imposed by Heroku specifically with how processes can't communicate with each other. A new SSR app was created in Heroku and linked directly to the frontend repo so it stays in-sync with changes.

Related to this, we need a way to "deploy" our frontend changes to various server environments without building & releasing the entire Ruby application. We built a hybrid Amazon S3 Amazon CloudFront solution to host our Webpack bundles. A new CircleCI script builds the bundles and uploads them to S3. The final step in our rollout is to update some keys in Redis so our Rails app knows which bundles to serve. The result of these efforts were significant. Our frontend team now moves independently of our backend team, our build & release process takes only a few minutes, we are now using an edge CDN to serve JS assets, and we have pre-rendered React pages!

#StackDecisionsLaunch #SSR #Microservices #FrontEndRepoSplit

See more
Omar Mehilba
Omar Mehilba
Co-Founder and COO at Magalix · | 13 upvotes · 49.4K views
atMagalixMagalix
Python
Python
Go
Go
Amazon EC2
Amazon EC2
Google Kubernetes Engine
Google Kubernetes Engine
Microsoft Azure
Microsoft Azure
Kubernetes
Kubernetes
#Autopilot

We are hardcore Kubernetes users and contributors. We loved the automation it provides. However, as our team grew and added more clusters and microservices, capacity and resources management becomes a massive pain to us. We started suffering from a lot of outages and unexpected behavior as we promote our code from dev to production environments. Luckily we were working on our AI-powered tools to understand different dependencies, predict usage, and calculate the right resources and configurations that should be applied to our infrastructure and microservices. We dogfooded our agent (http://github.com/magalixcorp/magalix-agent) and were able to stabilize as the #autopilot continuously recovered any miscalculations we made or because of unexpected changes in workloads. We are open sourcing our agent in a few days. Check it out and let us know what you think! We run workloads on Microsoft Azure Google Kubernetes Engine and Amazon EC2 and we're all about Go and Python!

See more
Amazon ElastiCache
Amazon ElastiCache
Amazon Elasticsearch Service
Amazon Elasticsearch Service
AWS Elastic Load Balancing (ELB)
AWS Elastic Load Balancing (ELB)
Memcached
Memcached
Redis
Redis
Python
Python
AWS Lambda
AWS Lambda
Amazon RDS
Amazon RDS
Microsoft SQL Server
Microsoft SQL Server
MariaDB
MariaDB
Amazon RDS for PostgreSQL
Amazon RDS for PostgreSQL
Rails
Rails
Ruby
Ruby
Heroku
Heroku
AWS Elastic Beanstalk
AWS Elastic Beanstalk

We initially started out with Heroku as our PaaS provider due to a desire to use it by our original developer for our Ruby on Rails application/website at the time. We were finding response times slow, it was painfully slow, sometimes taking 10 seconds to start loading the main page. Moving up to the next "compute" level was going to be very expensive.

We moved our site over to AWS Elastic Beanstalk , not only did response times on the site practically become instant, our cloud bill for the application was cut in half.

In database world we are currently using Amazon RDS for PostgreSQL also, we have both MariaDB and Microsoft SQL Server both hosted on Amazon RDS. The plan is to migrate to AWS Aurora Serverless for all 3 of those database systems.

Additional services we use for our public applications: AWS Lambda, Python, Redis, Memcached, AWS Elastic Load Balancing (ELB), Amazon Elasticsearch Service, Amazon ElastiCache

See more
Francisco Quintero
Francisco Quintero
Tech Lead at Dev As Pros · | 7 upvotes · 49.4K views
atDev As ProsDev As Pros
Twist
Twist
Slack
Slack
ESLint
ESLint
JavaScript
JavaScript
RuboCop
RuboCop
Heroku
Heroku
Amazon EC2
Amazon EC2
Rails
Rails
Node.js
Node.js

For many(if not all) small and medium size business time and cost matter a lot.

That's why languages, frameworks, tools, and services that are easy to use and provide 0 to productive in less time, it's best.

Maybe Node.js frameworks might provide better features compared to Rails but in terms of MVPs, for us Rails is the leading alternative.

Amazon EC2 might be cheaper and more customizable than Heroku but in the initial terms of a project, you need to complete configurationos and deploy early.

Advanced configurations can be done down the road, when the project is running and making money, not before.

But moving fast isn't the only thing we care about. We also take the job to leave a good codebase from the beginning and because of that we try to follow, as much as we can, style guides in Ruby with RuboCop and in JavaScript with ESLint and StandardJS.

Finally, comunication and keeping a good history of conversations, decisions, and discussions is important so we use a mix of Slack and Twist

See more
Docker
Docker
OpenShift
OpenShift
Heroku
Heroku

Heroku vs OpenShift. I've never decided which one is better. Heroku is easier to configure. Openshift provide a better machine for free. Heroku has many addons for free. I've chosen Heroku because of easy initial set-up. I had deployment based on git push. I also tried direct deployment of jar file. Currently Heroku runs my Docker image. Heroku has very good documentation like for beginners. So if you want to start with something, let's follow Heroku. On the other hand OpenShift seems like a PRO tool supported by @RedHat.

See more
GitHub
GitHub
nginx
nginx
ESLint
ESLint
AVA
AVA
Semantic UI React
Semantic UI React
Redux
Redux
React
React
PostgreSQL
PostgreSQL
ExpressJS
ExpressJS
Node.js
Node.js
FeathersJS
FeathersJS
Heroku
Heroku
Amazon EC2
Amazon EC2
Kubernetes
Kubernetes
Jenkins
Jenkins
Docker Compose
Docker Compose
Docker
Docker
#Frontend
#Stack
#Backend
#Containers
#Containerized

Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.

We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.

See more
Tim Nolet
Tim Nolet
Founder, Engineer & Dishwasher at Checkly · | 6 upvotes · 9.3K views
atChecklyHQChecklyHQ
Amazon Route 53
Amazon Route 53
JavaScript
JavaScript
Vue.js
Vue.js
Node.js
Node.js
Heroku
Heroku
Amazon EC2
Amazon EC2
Let's Encrypt
Let's Encrypt
#SAAS

Let's Encrypt Amazon EC2 Heroku Node.js Vue.js JavaScript

We recently went through building and setting up free SSL for custom domains for our #SaaS customers. This feature is used for hosting public status pages and dashboards under the customers' own domain name.

We are in the #Node.js, #AWS and #Heroku world, but most of the things we learned are applicable to other stacks too.

The post linked goes into three things:

  1. Configuring the Let's Encrypt / ACME client called Greenlock.
  2. Getting DNS right on Amazon Route 53
  3. Actually determining what content to serve based on hostname.

All seem pretty straightforward, but there are gotcha's at each step.

Hope this helps other budding SaaS operators or ops peeps that need this functionality.

See more
AWS Elastic Beanstalk
AWS Elastic Beanstalk
Heroku
Heroku
uWSGI
uWSGI
Gunicorn
Gunicorn

I use Gunicorn because does one thing - it’s a WSGI HTTP server - and it does it well. Deploy it quickly and easily, and let the rest of your stack do what the rest of your stack does well, wherever that may be.

uWSGI “aims at developing a full stack for building hosting services” - if that’s a thing you need then ok, but I like the principle of doing one thing well, and I deploy to platforms like Heroku and AWS Elastic Beanstalk where the rest of the “hosting service” is provided and managed for me.

See more
Munkhtegsh Munkhbat
Munkhtegsh Munkhbat
Software Engineer Consultant at LoanSnap · | 9 upvotes · 18.7K views
GraphQL
GraphQL
Apollo
Apollo
React
React
Heroku
Heroku
styled-components
styled-components
PostgreSQL
PostgreSQL
Prisma
Prisma
graphql-yoga
graphql-yoga
#Frontend
#Backend

In my last side project, I built a web posting application that has similar features as Facebook and hosted on Heroku. The user can register an account, create posts, upload images and share with others. I took an advantage of graphql-subscriptions to handle realtime notifications in the comments section. Currently, I'm at the last stage of styling and building layouts.

For the #Backend I used graphql-yoga, Prisma, GraphQL with PostgreSQL database. For the #FrontEnd: React, styled-components with Apollo. The app is hosted on Heroku.

See more
Interest over time
Reviews of Amazon EC2 and Heroku
Review ofAmazon EC2Amazon EC2

A VPS gives the full access that I need, because most of what I do has complex integrations and there is plenty of legacy - very stable, highly tuned code developed over two decades - that I carry with me. My use is also limited to during development, so there is no point going for a full server.

Amazon EC2 is a VPS, except it is cheaper.

Additionally, I used to previously take the code developed on my VPS and deploy it to whatever server the client brought.

With Amazon EC2 the deployment is already done. All that remains it to scale up, add other products like dns, mail, storage and so on, and change the billing so that the client gets invoiced. That makes the process that much more predictable and seamless, and the end result much more stable.

Review ofHerokuHeroku

I use Heroku, for almost any project of mine. Their free plan is awesome for testing, solo developers or your startup and its almost impossible to not cover you somehow. Adding an add on is a simple command away and I find it easy to use it both on my Windows PC or my Linux laptop. Their documentation, covers almost everything. In particular I have used Heroku for Spring, Django and AngularJS. I even find it easier to run my project on my local dev with foreman start, than ./manage.py runserver (for my django projects). There is no place like Heroku for the developer!

Review ofHerokuHeroku

Can't beat the simplicity of deploying and managing apps, the pricing is a bit high, but you are paying for those streamlined tools. However, after several experiences of tracing issues back to Heroku's stack, not having visibility into what they are doing has prompted moving two applications off of it and on to other more transparent cloud solutions. Heroku is amazing for what it is, hosting for early stage products.

Review ofAmazon EC2Amazon EC2

Just started using EC2 myself, but it was the platform used by my previous employer, as well. They are getting easier to use, dashboard improvements over time were well done. Responded fast to outages. They offer a limited free tier which is perfect for my current project, allowing me time to build it to the point where I will need a paid solution. Overall, I'm liking it so far.

Review ofHerokuHeroku

I've been using Heroku for 3 years now, they have grown super fast and each time they're improving their services. What I really like the most is how easily you can show to your client the advances on you project, it would take you maximum 15 minutes to configure two environments (Staging/Production). It is simply essential and fantastic!

Review ofHerokuHeroku

I liked how easy this was to use and that I could create some proof of concepts without have to pay. The downside for NodeJS is remote debugging. Pretty much have to depend on logging where Azure allows remote debugging with Node Inspector.

Review ofHerokuHeroku

Using Heroku takes away all the pains associated with managing compute and backing services. It may require a little extra optimisation and tweaks, but these constraints often make your app better anyway.

How developers use Amazon EC2 and Heroku
Avatar of StackShare
StackShare uses HerokuHeroku

Not having to deal with servers is a huge win for us. There are certainly trade-offs (having to wait if the platform is down as opposed to being able to fix the issue), but we’re happy being on Heroku right now. Being able to focus 100% of our technical efforts on application code is immensely helpful.

Two dynos seems to be the sweet spot for our application. We can handle traffic spikes and get pretty consistent performance otherwise.

We have a total of four apps on Heroku: Legacy Leanstack, StackShare Prod, StackShare Staging, StackShare Dev. Protip: if you’re setting up multiple environments based on your prod environment, just run heroku fork app name. Super useful, it copies over your db, add-ons, and settings.

We have a develop branch on GitHub that we push to dev to test out, then if everything is cool we push it to staging and eventually prod. Hotfixes of course go straight to staging and then prod usually.

Avatar of imgur
imgur uses Amazon EC2Amazon EC2

About a year and a half ago (written June 2013) we moved from dedicated servers over to AWS. Thanks to AWS, we no longer have to think on a server level. Instead, we think of everything as a cluster of instances, and an instance is essentially a virtual server where we don’t have to worry about the hardware. It’s a relief to not have to worry about the hardware behind the instances.

The clusters we have are: WWW, API, Upload, HAProxy, HBase, MySQL, Memcached, Redis, and ElasticSearch, for an average total of 80 instances. Each cluster handles the job that its name describes, all working together for the common goal of giving you your daily (hourly?) dose of image entertainment.

Below is a diagram of how they all work together:

http://i.imgur.com/GiBQsmf.png

Avatar of StackShare
StackShare uses HerokuHeroku

We keep the Metrics tab open while we load test, and hit refresh to see what’s going on: heroku metric

I would expect the graphs to expand with some sort of detail, but that’s not the case. So these metrics aren’t very useful. The logs are far more useful, so we just keep the tail open while we test.

Avatar of Instacart
Instacart uses Amazon EC2Amazon EC2

We liked a lot of things about Heroku. We loved the build packs, and we still in fact use Heroku build packs, but we were frustrated by lack of control about a lot of things. It’s nice to own the complete stack, or rather as far down as AWS goes. It gave us a lot of flexibility and functionality that we didn’t have before. We use a lot of Amazon technology.

Avatar of Tim Lucas
Tim Lucas uses HerokuHeroku

Heroku runs the web and background worker processes. Auto-deployments are triggered via GitHub commits and wait for the Buildkite test build to pass. Heroku pipelines with beta release phase execution (for automatically running database migrations) allowed for easy manual testing of big new releases. Web and worker logs are sent to Papertrail.

Avatar of Jeff Flynn
Jeff Flynn uses HerokuHeroku

As much as I love AWS EC, I prefer Heroku for apps like this. Heroku has grown up around Rails and Ruby, massive set of add-ons that are usually one-click setup, and I once had to perform an emergency app scale-up a that I completed in seconds from my mobile phone whilst riding the Bangkok subway. Doesn't get much easier than that.

Avatar of danlangford
danlangford uses HerokuHeroku

With its complimentary SSL (on *.herokuapp.com) we can test everything. Our dev branch is built and deployed out to Heroku. Testing happens out here. not production cause $20/mo is TOO much to pay for the ability to use my own SSL purchased elsewhere.

Avatar of Volkan Özçelik
Volkan Özçelik uses Amazon EC2Amazon EC2

I like containers and all, but for zerotoherojs.com I am a one-man band, who also works full time. I don’t have any (dev)ops budget, and therefore I need the reliability and uptime of an actual virtual machine.

That’s where AWS EC2 comes in handy.

Avatar of jasonmjohnson
jasonmjohnson uses Amazon EC2Amazon EC2

Docker containers will be hosted and run on a single Amazon EC2 instance. This will likely be the t2.small or t2.medium instance type as listed here: https://aws.amazon.com/ec2/instance-types/

Avatar of Jeff Flynn
Jeff Flynn uses Amazon EC2Amazon EC2

Because servers. Lots of them. Lots of configurations. Great for mission-specific functions. Video encoding, data aggregation, dedicated processing, mission-critical data stores. Anything you can't hang off your Heroku environment.

How much does Amazon EC2 cost?
How much does Heroku cost?