カイがお手伝いします。
ECS とアプリケーション ロード バランサ間の動的ポートマッピング
ECS and an Application Load Balancer

kai_dynamic_port_mapping

Amazon EC2 コンテナサービス(ECS)で動的ポートマッピングを設定したいのです。どのようにすればよいですか?

Application Load Balancer との動的なポートマッピングにより、ECS クラスタ上で同じサービスを複数タスクで簡単に実行できるようになります。

従来のロードバランサでは、コンテナインスタンスのポート番号は静的に割り当てられています。ポートが競合するため、同じインスタンスで複数タスクのコピーを実行することはできません。アプリケーション ロード バランサにより、ポートの動的割り当が可能になります。これにより、同一コンテナインスタンス上の単一サービスを複数のタスクで実行できます。

動的ポートマッピングの設定方法は次のとおりです。

  1. Amazon EC2 コンソール で、アプリケーションロードバランサとターゲットグループを作成します。詳細については「Application Load Balancerの作成」をご参照ください。
  2. サービス作成時に、ロードバランサをサービスにマップします。詳細については「Configuring Your Service to Use a Load Balancerer」をご参照ください。
  3. Portに はデフォルトのトラフィックポートを使用します。Override は選択しないでください。ヘルスチェックトラフィックが誤ってルーティングされてしまいます。
    注:ホストポート0を使用するようにタスク定義を設定してください。インスタンスのエフェメラルポート範囲のポートが無作為に使用されるため、セキュリティグループ、ロードバランサ、バックエンドインスタンスの NACL 設定で、ロードバランサからインスタンスのエフェメラルポート範囲へのトラフィックが許可されていることを確認してください。エフェメラルポート範囲の詳細については「PortMapping」をご参照ください。セキュリティ グループの設定の詳細については「Create a Security Group Rule for your Container Instances」をご参照ください。
  4. サービスからタスクを起動し、Amazon EC2 コンソールで結果を確認してください。

ロードバランサは、サービスの作成時にのみ追加できます。サービスを作成した後、サービス定義で指定されているターゲットグループ ARN、ロードバランサ名、コンテナ名、コンテナポートを変更することはできません。既存のサービスのロードバランサ設定を追加、削除、または変更することはできません。サービスのタスク定義を更新する場合、サービスの作成時に指定したコンテナ名とコンテナポートは、タスク定義のままにしておく必要があります。詳細については、「Load Balancing Concepts」をご参照ください。

これで、ECSサービスに動的ポートマッピングが設定されているはずです。


このページは役に立ちましたか? はい | いいえ

AWS サポートナリッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。

公開日: 2016 年 05 月 26 日

更新: 2017 年 12 月 19 日