如何解决关于可扩展架构的建议
我有3个容器化的应用程序。所有这些应用程序都是一个简单的python脚本,可在不同时间调用api。例如,App1:每小时呼叫一次,App2:每30分钟呼叫一次,App3:每分钟呼叫一次。现在,每个应用程序都有一个ec2实例,这是可以的,因为我不希望将IP列入黑名单,因此我需要使这些应用程序在不同的AWS EC2实例上运行。但是现在我将如何扩展应用程序?例如,我需要3个应用程序1的实例。
我目前正在使用Terraform创建EC2实例,尽管可以正常工作,但我不知道如何在每个EC2实例上自动更新映像。
我尝试使用AWS ECS扩展容器,但这要求它共享IP地址(我希望这些应用程序驻留在不同的VMS(EC2实例)中,这样IP不会被列入黑名单。 )与其他应用程序一起使用,而我则不需要。
哪些工具或体系结构最能帮助我完成这些应用程序的扩展?
解决方法
对于您的特定情况,我建议使用AWS Fargate ECS + Cloudwatch事件cron触发器(预定的Fargate ECS任务)。
Fargate实例默认情况下具有awsvpc
网络模式,这意味着如果您在具有公共IP分配的公共子网中运行它们,则每个容器实例将检索唯一的公共IP(通过专用的自动附加的ENI-弹性网络接口)。
此外,在Fargate上运行任务将使您能够利用应用程序的更便捷的Docker打包,同时保持较低的管理和操作要求-因为Fargate是一种无服务器的容器调度程序,并且比操作AWS EC2实例所需的精力更少
您将需要3个ECS资源:
- 集群
- 用于容器定义的模板资源
- 任务定义资源
和3个CloudWatch资源:
-
aws_cloudwatch_event_rule
-
aws_cloudwatch_event_target
-
aws_cloudwatch_log_group
在Terraform中使其正常运行,+ ECR回购用于存储图像伪像。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。