CloudFormation 스택을 구축 중입니다. 나는이있는 ECS 컨테이너두 포트 80과 443을 ELB에서 동일한 ECS 컨테이너로 매핑하는 방법은 무엇입니까?
- 웹 응용 프로그램을
PortMappings
ContainerPort
의 9000 및 9002,HostPort
의 80 및 443에 매핑하고, - 에 대한
Listener
들과TargetGroup
의를 사용하여 응용 프로그램 부하 분산 (AWS::ElasticLoadBalancingV2::LoadBalancer
) 포트 80의 HTTP 및 포트 443의 HTTPS에 대해
Service
을 정의하면 하나의로드 밸런서 요소 만 지정할 수 있습니다. LoadBalancers
은 복수이지만 설명서에서는 하나의로드 균형 조정기 만 허용되며 두 개의로드 균형 조정기 요소를 지정하면 작동하지 않습니다. 그런 다음 어떻게 두 포트를 매핑합니까?
다음은 동작하는 HTTPS 부분 만 사용하는 CloudFormation JSON의 서비스 부분입니다. 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
을 만들 수 있지만 단순하지만 경제적이지 않습니다.
HTTPS로 리디렉션 할 때만 포트 80을 사용하고 있습니까? – Andreas
지금까지는 CloudFormation 또는 AWS API에서 리디렉션을 수행하는 방법에 관심이있었습니다. 컨테이너가 다른 컨텍스트에서 사용되기 때문에 컨테이너에서 리디렉션을 유지하는 것이 가장 좋습니다. –