如何将 Amazon 微型实例移动到小型实例?

如何将 Amazon 微型实例移动到小型实例?

我想将我的实例移动到微型实例,再移动到小型实例,但是当我尝试基于微型实例 AMI 启动新的 AMI 时,它只为我提供 64 位实例的选项。

我的初始 ami 基于 ubuntu 10.04 图像。

64 位和 32 位实例之间不能移动吗?

是否可以使用负载平衡器让 32 位实例和 64 位实例协同工作?

我有一个网站/网络应用,我将向其上传大量数据。我将从 65GB 的图像开始,然后增加到 100GB 以上。

我不确定哪种实例类型最适合这种情况。我打算使用负载平衡器和自动扩展来在负载较高时增加实例数量。

另外,当使用负载均衡器时,其中一个 AMI 实例是否会成为主映像,而其余实例则会充当它的克隆?

答案1

您只能在创建映像时所用的相同架构(32 位或 64 位)上启动映像。微型实例可以是 32 位或 64 位,但如果您在创建时使用了 64 位映像,那么您就只能使用 64 位了。如果您的预算允许,您可以使用“大型”实例而不是“小型”实例。

您完全可以对不同类型的实例进行负载平衡(使用 Amazon 的 ELB 或其他实例,例如 HAProxy、Squid、varnish 等)。

我猜你最大的问题是你打算把这么多的数据存放在哪里。如果你打算有多个实例提供相同的内容(并上传到),那么你将需要共享存储。您可以使用类似 GlusterFS 的东西在您的实例之间共享数据,或者您可以拥有一个由您的 Web 实例 NFS 挂载的“存储服务器”。

自动扩展的工作原理是设置一个“启动映像”,即“主”映像的 AMI ID。然后,它会在触发事件(即负载过高)下启动此映像。重要的是要从概念上思考这是什么意思 - 这意味着启动的每个实例都将基于原始映像,并且不会有新数据或更新的配置等。

所以,总结一下 - 如果您要使用多个 Web 服务器,那么您需要某种形式的共享存储。通常这是数据库(可能在 Amazon 的 RDS 服务上),但听起来您需要存储的是大型“文件”,而不是数据,因此您需要分布式存储或存储服务器。

答案2

根据Amazon EC2 实例描述页面,微型实例有 32 位和 64 位版本,而小型实例类型只有 32 位版本。这就是您无法在小型实例类型上启动初始 64 位 AMI的原因。

  • 更新:AWS 同时推出了64 位无处不在即每个实例类型都可以与 64 位图像一起使用,这确实让您能够更轻松地垂直扩展(扩展到更大和更小的实例),而无需维护并行(32 位和 64 位)AMI(看EC2 更新:新的中型实例、64 位 Ubiquity、SSH 客户端了解详情)。

关于您的负载均衡器问题:这在很大程度上取决于您的使用模式 - 32 位和 64 位实例类型都可以在负载均衡器后面协同工作而不会出现任何问题。但是,我建议坚持使用一种实例类型。一般来说,如果您只是进行上传而不进行图像处理或类似操作,我认为您主要关注的应该是 I/O 和内存。我建议您尝试一下,使用您的 Web 应用程序所需的最小设置,并对两种实例类型进行一些负载测试。

相关内容