我不确定这是否是问这类问题的合适平台,但这是我的最后希望,因为我是AWS的新手。
我有要求:
给定:AMI ID(已安装my_software
,创建my_command.bat
以使用CLI运行my_software
)。
待办事项(每月重复):
- 从给定的
AMI-ID
(Windows)创建一个EC2实例(Windows) - 在运行生成
report.csv
和log.csv
文件的my_software
的实例中运行my_command.bat
文件 - 将
report.csv
发送到my_s3_bucket
,并登录到CloudWatch
- 终止实例。(停止是不够的)
请建议相同的架构。
我做了类似的事情,它的工作原理如下:
- 创建运行命令的docker镜像(它应该根据需要记录并写入s3)
- 创建一个可以提取图像并运行容器的批处理环境
- 创建Cloudwatch事件以按照所需的cron时间表运行作业
- 事件目标是SQS队列
- 创建一个lambda函数,用于响应SQS队列上的事件
- lambda函数提交批处理作业
请注意,理论上您可以从Cloudwatch事件规则调用Lambda函数,但由于有私有子网,我必须使用队列。
Batch Fargate非常适合这样做,因为它只会在您的工作运行时使用资源。如果需要使用EC2,请确保MinvCpus为零,以便实例在运行后终止。这可能需要几分钟的时间,你会被收取费用,所以法盖特可能更适合。