Amazon EC2 vs Pusher: 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 Pusher? Hosted APIs to build realtime apps with less code. Pusher is the category leader in delightful APIs for app developers building communication and collaboration features.
Amazon EC2 and Pusher are primarily classified as "Cloud Hosting" and "Realtime Backend / API" tools respectively.
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, Pusher provides the following key features:
- Easily build scalable in-app notifications, chat, realtime graphs, geotracking and more in your web & mobile apps with our hosted pub/sub messaging API.
- Send programmable push notifications to iOS and Android devices with delivery and open rate tracking built in.
- Easily add 1-1 and group Chat to your web & mobile apps. Presence, message storage, rich media, notifications, typing indicators and more.
"Quick and reliable cloud servers" is the primary reason why developers consider Amazon EC2 over the competitors, whereas "An easy way to give customers realtime features" was stated as the key factor in picking Pusher.
Airbnb, Uber Technologies, and Netflix are some of the popular companies that use Amazon EC2, whereas Pusher is used by Product Hunt, Groupon, and Sellsuki. Amazon EC2 has a broader approval, being mentioned in 3605 company stacks & 1613 developers stacks; compared to Pusher, which is listed in 125 company stacks and 42 developer stacks.
What is Amazon EC2?
What is Pusher?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Pusher?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
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.
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.
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:
In the original prototype all the communication was handled by a backend server. Each client connected directly to the server using the socket.io library. This quickly proved to be messy and unreliable, especially on the cheap server being used to host it.
Websockets proved to be a little more reliable, but still just as messy and not all browsers support them. That's when the project was switched over to use Pusher. Using Pusher has allowed all but the initial connection code to be off-loaded onto the client. Now instead of communicating through a self-hosted server, clients can communicate pretty much peer-to-peer over Pusher.
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.
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.
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/
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.
Pusher is used to send update notification whenever Lapzbot joins a server.