【发布时间】:2018-03-19 21:04:58
【问题描述】:
我有一个网络爬虫,它是一个 Docker 映像。我想使用 boto 创建一个 EC2 实例,部署我的爬虫,运行爬虫,然后在它完成后终止实例。
我目前的想法是这样的:
- 使用包含 Docker 的 AWS 映像启动新的 EC2 实例。
- 使用诸如 Fabric 之类的东西通过 SSH 连接到实例并安装 Docker 映像。
- 使用相同的 SSH 连接运行我的命令来启动爬虫
- 让网络爬虫在完成时删除它自己的实例。
一些细节:
- 我真的需要使用 Fabric 之类的工具通过 SSH 连接到我的实例并运行命令吗?
- 如何选择当前正在运行脚本的实例?
self实例,如果你喜欢的话。 - 有更好的方法吗?
【问题讨论】:
-
您可以使用 userdata 在 EC2 实例中运行您的脚本。要获取实例 ID,请查询实例元数据 (
curl http://169.254.169.254/latest/meta-data/instance-id)。您需要将 IAM 角色附加到具有ec2:TerminateInstances权限的 EC2 实例。
标签: python amazon-web-services boto boto3