AWS has been clear about its intention to leave no enterprise application behind, and its enormous variety of services...
covers most scenarios.
AWS' virtual resources impose a software abstraction layer between the user and underlying hardware. While this software-defined infrastructure offers the flexibility to apportion services of various sizes and configurations, not all situations benefit from a virtual interface that sits between an application and the physical hardware that supports it. For example, some previrtualization legacy applications might not run, because the software expects to have direct access to various hardware interfaces.
In this case, and others, bare-metal hosting might be a better option.
Let's look at the differences between Amazon Elastic Compute Cloud (EC2) instances and bare-metal hosts, and some of the pros and cons of each.
AWS model limits hardware control
EC2 instances are essentially guest VMs that run on a customized version of the Xen hypervisor. Paravirtualization increases the isolation and security of images running on shared hardware.
AWS thoroughly isolates guest VMs both from each other and the underlying servers. AWS runs a software firewall within the hypervisor layer to control network traffic between EC2 instances and the server's physical network interface. Enhanced networking features for Linux instances go a step further, using single root I/O virtualization to provide hardware-level network isolation. And EC2 instances cannot access a server's physical RAM or raw disk devices.
While EC2 is quite rigid in how it operates, it delivers a variety of instances that fit diverse computing needs. AWS currently offers dozens of instance types and capacities spread across five families: general purpose, compute optimized, memory optimized, accelerated computing and storage optimized.
AWS pioneered the usage model with its On-Demand instances, which are available without prior commitment or payment, but has added other provisioning options, like Spot and Reserved Instances. Another consumption option, EC2 Dedicated Hosts, might sound like bare-metal services, but they're not. An Amazon EC2 Dedicated Host provides EC2 instance capacity on a physical server dedicated to a customer. But it's not a bare-metal machine. Instances run on a Dedicated Host are virtualized, just like traditional Xen-based EC2 instances.
AWS aims to make EC2 capacity and performance as indistinguishable from bare metal as possible, while adding in security and management features.
More recently, AWS partnered with VMware to deliver the latter's virtualization stack as a public cloud service. VMware Cloud on AWS (VMC) is provisioned in an elastic, bare-metal AWS infrastructure, which is the first publicized example of AWS providing bare-metal hosts. The two companies jointly engineered VMC, but there is no indication that AWS plans to expand its bare-metal hosting capabilities.
Bare-metal cloud uses
Still, some organizations might prefer access to bare-metal hosting. These scenarios might be applicable for bare metal:
- Legacy applications not well-suited for virtualization;
- Database servers;
- Hadoop and big data analytics systems;
- Container hosts; and
- Hybrid infrastructure as a service (IaaS) deployments that use CloudStack or OpenStack.
In the first case, the application might not run well -- or at all -- without direct access to the hardware, while in the next two scenarios, bare metal might offer better performance. In contrast, when building self-managed IaaS or container systems, a dev team can tradeoff performance overhead for better application isolation when it adds a second VM abstraction layer underneath the IaaS stack -- though, it's unnecessary in most cases.
Bare-metal servers are still the norm inside many enterprise data centers, but some hosting providers, such as Oracle, IBM Bluemix, CenturyLink and Packet, offer bare-metal services on demand.
Direct access to hardware might provide superior performance over a VM layer, but that's not always true. When running a container cluster without additional VMs, bare-metal systems generally perform faster. Tests by Stratoscale, a developer of private cloud software, determined that "the performance of containers running on bare metal was 25%-30% better compared to running the same workloads on VMs in both CPU and IO operations."
In contrast, database performance is a more complicated story. One set of tests found bare-metal systems and EC2 instances have the same performance until the number of database threads exceeds about 10. But at very high thread counts, the managed Amazon Relational Database Service can exceed the performance of raw systems and serves as a stronger alternative to EC2 and Elastic Block Store.
Bare-metal servers provide better performance on some workloads at the cost of management complexity, lost flexibility and agility, and potentially wasted money due to the difficulty of precisely sizing system capacity for a specific workload. Carefully research your options before you make the switch from EC2 to bare-metal hosting.
Match workload demands to EC2 instance types
Know the basics on using EC2 for your cloud
Users expect lower costs with EC2 instance update