如何将文件复制到 aws ec2 实例并在用户数据中使用它?

如何将文件复制到 aws ec2 实例并在用户数据中使用它?

我有一个每天生成的应用程序的 rpm 文件,我想使用 terraform 使用 ec2-instance 的用户数据将其安装在 EC2 服务器上。

我在搜索结果中得到了文件提供者,但发现它会执行用户数据之后的步骤。

对于如何做到这一点有什么建议吗?

答案1

选项一 - 使文件可用

根据您在评论中提供的信息,我认为您最好的或唯一的选择是将 RPM 文件放在用户数据脚本可以访问的 Web 服务器上。如果这是私有 rpm,我会将其放在 S3 上,并将存储桶配置为 Web 服务器,在 VPC 中使用 S3 端点,并确保 S3 存储桶仅接受来自该端点的请求。

选项二 - 创建 AMI

您是否考虑过制作黄金映像,而不是每次实例启动时在用户数据脚本中安装 RPM?这样,RPM 只需手动安装一次,然后创建的每个实例都会安装 RPM。另一个优点是实例启动速度更快。

执行此操作的一般步骤如下:

  • 创建实例
  • 手动安装 RPM
  • 停止实例
  • 创建映像/AMI

然后,您使用自定义 AMI 来启动新实例。

即使这不能解决您的问题,也可能帮助将来遇到类似问题的人。

相关内容