私はCloudFormationスタックを構築しています。私はポート80と443の両方をELBから同じECSコンテナにマップするにはどうすればよいですか?
Listener
sおよびTargetGroup
sのHostPort
S 80及び443、及び- にマッピング
ContainerPort
S 9000及び9002のためのPortMappings
を有するECS容器内のウェブアプリケーション、アプリケーションのロードバランサ(AWS::ElasticLoadBalancingV2::LoadBalancer
)を有しますポート80でのHTTPとポート443でのHTTPSについて
私がService
を定義するとき、1つのロードバランサ要素しか指定できません。 LoadBalancers
は複数ですが、ドキュメントでは1つのロードバランサのみが許可されており、2つのロードバランサ要素を指定しても機能しないことが記載されています。どのようにして両方のポートをマッピングするのですか?
CloudSation 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用に2番目のService
を作成できますが、これは単純で経済的でもありません。
HTTPSへのリダイレクトにのみポート80を使用していますか? – Andreas
これまでのところ、CloudFormationやAWS APIでリダイレクトを行う方法は興味深いでしょう。ただし、コンテナは他のコンテキストで使用されるため、リダイレクトをコンテナに保持することが最善です。 –