【发布时间】:2021-09-28 07:33:26
【问题描述】:
我有一个需要部署的 docker 映像,同时保持一致的 DNS 记录。最重要的是,我想要一个硬编码的实例数量(例如,2)。我喜欢 ECS 的易用性以及 ECS 代理维护正常运行时间,但是负载均衡器对于单个实例来说是多余的。到目前为止,我只是创建了一个最小/最大/期望为 1 的 ASG,所以没有任何冲突的问题。
对于自动缩放组中的实例编号有一个非常激烈的论据(here 就是一个例子),这是有道理的,尽管我认为这是一个无法避免的非常可靠的用例。
我已成功修改 meltwater/terraform-aws-asg-dns-handler,为 ASG 中的单个 ECS 实例提供硬编码的 DNS 记录(例如 instance-1.example.com),尽管它不是很漂亮。为了让两个实例正常工作(instance-1.example.com 和 instance-2.example.com),我想我有两个选择:
- 创建一个 hacky 解决方案来读取我的 Lambda 函数中的现有 Route53 记录,以“确定性地”决定在 ASG 生命周期挂钩中分配我的实例的索引(this 可能是一个好的开始)
- 创建两个 ECS 集群,每个集群都有一个实例,并使用两个单独的 Lambda 函数
这两个选项对我来说似乎都不是非常可靠的选择,所以我想知道是否有更好的方法以类似 ECS 的方式部署单个 Docker 容器,我可以将 DNS 记录附加到。
就上下文而言,“两个 ECS 集群”方法可以正常工作,但我会这样做三到四次,所以我最终会在几个其他集群之上建立 8 个 ECS 集群,这至少可以说是不方便。
【问题讨论】:
标签: amazon-web-services docker amazon-ecs aws-auto-scaling