对于Amazon EC2上的实例,我不清楚从EBS和实例商店获得了哪些好处。如果有什么区别的话,似乎EBS更有用(停止,启动,坚持+更好的速度),成本差异相对较小…?另外,考虑到EBS仍然相对较新,是否有任何指标可以衡量现在使用EBS的人更多?


当前回答

我自己刚开始使用EC2,所以不是专家,但亚马逊自己的文档说:

我们建议您将本地实例存储用于临时数据,对于需要较高持久性的数据,我们建议使用Amazon EBS卷或将数据备份到Amazon S3。

我特别强调。

我做的数据分析比虚拟主机多,所以持久性对我来说不像对网站那么重要。考虑到亚马逊自身的区别,我不会认为EBS适合所有人。

在我用完这两种方法后,我会试着再次称重。

其他回答

我们喜欢实例存储。它迫使我们使实例完全可回收,并且我们可以轻松地在给定AMI上从头构建服务器的过程自动化。这也意味着我们可以很容易地交换ami。此外,EBS仍然时不时地存在性能问题。

大多数人选择使用EBS支持的实例,因为它是有状态的。这是更安全的,因为您在其中运行和安装的所有内容都将在停止/停止或任何实例故障中幸存下来。

实例存储是无状态的,在任何实例失败的情况下,您将丢失其中的所有数据。但是,由于实例卷绑定到虚拟机运行的物理服务器上,因此它是免费的,而且速度更快。

底线是您应该几乎总是使用EBS支持的实例。

这是为什么

EBS backed instances can be set so that they cannot be (accidentally) terminated through the API. EBS backed instances can be stopped when you're not using them and resumed when you need them again (like pausing a Virtual PC), at least with my usage patterns saving much more money than I spend on a few dozen GB of EBS storage. EBS backed instances don't lose their instance storage when they crash (not a requirement for all users, but makes recovery much faster) You can dynamically resize EBS instance storage. You can transfer the EBS instance storage to a brand new instance (useful if the hardware at Amazon you were running on gets flaky or dies, which does happen from time to time) It is faster to launch an EBS backed instance because the image does not have to be fetched from S3. If the hardware your EBS-backed instance is scheduled for maintenance, stopping and starting the instance automatically migrates to new hardware. I was also able to move an EBS-backed instance on failed hardware by force-stopping the instance and launching it again (your mileage may vary on failed hardware).

我是Amazon的忠实用户,在技术beta版一出来,我就把所有实例都切换到EBS支持的存储。我对结果非常满意。

EBS仍然可能失败——这不是一颗银弹

Keep in mind that any piece of cloud-based infrastructure can fail at any time. Plan your infrastructure accordingly. While EBS-backed instances provide certain level of durability compared to ephemeral storage instances, they can and do fail. Have an AMI from which you can launch new instances as needed in any availability zone, back up your important data (e.g. databases), and if your budget allows it, run multiple instances of servers for load balancing and redundancy (ideally in multiple availability zones).

什么时候不做

At some points in time, it may be cheaper to achieve faster IO on Instance Store instances. There was a time when it was certainly true. Now there are many options for EBS storage, catering to many needs. The options and their pricing evolve constantly as technology changes. If you have a significant amount of instances that are truly disposable (they don't affect your business much if they just go away), do the math on cost vs. performance. EBS-backed instances can also die at any point in time, but my practical experience is that EBS is more durable.

我自己刚开始使用EC2,所以不是专家,但亚马逊自己的文档说:

我们建议您将本地实例存储用于临时数据,对于需要较高持久性的数据,我们建议使用Amazon EBS卷或将数据备份到Amazon S3。

我特别强调。

我做的数据分析比虚拟主机多,所以持久性对我来说不像对网站那么重要。考虑到亚马逊自身的区别,我不会认为EBS适合所有人。

在我用完这两种方法后,我会试着再次称重。

99%的AWS设置是可回收的。所以对我来说,如果我终止一个实例并不重要——什么都不会丢失。例如,我的应用程序自动部署在SVN的实例上,我们的日志被写入中央syslog服务器。

我认为实例存储的唯一好处是节省成本。否则,ebs支持的实例胜出。埃里克提到了所有的好处。


今天,我会用不同的措辞来回答这个问题。

在过去一年左右的时间里,我在使用ebs支持的实例方面没有什么好的经验。AWS的最后一次停机也几乎破坏了EBS。

我猜像RDS这样的服务也使用某种EBS,这似乎在大多数情况下都是可行的。在我们自己管理的情况下,我们已经尽可能地摆脱了EBS。

摆脱一个扩展,我们移动了一个数据库集群回铁(=真实硬件)。我们的基础设施中仅剩下一个DB服务器,我们将多个EBS卷分条到一个软件RAID中,并每天进行两次备份。不管在备份之间会损失多少,我们都可以接受。

EBS是一种有点不可靠的技术,因为它本质上是一个网络卷:从远程连接到服务器的卷。我并不是在否定使用它所做的工作——这是一个了不起的产品,因为从本质上讲,无限持久存储只是一个API调用。但是它几乎不适合I/O性能是关键的场景。

除了网络存储的行为方式外,所有网络都在EC2实例上共享。实例越小(例如t1。micro, m1.small)会变得更糟糕,因为您在实际主机系统上的网络接口是由运行在其上的多个虚拟机(=您的EC2实例)共享的。

当然,实例越大,效果就越好。这里更好的意思是在合理范围内。

当需要持久性时,我总是建议人们使用S3之类的东西来集中实例。S3是一个非常稳定的服务。然后将实例设置自动化到可以引导新服务器并自行准备就绪的程度。这样就没有必要使用比实例存活时间更长的网络存储。

因此,总而言之,我认为ebs支持的实例没有任何好处。我宁愿增加一分钟的引导,然后运行一个潜在的SPOF。