How do I set up dynamic port mapping between an ECS instance and an application load balancer?
- Articles, Blog

How do I set up dynamic port mapping between an ECS instance and an application load balancer?


Amazon ECS インスタンスと Application Load Balancer の間に動的ポートマッピングを設定する方法 こんにちは AWS バンガロールオフィスでクラウドサポートエンジニアをしている Sachin です 動的ポートマッピングを Amazon ECS や Amazon ECS コンテナインスタンスに自動的に設定する方法についてお問い合わせをいただくことがあります Application Load Balancer の動的ポートマッピングを使用すると ECS コンテナインスタンスに複数のコンテナを実行しやすくなります 今回のビデオでは Application Load Balancer について詳しく説明しませんので 詳細を知りたい場合は Elastic Load Balancer のドキュメントを参照ください Classic Load Balancer ではコンテナインスタンスにポート番号を静的にマッピングします またポート間の競合が発生するため同じインスタンスで 1 つのタスクの複数のコピーを実行することはできません 動的ポートマッピングを使うことでコンテナに自動的に空いているポートを設定できるだけではなく 同じインスタンス上で複数のタスクのコピーを同時実行することでリソースを効率的に利用できます それでは実際に Amazon ECS に動的ポートマッピングを設定する手順を説明します AWS マネジメントコンソールにサインインします ECS コンソールにアクセスします 動的ポートマッピングを設定するにはまずタスク定義の作成が必要です 既存のものから簡単に新規タスク定義を作成します 動的ポートマッピングを設定するにはコンテナの設定にて追加する必要があります 既存のコンテナの定義からも変更可能ですので
今回は既存のものをクリックします ホストポートを必ず 0 に設定してください そして自身のアプリケーションに基づいたコンテナポートにマップするようにして下さい 動的ポートマッピングを正常に動作させるにはここの設定だけ指定する必要があります スクロールダウンし [更新](Update) をクリックします そしてタスク定義を作成するため [作成](Create) をクリックします [JSON] タブからタスク定義の設定を確認できます 次に左側の項目から [クラスター](Clusters) をクリックし default クラスターを選択します [サービス](Services) タブを開き [作成](Create) をクリックして新しいサービスを作成します 必ずタスク定義の Revision は正しいものを選択してください サービスに名前を付けます タスクの数を記入します 今回のデモでは 1 にします [次のステップ](Next step) をクリックします Load balancer type では Application Load Balancer を選択します [ELB への追加](Add to Load balancer) をクリックします そうすると新たな項目が表示されます リスナーポート(Listener port) は 80:HTTP を選択します ターゲットグループ名(Target group name) では既存のターゲットグループを選ぶか ECS に自動で作成させることも可能です 今回は既存のものを選択します また ECS 専用のロールも選んでください Amazon ECS はロードバランサーにコンテナインスタンスを登録するために
適切な権限を持った IAM ロールが必要です [次のステップ](Next step) をクリックします 今回はデモのためデフォルトのまま設定し再度 [次のステップ](Next step) をクリックします 全ての設定をこの画面で確認します [サービスの作成](Create Service) をクリックします 作成が完了するまでに少し時間がかかる場合があります 作成したサービスを表示します ステータスが RUNNING になりました ロードバランサーを検証し
どのポートがこのタスクに使用されたのか確認します AWS マネジメントコンソールに戻り
EC2 コンソールにアクセスします 左側の項目から [ターゲットグループ](Target Groups) をクリックします [ターゲット](Targets) タブを開き新規タスクに使われたポートを確認します ここのポート番号は新規タスクを作成する度に変更されます 動的ポートマッピングを利用するにはターゲットグループがヘルスチェックを実行するためにトラフィックポートを使用していることを確認してください そうでないとカスタムポート上でどのタスクもリッスンしていない状態になりヘルスチェックに失敗します これを検証するには [アクション](Actions) から [ヘルスチェックの編集](Edit health check) をクリックします そしてポートの設定が 上書き(override) になっていないことを確かめてください ご覧いただきありがとうございました
引き続きクラウドコンピューティングをお楽しみください ! AWS よりお送りしました

About Bill McCormick

Read All Posts By Bill McCormick

8 thoughts on “How do I set up dynamic port mapping between an ECS instance and an application load balancer?

  1. Does it always attach the target groups on a random port using this method?? Can I set it to port 9000 or similar?
    Also, there is no way at all of knowing this process without the documentation! There should be some notice of this feature in the console itself!!

  2. This is old. Todays AWS ECS Task Definitions have far more settings and are widely different than the settings page shown in this video. Where is the latest video depicting the same?

  3. hello how can I communicate from one ecs container to another ecs container using serive discovery?

Leave a Reply

Your email address will not be published. Required fields are marked *