Large-scale deployments are a pain when you think of the many things that can go wrong. That’s why we’re here to ease the pain with deployment automation. I want to focus this post on block storage specifically for EC2 and on how you can set it up in advance to scale automated deployments.
Amazon Web Services provides block devices called EBS (Elastic Block Storage) that range in gigabytes to terabytes in size at a pay-as-you-use cost. This type of storage gives instances far greater storage flexibility. The default volume on an EC2 instance generally assumes the lifespan of the instance, which means the data disappears once the instance does. Volumes, on the other hand, can persist in the after-life of the instance and make the data available for future use. You can take volume snapshots for backup or attach a volume to another instance, for example.
EBS volume types
Amazon offers three EBS types: Magnetic, General Purpose (SSD), and Provisioned IOPS (SSD).
- The Magnetic disk is the default volume of an EC2 instance and the lowest cost option if you don’t need high read performance and are okay with sequential I/O. It’s a good option to store log files (if you don’t use message logging tools like logstash or syslog). In general, SSD disks are better unless cost outweighs performance in your use case.
- General Purpose (SSD) disks, announced recently, are the best in terms of performance and cost. It uses solid-state drive (SSD) technology by default and gives IOPS based on the disk size.
- Provisioned IOPS (SSD) disks are useful for performance critical applications. If the response time is important or you expect predictable high I/O workloads this is the way to go.
If using Provisioned IOPS, you should consider the EBS-optimize instance option for dedicated I/O performance. Some instance types support it. I’ve heard reports that this option hugely improves latency and I/O. Obviously, you should test to see if it applies to your use case.
ElasticBox block storage support
ElasticBox supports EBS in a straightforward way via the deployment profile. Map your infrastructure requirements to the provider in the deployment profile, which behind the scenes auto provisions EC2 instances. The Elastic Block Store section of the deployment profile allows you to add new block devices, configure the disk size, path, and for Provisioned IOPS also set the IOPS level you need.
The nice thing about the deployment profile is its standard interface that works for any cloud provider. Your deployment configurations are compatible with any cloud. Say your deployment requires block storage. You can set up your deployment with several profiles that include vSphere, Google Cloud, OpenStack, HP Cloud just as well as AWS. It works great if you use CI/CD because you can choose the right profile for your environment with one for staging and another for production.
To optimize an instance for EBS in ElasticBox, just check the EBS-Optimized option. Remember that only some “larger tier” instance types support it and c4 instances include it. You can check the AWS help and our docs for details.
Persistent storage for predictable deployments
EBS is an important service for configuring EC2 storage in AWS. It’s the best way to persist data in the virtual machines as detachable disks. It gives redundant, highly available, and low latency I/O to your EC2 instances. You get the flexibility with good performance.
ElasticBox automates EC2 deployments with EBS. Using deployment profiles, you can configure workloads to deploy consistently on scale. So why not try it today? Sign up for a free ElasticBox account and spin up an instance.