使用 Route53 SRV 将 AWS CloudFront 指向 ECS

Pointing AWS CloudFront to ECS with Route53 SRV

我想知道如何使用服务发现(带有 SRV 记录的 Route 53)将 AWS CloudFront 指向 AWS ECS 容器。

ECS 基于 Spot EC2,没有负载均衡器。

容器上架构 运行 的建议方法是将流量从 AWS ELB 转发到容器。

如果您将 ECS 与服务发现结合使用,则写入的记录实际上会写入私有托管区域,该区域无法在它所附加的 VPC 之外访问。

此外,容器是短暂的,使用 spot 实例会进一步增加容器可能随时终止的风险。如果实例面向 public,则需要将 Elastic IP address 关联到它,以便它可以保留 IP 地址。

您需要为此 EIP 创建一个 A record 以便 CloudFront 能够使用它,此 A 记录应具有 CloudFront 应解析的域的值,并且必须位于 public 托管区域。

在您的 CloudFront 分配中,原始值将设置为您在上一步中设置的域名。

您可以为 Fargate 启用服务发现。它使用CloudMap,会自动在其中创建一个托管区域和入口。这是在没有负载均衡器和黑客的情况下做到这一点的唯一方法。另一种方法是使用 lambda 函数,它会在容器创建和 IP 地址分配时更新 Route53。