Types of EBS Volumes:
EBS volumes can currently be classified into two types
namely: Standard EBS Volumes & Provisioned IOPS Volumes
Standard EBS Volumes
Standard EBS Volumes were the first generation of block
storage volumes introduced by AWS couple
of years back. They operate in a typical AWS Multi-tenant model, where
multiple clients mount volumes from
a shared SAN backend in Availability Zone scope. Essentially when I mean shared
there are two important things to note here, one is the connectivity (NW
bandwidth) between EC2 instance and EBS and second is the IOPS on the disk. In
a shared resource model a busy client can slow down other clients that share
the same EBS backend. In case there are
no noisy neighbors you are lucky to enjoy very good IOPS at very low cost in
this standard volumes model. The Standard EBS volumes are internally copied to
multiple disks and you will get higher throughput (at times with higher
variance in measurements). Standard volumes deliver approximately 100 IOPS on average
with burst capability on a best effort basis up to hundreds of IOPS (depending
upon disk size provisioned and your noisy neighbors). One common performance
technique followed by experienced AWS Cloud architects is to allocate a 1TB
volume (max size) which reduces the amount of multi-tenant sharing between the
clients and gives you a better consistency with EBS. When you combine this 1 TB
volume logic with High IO Capacity EC2 instances (Example Quadruple or High IO/CPU
EC2 etc) you get better NW bandwidth between EC2 and EBS as well. This is not an
always guaranteed technique, but I have observed better performance most of the
times using this approach in many Amazon EC2 regions. On the negative side you
might not need 1 TB capacity and could be wasting space and there by usage cost. Standard EBS volumes are usually suitable for
applications only with moderate or bursty I/O requirements. AWS customers had been using them for RDBMS,
NoSQL etc till sometime back because of limited options available and many are still
using now because lack of knowledge in AWS infra. Some guidelines/best practices
for standard EBS Volumes users are:
- All layers of the application stack will not demand heavy and consistent IO in a larger web scale application; Secondly EBS PIOPS is costlier than standard EBS volumes. Taking both the points into consideration, I usually recommended to mix-match your tiers with standard EBS volumes and other storage options to get better overall cost efficiency and performance.
- Standard volumes are also well suited for use as boot volumes, where the burst I/O capability provides fast instance start-up times
- Standard EBS volumes are better performers in comparison to PIOPS volumes for sequential operations. Workloads like OLAP databases, Reporting stores or Hadoop processing which are more sequential, bursty and follows batch-oriented pattern are a better fit
- Understanding of storage, blocks, IOPS, Caching, Latency, Bandwidth etc is complicated subject when combined with cloud for developers. I recommend proper benchmarking of your setup with tools like sysbench, FIO, SQLIO etc and frequent observation of the setup for a period of time, till it satisfies your performance.
EBS Article Series (continued..)
Part 1: Understanding Amazon Elastic Block Store
Part 2: Understanding Standard EBS Volumes
Part 3: Understanding EBS PIOPS Volumes
Part 4: Understanding EBS-Optimized Instances
Part 5: Understanding Latency in EBS
Part 7: 10% of your provisioned IOPS 99.9% of the time
Part 8: Performance Tuning - Pre Warming the EBS volume
Part 9: Performance Tuning - EBS Striping
Part 10: Performance Tuning - IO Block Size
Part 11: Understanding Amazon EBS Snapshots
Part 12: Securing Amazon EBS volumes - EBS Encryption using SecureCloud
Part 13: Amazon EBS Security Best practices and tips
Part 1: Understanding Amazon Elastic Block Store
Part 2: Understanding Standard EBS Volumes
Part 3: Understanding EBS PIOPS Volumes
Part 4: Understanding EBS-Optimized Instances
Part 5: Understanding Latency in EBS
Part 7: 10% of your provisioned IOPS 99.9% of the time
Part 8: Performance Tuning - Pre Warming the EBS volume
Part 9: Performance Tuning - EBS Striping
Part 10: Performance Tuning - IO Block Size
Part 11: Understanding Amazon EBS Snapshots
Part 12: Securing Amazon EBS volumes - EBS Encryption using SecureCloud
Part 13: Amazon EBS Security Best practices and tips
No comments:
Post a Comment