AWS Cloud Map 允许您为 VPC 设置一些命名空间,然后将该命名空间内的名称分配给各个服务。这些名称可以是 A) 仅可通过 API 调用私下发现,B) 可通过 API 调用或通过 VPC 内的 DNS 私下发现,或 C) 可通过公共 DNS 和 API 调用发现。ECS可以与云地图交互,自动注册服务。所有这些在 AWS ECS 中称为服务发现。
AWS ECS 还有一个相对较新的东西,称为Service Connect。它利用 Cloud Map,但还向您的 ECS 服务添加了 sidecar“代理”容器,从而有效地创建了自动服务网格。
我使用 CloudFormation 将 Service Connect 与 ECS 结合使用。在我的 CloudFormation 中, AWS::ECS::Cluster我配置了ServiceConnectDefaults我想要使用的 Cloud Map 命名空间,例如example.internal. 然后我设置了下的定义enabled: true,以及一些额外的详细信息,例如提供服务/端口的名称。假设我已经命名了我的 service/port ,我相信现在在同一 VPC 中使用 Service Connect 的其他一些服务可以连接到,并且 sidecar-proxy 会找出要连接到的某个实例,甚至无需使用 DNS!(我还没有测试过;我首先想对当前的问题进行一些澄清。)AWS::ECS::ServiceServiceConnectConfigurationmy-servicemy-service.example.internalmy-service
但我也想要私有 …
amazon-web-services amazon-ecs aws-cloudmap aws-service-connect