[0:00]Hello, my name is Paul and I'm a principal solutions architect at Amazon Web Services. And in this session, we're going to talk about Amazon EBS, which is our elastic block store service. This is going to be a 300 level session, so we're going to dive deep on several features of EBS. We're going to talk about the different volume types and their performance characteristics. We're going to talk about the various features that EBS has, such as snapshots, encryption, elastic volumes. And we're going to talk about how to optimize the performance of EBS volumes on your EC2 instances. So let's get started. First off, what is EBS? EBS is a high-performance block storage service designed for use with Amazon EC2 instances. EBS is ideal for workloads that require persistent storage such as databases, enterprise applications, containerized applications, virtual desktops and big data analytics. EBS provides highly available, highly durable, secure and high performance block storage. It supports both hard disk drive and solid state drive options. So let's talk about the use cases for EBS. As I mentioned, EBS is great for transaction processing such as database workloads. It's also great for analytics workloads, so if you're doing big data processing, you can use EBS for that as well. You can use it for media workflows, for example, if you're doing video editing or content creation. And it's also great for testing and development workloads. And you can also use it for backup and recovery, and also for disaster recovery. So let's talk about the key benefits of EBS. First off, it's highly available and durable. EBS volumes are replicated within an Availability Zone to protect you from component failure. So essentially, when you create an EBS volume in an Availability Zone, we're actually creating multiple copies of that for you behind the scenes. We're doing that transparently so that if there's a component failure on one of those copies, you still have the other copies that are available to serve your data. We also have snapshots so you can backup your data to Amazon S3. So you can take point-in-time copies of your EBS volumes and store them in Amazon S3 for long-term retention or for disaster recovery. It's also highly performant. EBS provides consistent and low-latency performance for your workloads. And we're going to dive deep on the performance of EBS volumes as we go through this session. It's also highly secure. EBS encrypts your data at rest and in transit. And we're going to talk about the encryption feature of EBS. It's also very flexible. You can change the volume type, the size, and the performance of your EBS volumes on the fly. And we're going to talk about that feature as well. So let's talk about the different EBS volume types. We have two main categories of EBS volumes. We have solid state drives, which are SSD backed volumes, and we have hard disk drive backed volumes, which are HDD backed volumes. So within the SSD backed volumes, we have general purpose SSD volumes, which are great for a wide variety of workloads. And we have provisioned IOPS SSD volumes, which are designed for your most demanding, highest performance workloads. Within the hard disk drive backed volumes, we have throughput optimized HDD volumes, which are great for frequently accessed, throughput intensive workloads. And we also have cold HDD volumes, which are designed for less frequently accessed workloads. So let's dive deep on each of these volume types. Let's start with general purpose SSD volumes. We have two types of general purpose SSD volumes. We have GP2 and GP3. GP2 is the previous generation of general purpose SSD volumes. GP3 is the current generation and it's recommended for most workloads. GP3 provides higher performance and lower cost than GP2. So GP3 volumes are designed to provide a balance of price and performance for a wide variety of transactional workloads. So this is good for boot volumes, for development and test environments, and for low-latency interactive applications. All GP3 volumes include a baseline performance of 3,000 IOPS and 125 megabytes per second. You can provision additional IOPS up to 16,000 IOPS and additional throughput up to 1,000 megabytes per second independently. This is a key differentiator between GP3 and GP2. With GP2, the IOPS and throughput scale with the size of the volume. With GP3, you can provision the IOPS and throughput independently of the volume size. GP3 volumes are also 20% lower cost per gigabyte than GP2 volumes. So you can save money by migrating from GP2 to GP3. So let's talk about provisioned IOPS SSD volumes. We have two types of provisioned IOPS SSD volumes. We have IO1 and IO2. IO2 is the current generation and it's recommended for most workloads. IO2 offers higher durability, higher IOPS per gigabyte, and higher maximum IOPS and throughput than IO1. So IO2 volumes are designed for your most demanding, mission critical, low-latency and high-throughput workloads. So this is good for large relational or NoSQL databases, and for business critical applications. IO2 provides 99.999% durability compared to 99.9% durability for IO1. It supports up to 64,000 IOPS and 1,000 megabytes per second of throughput for volumes attached to Nitro-based instances. And we're going to talk about Nitro-based instances later in the session. It supports a maximum IOPS of 500 IOPS per gigabyte. So you can get very high IOPS for a given volume size. Let's talk about throughput optimized HDD volumes. These are ST1 volumes. ST1 volumes are designed for frequently accessed, throughput intensive workloads. So this is good for big data, data warehouses, log processing and Kafka. ST1 volumes deliver a consistent baseline throughput of 40 megabytes per second per terabyte up to a maximum of 500 megabytes per second. It also supports burst throughput of up to 500 megabytes per second per terabyte up to a maximum of 500 megabytes per second. The maximum IOPS is 500 IOPS. And the volume size can be between 125 gigabytes and 16 terabytes. Let's talk about cold HDD volumes. These are SC1 volumes. SC1 volumes are designed for less frequently accessed workloads. So this is good for larger workloads where data is infrequently accessed. So for example, if you're archiving data or if you're doing log processing that is less frequently accessed. SC1 volumes deliver a consistent baseline throughput of 12 megabytes per second per terabyte up to a maximum of 250 megabytes per second. It supports burst throughput of up to 80 megabytes per second per terabyte up to a maximum of 250 megabytes per second. The maximum IOPS is 250 IOPS. And the volume size can be between 125 gigabytes and 16 terabytes. So now let's talk about the key features of EBS. First off, we have elastic volumes. Elastic volumes allows you to easily adapt your volumes as the needs of your applications change. So you can dynamically increase the size, modify the provisioned IOPS, or change the volume type on the fly. And you can do this without detaching the volume or restarting your EC2 instance. And these changes can be completed within seconds. So this allows you to scale up or scale down your storage on the fly as your application needs change. Next, we have snapshots. EBS snapshots are point-in-time backups of your EBS volumes. Snapshots are incremental, so only the blocks that have changed since the last snapshot are saved. This saves you storage costs and it also speeds up the snapshot process. Snapshots are stored in Amazon S3 for high durability and availability. You can use snapshots to restore a volume to its original state, to create new volumes, or to create new instances. You can also copy snapshots across AWS regions, which is useful for disaster recovery. So for example, if you have an application running in one region and you want to have a disaster recovery copy in another region, you can copy your EBS snapshots to that other region and then restore them to EBS volumes in that region. EBS snapshots are also encrypted, so your data is protected at rest in S3. And you can also share snapshots with other AWS accounts or make them public, but that's generally not recommended unless you have a very specific use case. Next we have encryption. EBS encryption provides simple and transparent encryption for your EBS volumes and snapshots. EBS encryption uses AWS Key Management Service, also known as KMS, for managing your encryption keys. It encrypts your data at rest and in transit between your EC2 instance and your EBS volume. So this provides end-to-end encryption for your data. EBS encryption is transparent to your applications, so you don't need to make any code changes to use it. And it also has no measurable impact on performance. You can encrypt new EBS volumes or you can encrypt existing unencrypted volumes by creating a snapshot of the unencrypted volume, copying that snapshot and encrypting the copy, and then restoring that encrypted snapshot to a new EBS volume. So let's talk about performance optimization for EBS. First off, you want to choose the correct EBS volume type for your workload. As we discussed, we have different volume types for different workloads. So make sure you choose the one that's appropriate for your application. Next, you want to make sure you use an EBS optimized EC2 instance. EBS optimized instances provide dedicated bandwidth between your EC2 instance and your EBS volumes. This prevents contention between your EC2 instance's network traffic and your EBS I/O traffic. And all current generation EC2 instance types are EBS optimized by default. Next, you want to make sure you use the latest generation of EC2 instances, especially Nitro-based instances. Nitro-based instances provide higher performance for EBS volumes, especially for IOPS and throughput. Next, you want to make sure you use multiple EBS volumes for higher performance. If you need more IOPS or throughput than a single EBS volume can provide, you can combine multiple EBS volumes together using RAID 0. This will stripe your data across multiple EBS volumes, which will give you higher aggregate IOPS and throughput. Next, you want to make sure you use direct I/O. Direct I/O bypasses the operating system's page cache, which reduces latency and improves performance for certain workloads. So this is especially useful for database workloads that have their own caching mechanisms. Next, you want to make sure you monitor your EBS volumes. You can use Amazon CloudWatch to monitor the performance of your EBS volumes. You can monitor metrics such as IOPS, throughput, latency, and queue depth. And this will allow you to identify any performance bottlenecks and make adjustments as needed. So for example, if you see your queue depth consistently high, you may need to increase your IOPS for your volume or increase the number of volumes that you're using. Next, you want to make sure you pre-warm your EBS volumes. When you create a new EBS volume from a snapshot, the data is lazily loaded from S3. This means that the first time you access a block of data, there will be some latency as that data is loaded from S3. You can pre-warm your EBS volumes by reading all the blocks on the volume, which will force the data to be loaded from S3. This will eliminate that initial latency when your applications start accessing the data. So this is especially useful for applications that require consistent low-latency performance from the start. Next, you want to make sure you use multiple Availability Zones for high availability. EBS volumes are specific to an Availability Zone. So if you want to achieve high availability across Availability Zones, you need to replicate your data across multiple Availability Zones. You can do this using EBS snapshots to copy your data to another Availability Zone. Or you can use application-level replication, for example, if you're using a database that supports replication across Availability Zones. Next, you want to make sure you use tags to organize your EBS volumes. Tags are key-value pairs that you can use to identify and categorize your EBS volumes. So for example, you can tag your EBS volumes with the application name, the environment, the owner, etc. This will help you manage and track your EBS volumes, especially if you have a large number of them. So in summary, we've talked about the different EBS volume types and their performance characteristics. We've talked about the various features that EBS has, such as snapshots, encryption, elastic volumes. And we've talked about how to optimize the performance of EBS volumes on your EC2 instances. I hope this session has been helpful for you. Thank you for watching.
Transcript source
YouTube auto captions
This transcript was extracted from YouTube's auto-generated caption track. The transcript below is server-rendered so it can be read, searched, cited, and shared without opening the original YouTube player.
Pull quotes
[0:00]Hello, my name is Paul and I'm a principal solutions architect at Amazon Web Services.
[0:00]And in this session, we're going to talk about Amazon EBS, which is our elastic block store service.
[0:00]This is going to be a 300 level session, so we're going to dive deep on several features of EBS.
[0:00]We're going to talk about the different volume types and their performance characteristics.
Use this transcript
Related transcript hubs
Watch on YouTube
Share
MORE TRANSCRIPTS



