Amazon continues to be
the market champion when it comes to cloud services, and with more than 160 to
choose from, it's no real surprise. One of those services, the Elastic Block
Store (EBS), is a vital element in many AWS customers' cloud system.
If you are currently
using EBS, or are thinking about using the service, check out the features
covered here. This article should give you a better idea of the sort of
features available to you and help you identify ways to maximize your EBS
value.
EBS Overview
EBS is a service that
provides scalable, persistent block storage for use with Elastic Cloud Compute
(EC2) instances. Depending on your configuration, EBS volumes remain even after
an instance has been terminated, ensuring that data is not lost when an instance
fails. Each volume can store up to 16 TiB of data and can be used with
containers, file systems, applications, and both structured and unstructured
databases.
Understanding EBS Pricing
EBS pricing is
determined primarily by your storage and performance requirements. Performance
costs, unsurprisingly, increase as performance does, regardless of whether it's
Input/Output Operations per Second (IOPS) or throughput that improves.
Storage costs depend on
the size, type, and region of your volumes. With storage, you pay a GB per
month price for the storage you provision, regardless of whether you have that
much data stored. Additionally, if you have a volume with provisioned IOPS, you
will pay that on top of your provisioned storage fee.
Features to Take Advantage of
While cloud services can
present a great opportunity to receive increased performance at a reduced cost,
complex pricing or mismanagement can quickly lead to larger bills than you
expect. To avoid this, check out the features of EBS covered below and leverage
them to ensure you're getting a maximum ROI.
Different Volume Types
EBS offers four
different volume types for you to choose from.
- EBS
Provisioned IOPS SSD (io1)-designed
for Iatency-sensitive transactional operations, these are IOPS provisioned
volumes that offer up to 64k IOPS and up to 1k MB/s throughput. They are best
used for NoSQL and relational databases.
- EBS
General Purpose SSD (gp2)-designed
for price/performance balance, these volumes offer up to 16k IOPS and 250 MB/s
throughput. They are best used as boot volumes, development and testing, or for
low-latency applications.
- Throughput
Optimized HDD (st1)-designed for
frequently accessed, throughput intensive workloads, these volumes offer up to
500 IOPS and 500 MB/s throughput. They are best used for big data, data
warehousing, and log processing.
- Cold
HDD (sc1)-designed to provide a
low cost for infrequently accessed workloads, these volumes offer up to 250
IOPS and 250 MB/s throughput. They are best used for legacy or archive data.
The type you pick will
not only determine your pricing but your potential performance so you'll want
to choose carefully. Thankfully, if you find that you've selected incorrectly
you can modify your volumes whenever you need with little to no downtime.
Snapshots
EBS Snapshots are
the primary way of backing up volume information and can be used to restore
failed volumes or create new volumes with duplicate data. They are created
incrementally, reducing the total storage needed, and cost less to store than
active volumes since they are typically kept in AWS S3.
Through AWS Backup,
Lifecycle Manager, or custom scripting you can automate the process of creating
snapshots as well as specify the frequency with which they are taken, how long
they are kept, and when they are created.
To make sure you get the
most from your snapshots, be sure to create them during off-business hours so
they don't negatively impact performance. When restoring from snapshots, try to
access all of your data before putting the new volume into production; this
will eliminate initial increases in latency.
Burst Credits
All EBS volumes come
initialized with enough burst credits, used to adjust to sudden increases of
activity, to cover 3k IOPS for 30 minutes. Once these burst credits are used
up, your performance will drop back to baseline, regardless of current activity
level, and credits will only replenish once you drop below baseline.
To avoid being
negatively impacted by these limits, you should carefully consider the priority
of the data being accessed. If the volume being impacted contains high priority
data or applications your best option is to simply increase the size of the
volume you are using.
Once a volume reaches 1
TiB or larger, it is no longer affected by burst credit limits and will always
receive maximum performance. Keep in mind, that if the volume type you're using
doesn't offer the performance level you need, you will need to switch volume
types first.
Metrics
Metrics
from EBS are automatically collected for
you and sent to CloudWatch. Monitoring these metrics can provide valuable
insight into how your volumes are performing and what you might be able to do
to increase their performance.
The metrics available
come in three main categories: disk I/O, disk activity, and latency. Through
analysis of disk I/O metrics, you can determine if you are using the correct
volume sizes and types as well as if you need to add a load balancer or caching
layer.
To determine if the
limits you have set on your volumes are correct and to identify underused or
orphaned volumes, you can use the disk activity metrics. Finally, latency
metrics will help you determine if IOPS limits are restricting volume
performance.
Raid Configuration
With EBS, you can use
any Redundant Array of Independent Disks (RAID) that your OS supports. A RAID
architecture is one in which duplicate data is stored in multiple locations to
provide parallel access and increase performance, or to eliminate single points
of failure.
Although you can choose
other configurations, AWS recommends using only RAID 0 or RAID 1 to receive the
greatest benefit. RAID 1, also known as disk mirroring, can be useful for
duplicating mission-critical data or increasing read performance but will use
more storage and does not improve write performance. RAID 0, also known as
striping, will not provide data replication but can increase read and write
speeds and is useful if single EBS volumes are unable to provide the
performance you need.
AMI Sharing
Amazon Machine Images
(AMIs), backups of entire EC2 instances as opposed to just their associated
data, provide configuration information used to launch an instance. Using AMIs,
you can quickly duplicate instances in a single Availability Zone or across
zones and regions. This allows you to more easily automate deployment
processes, recover failed instances, or share instance configurations with
third-parties.
Previously, you could
only share unencrypted AMIs with other AWS accounts, which increased data
liability risks, but now you can share with any account that has a copy of your
CMK.
Conclusion
AWS services and pricing
can be difficult to navigate, but with careful configuration and monitoring,
you can ensure that you are getting the performance you need without a
surprisingly large bill. The features covered here are only a portion of those
available to you in EBS but they are a good place to start if you want to
optimize your system and improving your ROI.
Once you've maximized
these features, make sure you keep an eye on the AWS news blog for information about service improvements or price
changes, and conduct periodic audits of your system to ensure that it remains
the best configuration for your needs.
##
Image source: Nattanan Kanchanaprat
About the Author
Gilad David Maayan is a
technology writer who has worked with over 150 technology companies including
SAP, Imperva, Samsung NEXT, NetApp and Ixia, producing technical and thought
leadership content that elucidates technical solutions for developers and IT leadership.
Today he heads Agile SEO, the
leading marketing agency in the technology industry.
LinkedIn: https://www.linkedin.com/in/giladdavidmaayan/