可扩展体系结构的建议



我有3个容器化的应用程序。所有这些应用程序都是一个简单的python脚本,可以在不同的时间调用api。例如,App1:每小时调用,App2:每30分钟调用,App3:每分钟调用。现在,我们为每个应用程序都有一个ec2实例,这是可以的,因为我需要应用程序在不同的AWS ec2实例上运行,因为我不希望我的IP被列入黑名单。但是现在我该如何扩展应用程序呢?例如,我需要应用程序1的3个实例。

我目前使用Terraform来创建EC2实例,虽然这可以工作,但我不知道如何自动更新每个EC2实例上的图像。

我尝试使用AWS ECS来扩展容器,但这需要它共享IP地址(我希望这些应用程序生活在不同的VMS(EC2实例(中,这样IP就不会出现被列入黑名单的问题。(和其他应用程序,我不想那样。

什么工具或体系结构最能帮助我完成这些应用程序的扩展?

对于您的具体情况,我建议使用AWS Fargate ECS+Cloudwatch事件cron触发器(Scheduled Fargate ECS任务(。

Fargate实例默认具有awsvpc网络模式,这意味着如果您在具有公共IP分配的公共子网中运行它们,则每个容器实例将检索唯一的公共IP(通过专用的自动附加ENI-弹性网络接口(。

此外,在Fargate上运行任务将使您能够利用更方便的应用程序docker封装,同时保持管理&操作要求低-因为Fargate是一个无服务器的容器调度器,而且它比操作AWS EC2实例需要更少的精力。

您将需要3个ECS资源:

  1. 集群
  2. 容器定义的模板资源
  3. 任务定义资源

和3个CloudWatch资源:

  1. aws_cloudwatch_event_rule
  2. aws_cloudwatch_event_target
  3. aws_cloudwatch_log_group

在Terraform中使其工作,+ECR repo/s用于存储图像伪像。

最新更新