对于小型项目,我试图避免 aws 中的这种新成本(公共 IPv4),因为它将占成本的很大一部分。
在我的 ECS 集群中,我使用 EC2 实例作为容量提供程序,因此,我按照此文档使每个新 EC2 实例使用 IPV6 而不是 IPV4 - 这很有效。
然而,这些实例并没有加入集群作为容量提供者,因此服务将无法正常运行。该集群在 IPV4 下运行良好。我在子网中尝试了不同的配置,例如:
- 启动时启用资源名称 DNS A 记录
- 启动时启用资源名称 DNS AAAA 记录
- 主机名类型:资源名称
- 主机名类型:IP 名称
- 启用 DNS64
此外,我的安全组已经支持两种类型的入站和出站(IPV4 / IPV6)
我是否遗漏了某些内容或者 ECS 不支持此配置(至少对于 EC2 而言)?如果是这种情况,您对如何降低 IPV4 成本有什么建议吗?例如,我可以使用 ECS 和 Fargate 来避免这种成本吗?
我知道 Fargate 成本比 EC2 大,但也许 EC2 + IPV4 可能比使用 IPV6 的 Fargate 更贵
编辑2:我能够,ping6 www.google.com
这意味着该实例具有互联网连接。但是,检查代理日志(/var/log/ecs/ecs-agent.log)时出现错误:
health check [HEAD http://localhost:51678/v1/metadata] failed with error: Head \"http://localhost:51678/v1/metadata\": dial tcp 127.0.0.1:51678: connect: connection refused" module=healthcheck.go
出于同样的原因,我遇到了同样的问题(感谢亚马逊)。
无法添加评论,但想知道它是否可能与 DNS64 有关,因为 DNS64 需要 NAT 网关。这意味着 AWS 的 ECS API 端点仅支持 IPv4。
您测试过 NAT 网关吗?尽管如此,NAT 网关的成本否定了这项工作的全部意义。
编辑:看起来是这种情况,ECS API 端点尚未获得 AAAA 记录(根据https://repost.aws/questions/QU36yKU_NRQR6aH_IFLcbV5Q/ecs-support-for-ipv6-only)。