Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

Application Load Balancerを作成する

このセクションでは、Application Load Balancer を AWS マネジメントコンソール で作成する手順について説明します。

ロードバランサーを定義する

最初に、名前、ネットワーク、リスナーなど、ロードバランサーの基本的な設定情報を指定します。

リスナーとは接続リクエストをチェックするプロセスです。リスナーは、フロントエンド (クライアントからロードバランサー) 接続用のプロトコルとポート、およびバックエンド (ロードバランサーからバックエンドインスタンス) 接続用のプロトコルとポートを使用して設定します。この例では、ポート 80 で HTTP リクエストを受け取り、HTTP を使用してポート 80 でタスクのコンテナにそれらのリクエストを送信するリスナーを設定します。

ロードバランサーを定義するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションバーで、ロードバランサーのリージョンを選択します。Amazon ECS コンテナインスタンス用に選択したリージョンと同じリージョンを必ず選択してください。

  3. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。

  4. [Create Load Balancer] を選択します。

  5. [Select load balancer type (ロードバランサーの種類の選択)] ページで、[Application Load Balancer] を選択し、[次へ] を選択します。

  6. [Configure Load Balancer] ページで次の操作を完了します。

    1. [Name] に、ロードバランサーの名前を入力します。

    2. [Scheme (スキーム)] のインターネット向けロードバランサーは、クライアントからインターネット経由でリクエストをターゲットにルーティングします。内部ロードバランサーは、プライベート IP アドレスを使用してターゲットにリクエストをルーティングします。

    3. [IP address type] で、[ipv4] を選択して IPv4 アドレスのみをサポートするか、[dualstack] を選択して IPv4 と IPv6 アドレスの両方をサポートします。

    4. [Listeners] のデフォルトは、ポート 80 で HTTP トラフィックを受け付けるリスナーです。デフォルトのリスナーの設定をそのままにしておくことも、リスナーのプロトコルまたはポートを変更することも、[Add] を選択して別のリスナーを追加することもできます。

      注記

      複数のターゲットグループにトラフィックをルーティングする場合は、ホストまたはパスベースのルールを追加する方法の詳細について、「ListenerRules」を参照してください。

    5. VPC 用に、サービスを実行するコンテナインスタンスに使用したのと同じ VPC を選択します。

    6. [Availability Zones] で、ロードバランサーに有効化するアベイラビリティーゾーンのチェックボックスを選択します。そのアベイラビリティーゾーンに対して 1 つのサブネットがある場合、そのサブネットが選択されます。そのアベイラビリティーゾーンに複数のサブネットがある場合は、いずれかのサブネットを選択します。アベイラビリティーゾーンごとに 1 つだけサブネットを選択できます。ロードバランサーのサブネット設定には、コンテナインスタンスが存在するアベイラビリティーゾーンすべてを含める必要があります。

    7. [Next: Configure Security Settings] を選択します。

セキュリティ設定の構成 (オプション)

前のステップでセキュアリスナーを作成した場合は、[Configure Security Settings] ページで次の操作を完了するか、[Next: Configure Security Groups] を選択します。

セキュリティ設定を指定するには

  1. AWS Certificate Manager の証明書を持っている場合は、[Choose an existing certificate from AWS Certificate Manager (ACM) (AWS Certificate Manager (ACM) から既存の証明書を選択する)] を選択し、[Certificate name (証明書の名前)] から証明書を選択します。

  2. IAM を使用して証明書をすでにアップロードしている場合は、[Choose an existing certificate from AWS Identity and Access Management (IAM) (AWS Identity and Access Management (IAM) から既存の証明書を選択する)] を選択し、[Certificate name (証明書の名前)] から証明書を選択します。

  3. 証明書をアップロードする準備ができたら、[Upload a new SSL Certificate to AWS Identity and Access Management (IAM)] を選択します。[Certificate name] に証明書の名前を入力します。[Private Key] に、PEM エンコードされたプライベートキーファイルの内容をコピーして貼り付けます。[Public Key Certificate] に、PEM エンコードされたパブリックキー証明書ファイルの内容をコピーして貼り付けます。自己署名証明書を使用しておらず、ブラウザが暗黙的に証明書を受け入れることが重要である場合に限り、[Certificate Chain] に、PEM エンコードされた証明書チェーンファイルの内容をコピーして貼り付けます。

  4. [Select Policy] で、事前定義されたセキュリティポリシーを選択します。セキュリティポリシーの詳細については、「セキュリティポリシー」を参照してください。

  5. [Next: Configure Security Groups] を選択します。

セキュリティグループの設定

リスナーに指定したポートへのインバウンドトラフィックを許可するロードバランサーにセキュリティグループを割り当てる必要があります。 Amazon ECS は、Elastic Load Balancing ロードバランサーまたは Amazon ECS コンテナインスタンスに関連付けられたセキュリティグループを自動的には更新しません。

ロードバランサーにセキュリティグループを割り当てるには

  1. [Assign Security Groups] ページで [Create a new security group] を選択します。

  2. セキュリティグループの名前と説明を入力するか、デフォルトの名前と説明をそのまま使用します。この新しいセキュリティグループには、リスナーで使用するように設定したポートへのトラフィックを許可するルールが含まれます。

    注記

    このトピックの後半では、ここで作成されたセキュリティグループから来るすべてのポートのトラフィックを許可するコンテナインスタンスのセキュリティグループのルールを作成します。これにより、Application Load Balancer では、コンテナインスタンスの動的に割り当てられたホストポートにトラフィックをルーティングできるようになります。

    
                                セキュリティグループの選択
  3. [Next: Configure Routing] を選択して、ウィザードの次のページに移動します。

ルーティングの設定

このセクションでは、ロードバランサーのターゲットグループと、そのグループ内に登録されたターゲットのヘルスチェックの条件を作成します。

ターゲットグループを作成してヘルスチェックを設定するには

  1. [Target group] で、デフォルトの [New target group] を保持します。

  2. [Name] に、新しいターゲットグループの名前を入力します。

  3. [Protocol] と [Port] を必要に応じて設定します。

  4. [ターゲットの種類] で、インスタンス ID と IP アドレスのどちらを使用してターゲットを登録するかを選択します。

    重要

    サービスのタスク定義で、awsvpc ネットワークモード (起動タイプが Fargate の場合に必要) が使用されている場合は、instance ではなく、ip をターゲットタイプとして選択する必要があります。これは、awsvpc ネットワークモードを使用するタスクは、Amazon EC2 インスタンスではなく、Elastic Network Interface に関連付けられているためです。

  5. [Health checks] は、デフォルトのヘルスチェック設定のままにします。

  6. [Next: Register Targets] を選択します。

ターゲットの登録

ロードバランサーは、ターゲットグループに登録されたターゲットにトラフィックを分散します。ターゲットグループを Amazon ECS サービスに関連付けると、Amazon ECS はターゲットグループにコンテナを自動的に登録および登録解除します。Amazon ECS によってターゲットの登録が処理されるため、現時点ではターゲットをターゲットグループに追加しません。

ターゲット登録をスキップするには

  1. [Registered instances] セクションで、インスタンスが登録用に選択されていないことを確認します。

  2. [Next: Review] を選択して、ウィザードの次のページに移動します。

確認と作成

ロードバランサーとターゲットグループの設定を確認して、[Create] を選択し、ロードバランサーを作成します。

コンテナインスタンスのセキュリティグループルールを作成する

Application Load Balancer を作成した後、ロードバランサーからのトラフィックがコンテナに到達することを許可するインバウンドルールをコンテナインスタンスのセキュリティグループに追加する必要があります。

ロードバランサーからコンテナインスタンスへのインバウンドトラフィックを許可するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. 左のナビゲーションで [ Security Groups] を選択します。

  3. コンテナインスタンスで使用するセキュリティグループを選択します。最初に実行されたウィザードの Amazon ECS を使用してコンテナインスタンスを作成した場合、このセキュリティグループは、[ECS Allowed Ports (ECS 許可ポート)] の説明を持つ可能性があります。

  4. [Inbound ] タブを選択してから、[Edit] を選択します。

  5. [Type] で、[All traffic] を選択します。

  6. [ソース] で、[カスタム] を選択し、セキュリティグループの設定 で作成した Application Load Balancer セキュリティグループの名前を入力します。このルールにより、Application Load Balancer からのすべてのトラフィックが、ロードバランサーに登録されたタスクのコンテナに到達することを許可されます。

    
                                インバウンドのルールの編集
  7. [Save] を選択して終了します。

Amazon ECS サービスを作成する

ロードバランサーとターゲットグループを作成した後、サービスを作成する際にサービス定義でターゲットグループを指定できます。サービスの各タスクが開始されると、サービス定義で指定されたコンテナとポートの組み合わせがターゲットグループに登録され、トラフィックはロードバランサーからそのコンテナにルーティングされます。詳細については、「サービスの作成」を参照してください。