【问题标题】:AWS Cloud formation does not copy the data to the newly created stackAWS Cloud Formation 不会将数据复制到新创建的堆栈
【发布时间】:2018-03-08 07:25:13
【问题描述】:

在 AWS 云形成中,我使用云前工具。我可以使用该工具从现有资源创建云形成模板。然后使用模板创建堆栈。我用那个工具测试过。它可以工作,(因为它可以创建具有相同内存大小、相同卷大小、相同 VPC 设置和自动启动实例的实例)。但是卷中没有文件。

我是否必须创建现有卷的快照,从快照创建新卷,将其附加到新创建的实例,然后手动复制文件?

或者有没有更好的办法?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2


    【解决方案1】:

    我是否必须创建现有卷的快照,从快照创建新卷,将其附加到新创建的实例,然后手动复制文件?

    Cloudformation 供应资源,但不负责供应这些资源的内容 - 您必须自己做。

    您可以利用EC2 Userdata 在实例启动时手动从 S3 或其他存储库中提取文件。

    或者有没有更好的方法?

    如果您想在应用程序之间共享数据,EFS 始终是一种选择。不过,在您的情况下,使用 Userdata 可能是有效的。

    【讨论】:

    • 我阅读了 EC2 用户数据页面,我没有看到将用户数据从现有 EC2 复制到新创建的 EC2 的命令。我的用户数据是指已安装的程序、mysql 数据等。
    • 是否可以修改模板,使其指向我从现有图像创建的 AMI?以便在云形成堆栈创建过程中将用户数据复制到新的 EC2?
    • 如果我的 EBS 快照来自根 EBS 卷,可以吗?将卷挂载为兼容 EC2 实例的根卷,使用新的根卷启动 EC2 实例。
    • @styling 如果您从现有 EC2 创建 AMI,则可以将该 AMI 指定为新的 EC2 AMI。您不能一次将同一个 EBS 卷挂载到多个 EC2 上,但您可以对其进行快照并从快照创建一个新卷。
    • 那么我可以将新卷从快照挂载到新创建的 ec2 实例,作为根卷吗?请记住,从云形成中新创建的 ec2 实例已经有一个根卷。
    【解决方案2】:

    如果您希望启动新的 EC2 实例并自动加载软件,基本上有两种选择:

    • 使用预配置的 AMI,或
    • 使用启动脚本加载软件

    预配置的 AMI

    Amazon 系统映像 (AMI) 是磁盘的副本。启动新的 EC2 实例时,会选择一个 AMI,并且启动磁盘(以及可选的其他磁盘)会自动预加载 AMI 的内容。

    一种常见的做法是启动 EC2 实例并根据需要对其进行配置。然后,创建一个 AMI。此后,当应用程序需要新的 EC2 实例时,请使用预构建的 AMI 启动它。

    还有一些工具可用于自动构建 AMI,例如 Netflix AminatorPacker

    优点:新机器启动速度快,配置齐全。

    问题:每次更新软件时都需要创建新的 AMI。

    使用启动脚本加载软件

    当从标准的 Amazon 提供的 AMI(例如 Amazon Linux、Microsoft Windows)启动 Amazon EC2 实例时,AMI 上的软件会自动查看传递给 EC2 实例的用户数据。如果用户数据包含startup script,脚本将被执行——但仅在实例第一次启动时执行。这是在实例上安装软件的绝佳方式。

    您负责编写脚本。该脚本应在实例上安装您想要的任何工具、软件和数据。

    好处:更新您的软件?只需启动一个新实例,脚本就会安装最新版本的软件(假设您编写的脚本始终指向最新版本)。

    问题:启动新实例需要更长的时间,因为正在安装软件。

    【讨论】:

    • 我可以从现有的 ec2 实例创建快照。我可以将快照中的新卷作为根卷挂载到新创建的 ec2 实例吗?请记住,从云形成中新创建的 ec2 实例已经有一个根卷。 ——
    • AMI 与快照完全相同,但它可以用作根卷(并且可以包含多个卷)。因此,创建一个 AMI 而不是快照(或 来自快照的 AMI),在您启动机器时选择它,并且当机器启动时您的文件将在那里。
    • 启动机器时选择它,我们启动ec2实例时可以选择AMI吗?
    • 是的。如果您通过控制台启动实例,则在第一个屏幕上选择一个 AMI。通常您会使用 Amazon 提供的 AMI,但您可以改为选择 MyAMIs 来选择您之前创建的 AMI。如果您通过 API 调用启动实例,则 AMI 是指定参数之一。
    • 我正在使用云形成工具。它没有选择我的自定义 AMI 的选项。
    猜你喜欢
    • 1970-01-01
    • 2021-10-26
    • 2021-04-17
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    相关资源
    最近更新 更多