Amazon EBS Volume#

Keywords: AWS, EBS, Elastic Block Storage, Volume

What is EBS Volume#

数据卷灵活配置的虚拟移动硬盘, 可以将任何容量的硬盘, 挂载到任何机器上, 只需要几分钟时间. EBS 通常和 EC2 一起使用.

Volume Type#

SSD (固态硬盘):

  • EBS General Purpose SSD (gp2): 普通电脑的硬盘

  • EBS Provisioned IOPS SSD (io1): IO 密集型, 例如数据库应用

HDD (磁碟机硬盘):

  • Cold HDD (sc1): for large data that is infrequently accessed

  • Throughput Optimized HDD (st1): IO 密集型, streaming workload,

Reference:

EBS Volume Encryption#

  • EBS 使用 KMS 进行 Encryption at rest.

  • 只有在创建 Volume 的时候可以启动 Encryption, 创建后无法启动.

  • 只有部分 EC2 Instance Type 可以支持 Encryption (通常是那些高性能的).

  • 由于 RDS 实际上运行在 EC2 上, 也挂载了 EBS, 所以对数据库数据加密的原理, 和对 EBS 加密的原理实际上是一样的.

Following types of data are encrypted:

  • Data at rest inside the volume

  • All data moving between the volume and the instance

  • All snapshots created from the volume

  • All volumes created from those snapshots

Reference:

Launch EC2 with EBS Volume#

EC2 必定有一个 Root Device. 而 EC2 的启动方式有两种:

  1. instance store-backed instance: 虚拟机启动时跟虚拟机的 image 所在的盘一起启动作为磁盘. 启动了就不能 stop, 只能 terminate. 一旦 terminate 或者崩溃, 磁盘上的所有数据丢失. 常用于临时扩容, 无状态的机器, 比如 web 服务器.

  2. amazon ebs-backed instance: 虚拟机启动时, 挂载 EBS 作为磁盘. 启动之后可以 stop. 并且机器本身和数据相互独立, 机器挂掉了数据可以还在. 并且可以挂掉机器, 用另一个机器 + 原来的 ebs 重新启动. 常用于有状态, 长期存在的机器, 比如 cicd 服务器.

如果你用 CloudFormation 启动 EC2, BlockDeviceMapping 这一属性可以控制用哪种方式启动. 具体请参考: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-blockdevicemapping.html

EBS-backed 由于更加常用, 并且更加复杂, 我们详细介绍下使用 EBS-backed 的启动方式时, 如何配置 EBS.

Device name 是 EBS 卷在操作系统内的标识符, 这个目录在机器上会被 Linux 系统通过链接的方式拼接到主磁盘. 这与 Linux 的文件系统有关.