Emr*_*ram 2 amazon-ecs amazon-elb aws-lambda aws-fargate
我正在尝试使用 cloudformation 作为带有 Fargate 的 ECS 服务加载一些休息服务。我不想要这些服务的公共域名。我将通过我的 AWS Lambda 函数在内部访问它们。我意识到AWS Fargate需要负载均衡,负载均衡器需要证书,证书需要域名。可能我遗漏了一些东西,但我尝试在没有负载均衡器的情况下加载 AWS Fargate,但无法从 Lambda 访问它。
问题是; 如何在没有负载均衡器的情况下使用 Fargate 在 ECS 上运行我的服务?
使用ECS 服务发现设置私有 DNS 记录,使您的应用程序能够发现服务端点,而无需使用负载均衡器或创建公共 DNS 记录。服务发现的工作原理是在 Route 53 中创建可从 VPC 内查询的私有 DNS 记录,以便您可以找到服务中运行的所有任务的 IP 地址。如果您正在运行多个任务,您将获得多个 A 记录,每个任务一个,因此您需要通过在返回集中选择一个随机记录来进行客户端负载平衡。
上面链接的文档有点模糊,因此这里有一些更具体的说明:在控制台中创建服务时,在步骤 2:配置网络中,选中启用服务发现集成复选框。然后指定“创建新的私有命名空间”并为您的命名空间提供名称,例如foo.app. 然后选择“创建新的发现服务”单选按钮,并指定服务的名称(例如service1)。将服务发现(可选)部分中的其余设置保留为默认值。
现在,您可以在 VPC 内查找service1.foo.app并获取包含服务中运行的所有任务的 IP 地址的 A 记录。
这篇中等文章还很好地总结了如何设置服务发现。
| 归档时间: |
|
| 查看次数: |
3850 次 |
| 最近记录: |