我需要每隔几个小时备份 6 个 DynamoDB 表。我从模板创建了 6 个管道,它运行得很好,除了它创建了 6 个或更多的虚拟机,这些虚拟机大部分都在运行。这不是我能承受的经济。
有没有人有优化这种场景的经验?
我需要每隔几个小时备份 6 个 DynamoDB 表。我从模板创建了 6 个管道,它运行得很好,除了它创建了 6 个或更多的虚拟机,这些虚拟机大部分都在运行。这不是我能承受的经济。
有没有人有优化这种场景的经验?
想到的一些解决方案是:
一:为确保 EC2 资源被终止,您可以在 EC2 资源定义上设置 terminateAfter 属性。此处讨论终止后的语义 - AWS Data Pipeline 如何运行 EC2 实例?.
二: AWS 论坛上的这个帖子讨论了数据管道如何使用现有的 EC2 实例。
三:使用备份管道模板始终为从单个源读取并写入单个目标的备份创建具有单个Activity的单个管道。您可以在 AWS 控制台中查看管道的 JSON 源,并编写一个具有多个 Activity 实例的类似管道 - 一个用于您要备份的每个表。由于管道定义将只有一个 EMR 资源,因此只有该 EMR 资源将完成所有活动的工作。
您可以在 Ec2Resource 对象上设置字段 maxActiveInstances。
maxActiveInstances 组件的最大并发活动实例数。对于活动,将此设置为 1 以严格的时间顺序运行实例。大于 1 的值允许活动的不同实例同时运行,并要求您确保您的活动可以容忍并发执行。
看到这个:http ://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-ec2resource.html
阿拉文德。R