在AWS云形成中,我使用云端工具。我可以使用该工具从现有资源创建云形成模板。然后使用模板创建堆栈。我用那个工具测试过。它可以工作,(因为它可以创建具有相同内存大小,相同卷大小,相同VPC设置和自动启动实例的实例)。但是卷中没有文件。
我是否必须创建现有卷的快照,从快照创建新卷,将其附加到新创建的实例,然后手动复制文件?
还是有更好的方法吗?
答案 0 :(得分:1)
我是否必须创建现有卷的快照,从快照创建新卷,将其附加到新创建的实例,然后手动复制文件?
Cloudformation是配置资源,但不负责配置这些资源的内容 - 您必须自己做。
您可以利用EC2 Userdata在实例启动时手动从S3或其他存储库中提取文件。
还是有更好的方法吗?
如果您想在应用程序之间共享数据, EFS 始终是一个选项。但是,在您的情况下,使用Userdata可能会有效。
答案 1 :(得分:1)
如果您希望在自动加载软件的情况下启动新的EC2实例,基本上有两种选择:
预先配置的AMI
亚马逊机器映像(AMI)是磁盘的副本。启动新的EC2实例时,会选择AMI,并且引导磁盘(以及可选的其他磁盘)会自动预加载AMI的内容。
通常的做法是引导EC2实例并根据需要进行配置。然后,创建一个AMI。此后,当应用程序需要新的EC2实例时,使用预先构建的AMI启动它。
还有一些工具可用于自动构建AMI,例如Netflix Aminator和Packer。
好处:新机器快速启动,完全配置。
问题:每当您更新软件时都需要创建新的AMI。
使用启动脚本加载软件
当从亚马逊提供的标准AMI(例如Amazon Linux,Microsoft Windows)启动Amazon EC2实例时,AMI上的软件会自动查看传递给EC2实例的用户数据。如果用户数据包含startup script,则将执行脚本 - 但仅在第一次启动实例时执行。这是在实例上安装软件的绝佳方法。
您负责编写脚本。该脚本应该在实例上安装您想要的任何工具,软件和数据。
优势:更新您的软件?只需启动一个新实例,脚本将安装最新版本的软件(假设您已编写脚本以始终指向最新版本)。
问题:由于正在安装软件,因此启动新实例需要更长时间。