Amazon EC2 vs OpenShift: What are the differences?
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; OpenShift: Red Hat's free Platform as a Service (PaaS) for hosting Java, PHP, Ruby, Python, Node.js, and Perl apps. OpenShift is Red Hat's Cloud Computing Platform as a Service (PaaS) offering. OpenShift is an application platform in the cloud where application developers and teams can build, test, deploy, and run their applications.
Amazon EC2 belongs to "Cloud Hosting" category of the tech stack, while OpenShift can be primarily classified 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, OpenShift provides the following key features:
- Built-in support for Node.js, Ruby, Python, PHP, Perl, and Java (the standard in today's Enterprise)
- OpenShift is extensible with a customizable cartridge functionality that allows developers to add any other language they wish. We've seen everything from Clojure to Cobol running on OpenShift.
- OpenShift supports frameworks ranging from Spring, to Rails, to Play
"Quick and reliable cloud servers" is the top reason why over 644 developers like Amazon EC2, while over 95 developers mention "Good free plan" as the leading cause for choosing OpenShift.
OpenShift is an open source tool with 916 GitHub stars and 562 GitHub forks. Here's a link to OpenShift's open source repository on GitHub.
According to the StackShare community, Amazon EC2 has a broader approval, being mentioned in 3580 company stacks & 1569 developers stacks; compared to OpenShift, which is listed in 48 company stacks and 52 developer stacks.
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.
Sign up to add or upvote prosMake informed product decisions
Sign up to add or upvote consMake informed product decisions
What is Amazon EC2?
What is Red Hat OpenShift?
Need advice about which tool to choose?Ask the StackShare community!
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
Red Hat, Inc.
Red Hat, Inc.
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.
I needed a PaaS provider that didn't drop all the time and it's hard to find a good option for PHP applications. Openshift takes care of it. They are a little behind on PHP versions, but that can be solved with a custom cartridge. It requires a little more elbow grease to get rolling when you want to implement something they don't already have, but their quickstarts are great to get rolling with the basics quickly.
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:
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.
SG-TravelBuddy server application is hosted on Red Hat OpenShift Online (v3). SG-TravelBuddy mobile (Android) app is connecting to this server for data operations.