对所有 AWS Data Pipeline 活动使用相同的 EC2 实例

Use same EC2 instance for all AWS Data Pipeline activities

我正在使用 AWS Data Pipeline 将一些 CSV 数据从 S3 导入到 Redshift。我还添加了一个 ShellCommandActivity 以在复制 activity 完成后删除所有 S3 文件。我附上了整个过程的照片。

一切正常,但每个 activity 启动它自己的 EC2 实例。复制命令完成后,ShellCommandActivity 是否有可能重用与 RedshiftCopyActivity 相同的 EC2 实例?

谢谢!

除非您可以在 shell 或 CLI 中执行所有活动,否则不可能在同一实例中执行所有操作。

我可以给出的一个建议是转向新技术。 AWS Data Pipeline 已过时(已有 4 年历史)。您应该使用 AWS Lambda,这将花费您所支付费用的一小部分,并且您可以在文件上传到 S3 后立即将文件加载到 Redshift 中。清理是自动进行的,Lambda 比 AWS Data Pipeline 强大得多。教程A Zero-Administration Amazon Redshift Database Loader就是你想要的。是的,有一些学习曲线,但正如标题所示,它是零管理负担。

为了使 ShellCommandActivity 在同一个 EC2 实例上 运行,我使用 Architect 编辑了我的 ShellCommandActivity,并为 Runs On 选项选择了 Ec2Instance。 ShellCommandActivity 会自动映射到与 RedshiftCopyActivity 相同的 EC2Instance。现在整个过程是这样的:

谢谢!