作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 CloudFormation 堆栈。我有
ContainerPort
9000 和 9002 的 PortMappings
,映射到 HostPort
80 和 443,以及AWS::ElasticLoadBalancingV2::LoadBalancer
),具有用于端口 80 上的 HTTP 和 HTTPS 的 Listener
和 TargetGroup
在端口 443 上当我定义一个Service
时,我只能指定一个负载均衡器元素;尽管 LoadBalancers
是复数,但文档说只允许一个负载均衡器,并且指定两个负载均衡器元素不起作用。那么,如何映射这两个端口呢?
这是我的 CloudFormation JSON 的服务部分,仅包含 HTTPS 部分,可以正常工作。是否可以扩展以将 HTTP 路由到同一个容器?如果没有,最好的解决方案是什么?
"Service": {
"Type": "AWS::ECS::Service",
"DependsOn": ["AutoScalingGroup", "HTTPSListener"],
"Properties": {
"Cluster": { "Ref": "Cluster" },
"DesiredCount": { "Ref": "InstanceCount" },
"LoadBalancers": [
{
"TargetGroupArn": { "Ref": "HTTPSTargetGroup" },
"ContainerName": "nginx",
"ContainerPort": "9002"
}
],
"Role": { "Ref": "ServiceRole" },
"TaskDefinition": { "Ref": "TaskDefinition" }
}
}
CloudFormation 解决方案是理想的选择,但 API 解决方案也很有趣。
我可以为 HTTP 创建第二个 Service
,使用单独的负载均衡器和容器实例,但这既不简单也不经济。
最佳答案
我建议选择以下选项之一:
a) 在同一负载均衡器的两个不同任务定义处注册任务(容器)作为容器启动过程的一部分,而不是使用 ECS 服务的内置功能。</p>
b) 定义另一个 ECS 服务,每个服务都与其自己的目标组连接。两个目标组都与相同的 ALB 相关联。
关于amazon-web-services - 如何将ELB的80和443端口映射到同一个ECS容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40315352/
我是一名优秀的程序员,十分优秀!