我有一个A
带有 200GB SSD 的常规 EC2 实例,其中充满了数据。我使用该磁盘创建了一个 AMI,并使用该 AMI 启动了另一个B
具有相同规格的 EC2 实例。
B
几乎立即启动,这让我感到惊讶,因为我认为 AWS 将我的 200GB EBS 复制到与新实例对应的 SSD 时会有延迟。但是我注意到 IO 非常慢B
。解析B
.
为什么会这样,我该如何克服呢?对于需要快速磁盘 IO 的应用程序来说,它太慢了。
我有一个A
带有 200GB SSD 的常规 EC2 实例,其中充满了数据。我使用该磁盘创建了一个 AMI,并使用该 AMI 启动了另一个B
具有相同规格的 EC2 实例。
B
几乎立即启动,这让我感到惊讶,因为我认为 AWS 将我的 200GB EBS 复制到与新实例对应的 SSD 时会有延迟。但是我注意到 IO 非常慢B
。解析B
.
为什么会这样,我该如何克服呢?对于需要快速磁盘 IO 的应用程序来说,它太慢了。
发生这种情况是因为新创建的 EBS 卷是从 S3 按需构建的:当 EC2 第一次从该卷中读取一个块时,它会从 S3 中检索。加载所有块后,您才能获得“完整”的 EBS 性能。顺便说一句,对于从快照恢复的大型数据库来说,这是一个巨大的问题。
一种解决方案可能是快速快照恢复。尽管文档没有描述幕后发生的事情,但我的猜测是他们从现有的 EBS 映像中进行了并行磁盘复制。但是,您需要为每个快照每小时支付 0.75 美元,并且限制为每小时 10 次恢复。
鉴于您在另一个问题中描述的用例,我认为最好的解决方案是保留您为工作启动和停止的按需实例。假设您使用的是 Linux,则按秒收费,因此如果您每小时只运行 10-20 分钟,您将按比例支付费用。与现场实例不同,您将知道机器将始终可用并且始终能够完成工作。
另一种选择是让现场实例继续运行。如果您每小时的大部分时间都在运行,那么关闭实例并没有真正节省那么多。