Public vs Private, Amazon Web Services EC2 compared to OpenStack®
How to choose a cloud platform and when to use both
The public vs private cloud debate is a path well trodden. While technologies and offerings abound, there is still confusion among organizations as to which platform is suited for their agile needs. One of the key benefits to a cloud platform is the ability to spin up compute, networking and storage quickly when users request these resources and similarly decommission when no longer required. Among public cloud providers, Amazon has a market share ahead of Google, Microsoft and others. Among private cloud providers, OpenStack® presents a viable alternative to Microsoft or VMware.
This article compares Amazon Web Services EC2 and OpenStack® as follows:
- What technical features do the two platforms provide?
- How do the business characteristics of the two platforms compare?
- How do the costs compare?
- How to decide which platform to use and how to use both
OpenStack® and Amazon Web Services (AWS) EC2 defined
From OpenStack.org "OpenStack software controls large pools of compute, storage, and networking resources throughout a datacenter, managed through a dashboard or via the OpenStack API. OpenStack works with popular enterprise and open source technologies making it ideal for heterogeneous infrastructure."
From AWS "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 cloud computing easier for developers.."
Technical comparison of OpenStack® and AWS EC2
The tables below name and briefly describe the feature in OpenStack® and AWS.
Compute
Why you need it?
To run an application you need a server with CPU, memory and storage, with or without pre-installed operating systems and applications.
OpenStack |
AWS |
|
Definition Compute is virtual machines/servers |
Instance |
Instance/VM |
Sizes How much memory and CPU and temporary (ephemeral) storage is assigned to the instances/VM. |
Flavors: Variety of sizes: micro, small, medium, large etc. |
Variety of sizes: micro, small, medium, large etc. |
Operating systems offered What operating systems does the cloud offer to end-users |
Whatever operating systems the cloud administrators host on the OpenStack cloud. (Red Hat certifies Microsoft Windows, RHEL and SUSE) |
AMIs provided by the AWS marketplace. |
Templates/images A base configuration of a virtual machine, from which other virtual machines can be created. Catalogs of virtual machine images can be created from which users can select a virtual machine. |
Glance OpenStack administrators upload images and create catalogs for users. Users can upload their own images. |
(AMI) Amazon Machine Image AWS provides an online marketplace of pre-defined images. Users can upload their own images. |
Networking
Why you need it?
To network virtual servers to each other. You also need to control who can access the server. You want to protect/firewall the server especially if it is exposed to the Internet.
OpenStack |
AWS |
|
Definition Networking provides connectivity for users to virtual machines. Connects virtual machines to one another and to external networks (the Internet). |
Neutron |
Networking |
A private IP address internal only and non-routable to the Internet |
Every virtual instance is automatically assigned a private IP address, typically using DHCP. |
AWS allocates a private IP address for the instance using DHCP. |
Public IP address |
A floating IP is a public IP address, that you can dynamically add to a running virtual instance. |
AWS public IP address is mapped to the primary private IP address. |
Networking service |
You can create networks and networking functions, eg. L3 forwarding, NAT, edge firewalls, and IPsec VPN. |
Virtual routers or switches can be added if you use AWS VPC, a virtual public cloud. |
Load Balance VM traffic |
OpenStack LBaaS (Load Balancing as a Service) balances traffic from one network to application services. |
ELB (Elastic Load Balancing) automatically distributes incoming application traffic across Amazon EC2 instances. |
DNS. Manage the DNS entries for your virtual servers and web applications. |
The OpenStack DNS project (Designate) is in “incubation” and is not part of core OpenStack (as of the April 2015 Kilo release). |
Route 53 - AWS's DNS service. |
SRIOV A method of device virtualization that provides higher I/O performance and lower CPU utilization compared to traditional implementations. |
Each SR-IOV port is associated with a virtual function (VF). SR-IOV ports may be provided by Hardware-based Virtual Ethernet Bridging or they may be extended to an upstream physical switch (IEEE 802.1br). |
AWS support enhanced networking capabilities using SR-IOV, provides higher packet per second (PPS) performance, lower inter-instance latencies, and very low network jitter. |
Monitoring
Why you need it?
You get insight into usage patterns and utilization of the physical and virtual resources. You may want to account for individual usage and optionally bill users for their usage.
OpenStack |
AWS |
|
Definition Monitoring provides metering and usage of the cloud. |
Ceilometer |
Cloudwatch |
System-wide metering and usage. Option to bill users for their usage |
To collect measurements of the utilization of the physical and virtual resources comprising deployed clouds. Persist data for subsequent retrieval and analysis, and trigger actions when defined criteria are met. |
Monitoring service for AWS cloud resources and the applications on AWS. Collect and track metrics, collect and monitor log files, and set alarms. |
Security
Why you need it?
You need the option of public key cryptography for SSH and password decryption. You want to firewall virtual machines to only allow certain traffic in (ingress) or out (egress).
OpenStack |
AWS |
|
Definition Control access to your virtual machines. |
Keypairs, security groups. |
Keypairs, security groups. |
Key pairs To login to your VM or instance, you must create a key pair. Linux: used to SSH. Windows: used to decrypt the Administrator password. |
When you launch a virtual machine, you can inject a key pair, which provides SSH access to your instance. |
To log in to your instance, specify the name of the key pair when you launch the instance, and provide the private key when you connect to the instance. |
Assign and control access to VM instances. A security group is a named collection of network access rules that limit the traffic that access an instance. When you launch an instance, you can assign one or more security groups to it. |
Supported |
Supported |
Identity
Why you need it?
You want to govern who can access your cloud. You can manage permissions to cloud resources. You may want to offer multi-factor authentication for stronger security.
OpenStack |
AWS |
|
Definition Authentication and authorization methods for controlling access to virtual servers, storage and other resources in the cloud. Integrates with an external provider, example LDAP or AD. |
Keystone |
IAM Identity and Access Management |
Storage
Why you need it?
Block storage
- Assign virtual drives/volumes to virtual servers to grow their storage capacity, beyond the boot volume.
- Snapshots and backups of virtual servers.
Object storage
- Store objects such as files, media, images
OpenStack |
AWS |
|
Object storage Store files: media, documents, images etc |
Swift |
S3 - Simple Storage Service |
Block storage Create virtual disk drives (volumes). |
Cinder |
EBS - Elastic Block Storage |
Database
Why you need it?
Your cloud users can use a database service without installing and configuring their own database.
OpenStack |
AWS |
|
Definition |
Trove |
RDS |
Relational Database |
MySQL, PostgresSQL |
Users get an instance of MYSQL or Oracle 11g. |
Non Relational Database |
Cassandra, Couchbase, MongoDB |
Amazon SimpleDB Users store data pairs into a simple database suitable for heavy read applications. |
Orchestration
Why you need it?
This allows repeatable copies of an application to be made.
OpenStack |
AWS |
|
Definition Allows developers to store the requirements of a cloud application in a file or template that defines resources (virtual machines, networks, storage, security, templates, images etc) necessary for the application to run. |
Heat |
Cloud Formation |
Big data / parallel processing
Why you need it?
The cloud can provide the infrastructure for you to perform large scale data processing.
OpenStack |
AWS |
|
Definition Allows you to perform large scale parallel processing of data, example Hadoop |
Sahara |
EMR - (Elastic Map Reduce) |
Messaging
OpenStack |
AWS |
|
Definition The cloud can buffer and move data between applications and VMs/instances on a hosted queue. |
(not released yet) |
SQS - (Simple Queue Service) |
Graphical User Interface (GUI) dashboard
Why you need it?
You can administer your cloud or users can self-serve their needs, from any compliant browser.
OpenStack |
AWS |
|
Definition Browser to manage or self serve needs for compute, networking and storage. |
Horizon |
Console |
Command Line Interface (CLI)
Why you need it?
You can automate and script the administration and use/consumption of your cloud from the command line.
OpenStack |
AWS |
|
Definition The command line interface provides administrators with commands to provision and de-provision cloud resources (virtual machines, storage, networking) |
Business level components
Multi-tenancy
Why you need it?
To segregate users by business unit, department or organization to meet legal requirements or to set quota on resources.
OpenStack |
AWS |
|
Definition A tenant is a group of users who share common access to infrastructure (the cloud platform) with other users. Users are segregated. |
Project / tenant. Quota of compute resources can be defined for each project/tenant. |
Segregation is achieved using AWS VPC (Virtual Private Cloud) |
SLA (Service Level Agreement)
Why you need it?
To run mission critical applications with minimal downtime you need an SLA from your cloud provider.
OpenStack |
AWS |
|
Definition An SLA is a guarantee of availability of the cloud. |
An SLA is negotiated between the provider of the OpenStack private cloud (internal IT department / managed service provider) and the business units who consume the private cloud. |
See AWS SLA |
Ownership and control of data
Why you need to know?
Users should know who can access data stored in the cloud. Legal regulations for industries such as healthcare, financial services, government etc stipulate who should have access to applications and data. Some users/countries fear that government security and spying agencies can gain access to public cloud data.
OpenStack |
AWS |
|
Definition When you store applications and data in the cloud who owns the data and who has access to it. |
The users of the OpenStack cloud |
The user owns the data. See AWS agreement (section 8) |
Ecosystem
Why you need to know?
You may need help from consultants and community peers to use a private or public cloud. If you deploy a private OpenStack cloud, the community of software and hardware vendors that are certified with your OpenStack vendor give you the assurance that problems can be resolved. (see my prior post for a supported OpenStack deployment.)
OpenStack |
AWS |
|
Definition An ecosystem includes hardware vendors, software vendors, a community of peers (developers, users, administrators) and consultants to enable a cloud to run. |
OpenStack’s ecosystem: hardware, software and service providers and end users. OpenStack code which runs the cloud is open source for users to contribute. |
Amazon’s ecosystem of consultants and ISVs assist users to use the AWS. The AWS code which runs the cloud is closed source. |
High availability
Why you need to know?
If a cloud offers high availability, then applications hosted on the cloud can fail over and users will experience less interruption of service.
OpenStack |
AWS |
|
Definition Regions and Availability Zones. |
Data and instances can be stored in different geographical regions for redundancy, latency or legal requirements. |
Amazon EC2 is hosted in multiple locations world-wide, composed of regions (a separate geographic area). Each region has multiple, isolated locations known as Availability Zones.
|
Cost
Why you need to know?
The cost of running servers and applications in a cloud can be operational (OPEX) or capital (CAPEX).
OpenStack |
AWS |
|
Definition The cost of using a cloud service. |
Use a managed service offering OR Buy hardware to run an OpenStack cloud. AND Freely download OpenStack software and employ engineers to install, maintain, enhance, upgrade etc. This cost model can be difficult to estimate because of the cost of employees required to run the cloud. How many engineers do you need? How do you know when to hire more? How do you reduce the size of your workforce if the demand for your cloud decreases? OR License a distribution from a vendor. This involves an upfront license cost, annual support costs and a subsequent license renewal. OR Purchase a predictable subscription from Red Hat and receive support, maintenance, consulting, upgrades.... |
Billing by the minute/hour - potentially unpredictable costs as usage is billed as used. Pre-purchase blocks of usage at other rates:reserved instance or spot pricing. |
So which do you use?
Since both cloud platforms provide some similar services, you should consider your needs. For instant and temporary needs, AWS and its on-demand pricing model could suffice. For longer term projects AWS lists examples, as does OpenStack.
I believe it boils down to use cases. AWS lists use cases and Gartner recommends using OpenStack for:
- "DevOps-style software development. Developers can access the OpenStack API and work with infrastructure as code."
- "For development/testing support. ...scenario of a more traditional IaaS with a self-service portal for the developers and testing groups.
- "High-performance computing/grid computing is a potential use case for OpenStack because many of these environments are implemented with open-source components, and OpenStack is well-suited to support the flexible infrastructure provisioning required in these environments."
- "Scale-out commodity infrastructure to support big data technologies such as Hadoop, Apache Spark and Apache Cassandra."
- "line-of-business application hosting.....Focusing on the emerging cloud-native applications, rather than trying to chase legacy compatibility, is the scenario used by most IaaS private cloud implementers."
How to use AWS and OpenStack?
A hybrid cloud is a combination of an on-premise private cloud and a public cloud. A cloud management platform provides tools to administer both cloud environments. Red Hat offers an Open Hybrid Cloud, "A single-subscription offering that lets you build and manage an open, private Infrastructure-as-a-Service (IaaS) cloud and ease your way into a highly scalable, public-cloud-like infrastructure based on OpenStack®."
About the author
Jonathan Gershater has worked in high tech since 1996. At Red Hat, Jonathan leads market analysis for Red Hat’s cloud, container and Kubernetes solutions. Prior to Red Hat, Jonathan worked at Trend Micro, Sun Microsystems, Entrust Technologies and 3Com.
At Red Hat, Jonathan specializes on differentiating Red Hat products. He focuses on OpenShift and related technologies. He has presented at Red Hat Summit in OpenStack Summit, VMworld and other events.
Browse by channel
Automation
The latest on IT automation for tech, teams, and environments
Artificial intelligence
Updates on the platforms that free customers to run AI workloads anywhere
Open hybrid cloud
Explore how we build a more flexible future with hybrid cloud
Security
The latest on how we reduce risks across environments and technologies
Edge computing
Updates on the platforms that simplify operations at the edge
Infrastructure
The latest on the world’s leading enterprise Linux platform
Applications
Inside our solutions to the toughest application challenges
Original shows
Entertaining stories from the makers and leaders in enterprise tech
Products
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud services
- See all products
Tools
- Training and certification
- My account
- Customer support
- Developer resources
- Find a partner
- Red Hat Ecosystem Catalog
- Red Hat value calculator
- Documentation
Try, buy, & sell
Communicate
About Red Hat
We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.
Select a language
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit