AWS Storage Options – EBS & Instance Store
- Elastic Block Store – EBS and Instance Store provide block-level storage options for EC2 instances.
Elastic Block Store (EBS) volume
- EBS provides durable block-level storage for use with EC2 instances
- EBS volumes are off-instance, network-attached storage (NAS) that persists independently from the running life of a single EC2 instance.
- EBS volume is attached to an instance and can be used as a physical hard drive, typically by formatting it with the file system of your choice and using the file I/O interface provided by the instance operating system.
- EBS volume can be used to boot an EC2 instance (EBS-root AMIs only), and multiple EBS volumes can be attached to a single EC2 instance.
- EBS volume can be attached to a single EC2 instance only at any point in time.
- EBS Multi-Attach volume can be attached to multiple EC2 instances.
- EBS provides the ability to take point-in-time snapshots, which are persisted in S3. These snapshots can be used to instantiate new EBS volumes and to protect data for long-term durability
- EBS snapshots can be copied across AWS regions as well, making it easier to leverage multiple AWS regions for geographical expansion, data center migration, and disaster recovery
Ideal Usage Patterns
- EBS is meant for data that changes relatively frequently and requires long-term persistence.
- EBS volume provides access to raw block-level storage and is particularly well-suited for use as the primary storage for a database or file system
- EBS Provisioned IOPS volumes are particularly well-suited for use with databases applications that require a high and consistent rate of random disk reads and writes
Anti-Patterns
- Temporary Storage
- EBS volume persists independent of the attached EC2 life cycle.
- For temporary storage such as caches, buffers, queues, etc it is better to use local instance store volumes, SQS, or Elastic Cache
- Highly-durable storage
- EBS volumes with less than 20 GB of modified data since the last snapshot are designed for between 99.5% and 99.9% annual durability; volumes with more modified data can be expected to have proportionally lower durability
- For highly durable storage, use S3 or Glacier which provides 99.999999999% annual durability per object
- Static data or web content
- For static web content, where data infrequently changes, EBS with EC2 would require a web server to serve the pages.
- S3 may represent a more cost-effective and scalable solution for storing this fixed information and is served directly out of S3.
EBS Performance
- EBS provides two volume types: standard volumes and Provisioned IOPS volumes which differ in performance characteristics and pricing model, allowing you to tailor the storage performance and cost to the needs of the applications.
- EBS Volumes can be attached and striped across multiple similarly-provisioned EBS volumes using RAID 0 or logical volume manager software, thus aggregating available IOPs, total volume throughput, and total volume size.
- Standard volumes offer cost-effective storage for applications with moderate or bursty I/O requirements. Standard volumes are also well suited for use as boot volumes, where the burst capability provides fast instance start-up times.
- Provisioned IOPS volumes are designed to deliver predictable, high performance for I/O intensive workloads such as databases. With Provisioned IOPS, you specify an IOPS rate when creating a volume, and then EBS provisions that rate for the lifetime of the volume.
- As EBS volumes are network-attached devices, other network I/O performed by the instance, as well as the total load on the shared network, can affect individual EBS volume performance.
- EBS-optimized instances can be launched which deliver dedicated throughput between EC2 and EBS and enables instances to fully utilize the Provisioned IOPS on an EBS volume,
- Each separate EBS volume can be configured as EBS standard or EBS Provisioned IOPS as needed. Alternatively, you could stripe the data.
EBS Durability & Availability
- EBS volumes are designed to be highly available and reliable.
- EBS volume data is replicated across multiple servers in a single AZ to prevent the loss of data from the failure of any single component.
- EBS volume durability depends on both the size of the volume and the amount of data that has changed since your last snapshot
- EBS snapshots are incremental, point-in-time backups, containing only the data blocks changed since the last snapshot.
- Frequent snapshots are recommended to maximize both the durability and availability of their EBS data
- EBS snapshots provide an easy-to-use disk clone or disk image mechanism for backup, sharing, and disaster recovery.
EBS Cost Model
- EBS pricing has 3 components: provisioned storage, I/O requests, and snapshot storage
- Standard volumes are charged per GB-month of provisioned storage and per million I/O requests
- EBS Provisioned IOPS volumes are charged per GB-month of provisioned storage and per Provisioned IOPS-month
- For both volumes, EBS snapshots are charged per GB-month of data stored. EBS snapshot copy is charged for the data transferred between regions, and for the standard EBS snapshot charges in the destination region.
- EBS volume storage capacity is allocated at the time of volume creation, and you are charged for this allocated storage even if not used.
- For EBS snapshots, you are charged only for storage actually used (consumed). Note that EBS snapshots are incremental and compressed, so the storage used in any snapshot is generally much less than the storage consumed on an EBS volume
EBS Scalability and Elasticity
- EBS volumes can easily and rapidly be provisioned and released to scale in and out with the changing total storage demands
EBS volumes cannot be resized, and if additional storage is needed eitherAn additional volume can be attachedCreate a snapshot and create a new volume from the snapshot with a higher volume size
- EBS volumes can be resized dynamically, but cannot be reduced by size.
Interfaces
- AWS offers management APIs for EBS in both SOAP and REST formats which can be used to create, delete, describe, attach, and detach EBS volumes for the EC2 instances as well as to create, delete, and describe snapshots from EBS to S3; and to copy snapshots across regions.
- Amazon also offers the same capabilities through AWS Management Console
Instance Store Volumes
- Instance Store volumes are also referred to as Ephemeral Storage.
- Instance Store volumes provide temporary block-level storage and consist of a preconfigured and pre-attached block of disk storage on the same physical server as the EC2 instance
- Instance storage’s amount of disk storage depends on the Instance type and larger instances provide both more and larger instance store volumes. Smaller instance types such as micro instances can only be launched with EBS volumes.
- Storage-optimized instances provide special purpose instance storage targeted to specific uses case for e.g. HI1 provides very fast solid-state drive (SSD) backed instance storage capable of supporting over 120,000 random read IOPS, and is optimized for very high random I/O performance and low cost per IOPS. While, HS1 instances are optimized for very high storage density, low storage cost, and high sequential I/O performance.
- Instance store volumes, unlike EBS volumes, cannot be detached or attached to another instance.
Ideal Usage Patterns
- EC2 local instance store volumes are fast, free (that is, included in the price of the EC2 instance) “scratch volumes” best suited for storing temporary data that is continually changing, such as buffers, caches, scratch data or can easily be regenerated, or data that is replicated for durability
- High I/O instances provide instance store volumes backed by SSD, and are ideally suited for many high performance database workloads. for e.g. applications include NoSQL databases like Cassandra and MongoDB.
- High storage instances support much higher storage density per EC2 instance and are ideally suited for applications that benefit from high sequential I/O performance across very large datasets. e.g. applications include data warehouses, Hadoop storage nodes, seismic analysis, cluster file systems, etc.
Anti-Patterns
- Persistent storage
- For persistent virtual disk storage similar to a physical disk drive for files or other data that must persist longer than the lifetime of a single EC2 instance, EBS volumes or S3 are more appropriate.
- Relational database storage
- In most cases, relational databases require storage that persists beyond the lifetime of a single EC2 instance, making EBS volumes the natural choice.
- Shared storage
- Instance store volumes are dedicated to a single EC2 instance, and cannot be shared with other systems or users.
- If you need storage that can be detached from one instance and attached to a different instance, or if you need the ability to share data easily, S3 or EBS volumes are the better choices.
- Snapshots
- If you need the convenience, long-term durability, availability, and shareability of point-in-time disk snapshots, EBS volumes are a better choice.
Instance Store Performance
- Non-SSD-based instance store volumes in most EC2 instance families have performance characteristics similar to standard EBS volumes.
- EC2 instance virtual machine and the local instance store volumes are located in the same physical server, and interaction with the storage is very fast, particularly for sequential access.
- To further increase aggregate IOPS, or to improve sequential disk throughput, multiple instance store volumes can be grouped together using RAID 0 (disk striping) software.
- Because the bandwidth to the disks is not limited by the network, aggregate sequential throughput for multiple instance volumes can be higher than for the same number of EBS volumes.
- SSD instance store volumes in the EC2 high I/O instances provide from tens of thousands to hundreds of thousands of low-latency, random 4 KB random IOPS.
- Because of the I/O characteristics of SSD devices, write performance can be variable.
- Instance store volumes on EC2 high storage instances provide very high storage density and high sequential read and write performance. High storage instances are capable of delivering 2.6 GB/sec of sequential read and write performance when using a block size of 2 MB.
Instance Store Durability and Availability
- EC2 local instance store volumes are not intended to be used as durable disk storage and they persist only during the life of the associate EC2 instance
Cost Model
- Cost of the EC2 instance includes any local instance store volumes if the instance type provides them.
- While there is no additional charge for data storage on local instance store volumes, note that data transferred to and from EC2 instance store volumes from other AZs or outside of an EC2 region may incur data transfer charges, and additional charges will apply for use of any persistent storage, such as S3, Glacier, EBS volumes, and EBS snapshots
Scalability and Elasticity
- Local instance store volumes are tied to a particular EC2 instance and are fixed in number and size for a given EC2 instance type, so the scalability and elasticity of this storage are tied to the number of EC2 instances.
Interfaces
- Instance store volumes are specified using the block device mapping feature of the EC2 API and the AWS Management Console
- To the EC2 instance, an instance store volume appears just like a local disk drive. To write to and read data from instance store volumes, use the native file system I/O interfaces of the chosen operating system.
AWS Certification Exam Practice Questions
- Questions are collected from Internet and the answers are marked as per my knowledge and understanding (which might differ with yours).
- AWS services are updated everyday and both the answers and questions might be outdated soon, so research accordingly.
- AWS exam questions are not updated to keep up the pace with AWS updates, so even if the underlying feature has changed the question might not be updated
- Open to further feedback, discussion and correction.
- Which of the following provides the fastest storage medium?
- Amazon S3
- Amazon EBS using Provisioned IOPS (PIOPS)
- SSD Instance (ephemeral) store (SSD Instance Storage provides 100,000 IOPS on some instance types, much faster than any network-attached storage)
- AWS Storage Gateway
Hi Jayendra,
>>High I/O instances provide instance store volumes backed by SSD, and are ideally suited for many high performance database workloads. for e.g. applications include NoSQL databases like Cassandra and MongoDB.
Since SSD storage is ephemeral. Why would they be good candidates for database workloads? If the instance is restarted, the data will be lost so I think these are not good candidates for db workload. Amazon documentation (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/storage_instances.html) also says it is good — I think I’m missing a point. Could you please clarify?
Cheers,
Satish
The reason for using SSD Instance store for NoSQL and other use cases is the performance. However, the data needs to be backed up or replicated to prevent any data loss if the instance fails.
For e.g. AWS DyanamoDB the data items are stored on solid-state drives (SSDs) and are automatically replicated across three Availability Zones in an AWS region to provide built-in high availability and data durability.
You can create an HA and durable architecture using Distributed Replicated Block Device (DRBD). Create RAID 0 by striping multiples instance store together. Replicate the same model in other AZ and user DRDB to replicate data in both AZ instance store. Add one more cluster of RAID 0 EBS volume and replicate data there using DRDB. Take the snapshot of EBS volume and store in S3.
From the post,
“Amazon EBS volumes cannot be resized, and if additional storage is needed either”
Tested and found that EBS volume can be enlarged, but cannot be shrinked.
thanks Dave, seems to be latest enhancement from AWS @ https://aws.amazon.com/blogs/aws/amazon-ebs-update-new-elastic-volumes-change-everything/ where you can actually enlarge a volume. Will edit the post
Hi Jayendra/Experts,
Which of the following provides the fastest storage medium?
Amazon S3
Amazon EBS using Provisioned IOPS (PIOPS)
SSD Instance (ephemeral) store (SSD Instance Storage provides 100,000 IOPS on some instance types, much faster than any network-attached storage)
AWS Storage Gateway
Isn’t the answer provisioned IOPS ?
which SSD instance type provides 100K IOPS ?
Thank you
Rahul
Refer AWS documentation – SSD Instance Store IOPS Performance