如何在数百个AWS实例上拆分数据文件?

时间:2018-11-30 20:07:32

标签: amazon-web-services

我有一个json文件,其中包含成千上万的个人工作详细信息。这些作业可以由一个脚本执行,并且可以相对快速地完成。

我计算出,AWS中的500个实例将在1小时内完成工作,并使我的费用负担得起。

如何让每个实例运行不同的数据块?

1 个答案:

答案 0 :(得分:5)

一种选择是在单个RunInstances请求中从同一AMI启动多个EC2实例,并使每个EC2实例从S3读取相同的JSON文件。

然后,每个实例将从其元数据服务中query自己建立一个ami-launch-index。该ami-launch-index在与给定RunInstances请求相关的每个EC2实例上将是唯一的,并且将从0到N-1编号(其中N是您启动的实例数)。

然后,每个EC2实例都可以根据其本地ami-launch-index(称为K)处理JSON文件中的作业列表的子集,例如索引K,K + N,K处的作业+ 2N,...

另一个选择是编写一个脚本,该脚本预先解析JSON文件,确定N个EC2实例中的每个实例应处理哪些作业,然后将该列表的子集传递到用户数据中的每个EC2实例中,例如将其写入实例上的json文件。在实例上运行的应用程序将读取该本地文件并处理相关作业。