通过用户数据方法将文件从 S3 复制到 EC2

Copying File From S3 To EC2 by User Data Approach

我一直在寻找这个任务的解决方案,我发现所有我不想要的 CLI 方法。

我只想:

我有一个 S3 Bucket,里面有一个私有文件,文件可以是 image/zip 任何文件。

我希望当我启动任何 EC2 实例时,它应该将该文件从 S3 存储桶带到 EC2 实例目录。

为此,我只想使用 EC2 用户数据方法。

Amazon EC2 中的用户数据 字段将信息传递给实例上的应用程序 运行 可访问的实例。

使用 Amazon 提供的 AMI(例如 Amazon Linux 2)启动的 Amazon EC2 实例包括一个名为 Cloud-Init 的程序,该程序查看用户数据,如果提供脚本,运行这是第一次启动实例时的脚本。

因此,您可以配置一个脚本(通过用户数据传递),该脚本将在实例首次启动时 运行。该脚本将 运行 作为 root 用户。您的脚本可以使用 AWS Command-Line Interface (CLI) 从 Amazon S3 复制文件,如下所示:

#!
aws s3 cp s3://my-bucket/foo.txt /home/ec2-user/foo.txt
chown ec2-user foo.txt

请注意,您将需要分配 IAM 角色 给有权访问存储桶的实例。 AWS CLI 将使用这些权限进行文件复制。

您提到您不想使用 AWS CLI。相反,您可以使用首选编程语言(例如 Python)编写调用 Amazon S3 API 的程序,但使用 CLI 会简单得多。