我正在为一个必须与几 TB 的文件交互的 Web 应用程序寻找主机。我正在考虑的一个解决方案是将应用程序托管在 Amazon EC2 上,并附加多个 EBS 实例。这看起来可以解决我的问题,但由于 EBS 只能附加到一个 EC2 实例,我不确定如何在发生故障时增加应用程序的冗余。我希望使用负载均衡器在多个区域中使用多个 EC2 实例,但这似乎不可行,因为我不能让两个 EC2 实例与同一个 EBS 实例通信。
当使用带有 EBS 的 EC2 时,如何创建有弹性的应用程序?
答案1
解决此问题的方法有很多,但最简单的方法可能是拥有一个具有大量网络和存储 IO 带宽的主“存储”节点,然后通过 NFS 将其文件系统导出到您的应用程序节点。然后,所有应用程序节点都将具有相同的存储“视图”。
为了提高存储节点的弹性,您可以研究诸如 drbd 之类的技术(以使存储卷同步到热备用服务器),或者甚至可能是 Ceph 或 GlusterFS 之类的集群文件系统。
不用说,由于您使用的是 NFS,因此这只能在 VPC 内完成。但话又说回来,所有 EC2 客户都应该使用 VPC。