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

所以我想了解更多关于AWS EC2 Auto Scaling的知识,并试图找出实例之间的存储是如何工作的。 创build新实例时,它看起来像是每个实例的新EBS卷。

如果我在EC2 Auto Scaling上运行Web服务器,如何将我的内容传输到每个创build的新EC2实例。 有没有办法在所有EC2 Auto Scaling实例中使用一个EBS卷? 我已阅读关于弹性文件系统,但我不知道如何将卷添加到创build新实例。

在此先感谢您的帮助。

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

EFS只是像nfs或samba这样的networking文件系统,你可以用你的fstab挂载它。 但是你必须检查你的地区是否有EFS可用!

据我所知,你正试图让所有的机器之间共享文件存储。 在这种情况下,你有几种方法来实现它:

  • 如果你不需要常规的文件系统,你可以使用S3。 这是AWS中的推荐方式。 但是S3不是文件系统,而是api的对象存储,所以你不能使用普通的方法来访问文件,但你必须使用亚马逊的SDK。 S3具有相当大的无限大小,并且在多次访问时没有问题。 您甚至可以使用S3作为CloudFront CDN的后端。

  • 如果你需要常规的文件系统,你有几种方法。 你可以使用EFS,或者你可以用gluster构build一些存储虚拟机,并把它挂载到你的实例上。 你definitelly将需要定制的AMI与挂载在fstab,准备HA,备份等,但它像常规的FS? 它在机器A上共享和即时创build,可以立即在机器B上访问

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

  • 如果您需要在所有EC2中同步存储,并且不想设置某些存储EC2,则可以在群集中运行rsync。 这种方式有点棘手,并且在大量实例的情况下可能是有问题的。 您也无法实现与rsync的即时共享。

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