在ec2实例启动时创建文件

时间:2018-11-25 10:32:09

标签: python amazon-ec2 boto3

我的本​​地计算机上有一个文件file.txt

我想在ec2实例启动时自动创建具有相同内容的相同文件(例如,在根目录中)。

UserData函数的create_instances参数可在实例启动时自动执行脚本:

UserData = '''#/bin/bash
              echo "content" >> /file.txt'''

但是,此脚本将直接在实例中执行,因此无法在本地计算机上了解file.txt

1 个答案:

答案 0 :(得分:2)

您需要问自己“ Internet上的计算机如何访问我的本地计算机上的file.txt?”

如果您遵循良好的安全性,答案是:“不能!”

相反,请考虑放置file.txt的位置,以便EC2实例可以获得访问权限。简单的答案是将其放置在Amazon S3中,并授予实例访问Amazon S3中文件的权限。

该过程将是:

  • 创建(或使用现有的)Amazon S3存储桶
  • file.txt上载到存储桶
  • 启动EC2实例时,为其分配一个IAM角色,该角色有权访问存储桶中的file.txt
  • 在“用户数据”脚本中,将文件从S3复制到实例

例如:

aws s3 cp s3://my-bucket/file.txt file.txt

然后该文件在EC2实例上可用。

将来,您可以在S3存储桶中更新file.txt。任何新实例都会自动检索此文件的最新版本。