AWS EC2 Auto Scaling 存储上的 Web 服务器

Cha*_*ish 3 amazon-ec2 amazon-ebs amazon-web-services

因此,我正在尝试了解有关 AWS EC2 Auto Scaling 的更多信息,并试图弄清楚实例之间的存储究竟是如何工作的。创建新实例时,每个实例看起来就像一个新的 EBS 卷。

如果我在 EC2 Auto Scaling 上运行 Web 服务器,如何将我的内容传输到创建的每个新 EC2 实例。有没有办法在所有 EC2 Auto Scaling 实例中使用一个 EBS 卷?我已阅读有关弹性文件系统的信息,但我不确定如何在创建新实例时将卷附加到它们。

在此先感谢您的帮助。

Ond*_*idr 5

不可以,EBS 只能连接到一个 EC2 实例。你可以把它想象成普通的硬盘——它也只能连接到一台机器上。您可以在实例之间切换 EBS,但不能将其附加到多个实例。

EFS 只是类似于 nfs 或 samba 的网络文件系统,您可以使用 fstab 挂载它。但是您必须检查您所在地区是否提供 EFS!

据我了解,您正在尝试在所有机器之间共享文件存储。在这种情况下,您有几种方法可以实现它:

  • 如果您不需要常规文件系统,则可以使用 S3。这是 AWS 中推荐的方式。但是S3不是文件系统,它是带有rest api的对象存储,因此您不能使用常规方法访问其上的文件,而必须使用amazon SDK。S3 的大小不受限制,并且多次访问没有问题。您甚至可以使用 S3 作为 CloudFront CDN 的后端。

  • 如果您需要常规文件系统,您有几种方法。您可以使用可用的 EFS,也可以使用 gluster 构建一些存储虚拟机并将其挂载到您的实例。您肯定需要在 fstab 中挂载的自定义 AMI、准备 HA、备份等。但它像常规 FS 一样工作吗?它是共享和即时的 - 在机器 A 上创建的文件可以在机器 B 上立即访问

  • 如果您只需要将您的应用程序部署到新启动的 EC2,您可以使用 CodeDeploy 或 OpsWorks 告诉自动调用组将您的应用程序部署到新的 EC2 上。但它仅适用于数量有限的发行版,我认为仅适用于 Amazon Linux、RHEL 和 Ubuntu。

  • 如果您需要在所有 EC2 之间同步该存储并且不想设置某些存储 EC2,您可以只运行 rsync acccross cluster。这种方式有点棘手,并且在大量实例的情况下可能会出现问题。您也无法通过 rsync 实现即时共享。

推荐的解决方案取决于您的需求,我正在使用两个带有大型 EBS 和复制的 gluster 卷的 EC2 实例,这些实例安装在我的所有应用程序服务器上。它运作良好。