84
Elastic Load Balancing Application Load Balancer

Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Embed Size (px)

Citation preview

Page 1: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load BalancingApplication Load Balancer

Page 2: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer

Elastic Load Balancing: Application Load BalancerCopyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

Page 3: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer

Table of ContentsApplication Load Balancer とは ............................................................................................................ 1

Application Load Balancer コンポーネント ..................................................................................... 1Application Load Balancer の概要 ................................................................................................. 1Classic Load Balancer からの移行のメリット ................................................................................. 2開始方法 .................................................................................................................................... 2料金表 ....................................................................................................................................... 3

ご利用開始にあたって ......................................................................................................................... 2開始する前に ............................................................................................................................. 4ステップ 1: ロードバランサーの種類の選択 .................................................................................... 4ステップ 2: ロードバランサーとリスナーの設定 .............................................................................. 5ステップ 3: ロードバランサーのセキュリティグループの設定 ........................................................... 5ステップ 4: ターゲットグループの設定 .......................................................................................... 6ステップ 5: ターゲットグループへのターゲットの登録 ..................................................................... 6ステップ 6: Load Balancer の作成とテスト .................................................................................... 6ステップ 7: ロードバランサーの削除 (オプション) ........................................................................... 7

チュートリアル .................................................................................................................................. 8チュートリアル: パスベースのルーティングを使用する .................................................................... 8

開始する前に ..................................................................................................................... 8Load Balancer の作成 ......................................................................................................... 8

チュートリアル: ターゲットとして Microservices を使用する .......................................................... 10開始する前に .................................................................................................................... 10Load Balancer の作成 ........................................................................................................ 11

チュートリアル: AWS CLI を使用した Application Load Balancer の作成 ........................................... 12開始する前に .................................................................................................................... 12Load Balancer の作成 ........................................................................................................ 12HTTPS リスナーの追加 ..................................................................................................... 13ポートの上書きを使用したターゲットの追加 ......................................................................... 14パスベースのルーティングの追加 ........................................................................................ 14ロードバランサーの削除 .................................................................................................... 15

ロードバランサー .............................................................................................................................. 16ロードバランサーのセキュリティグループ .................................................................................... 16ロードバランサーの状態 ............................................................................................................ 16ロードバランサーの属性 ............................................................................................................ 17IP アドレスタイプ ..................................................................................................................... 17削除保護 .................................................................................................................................. 18接続のアイドルタイムアウト ...................................................................................................... 18Application Load Balancers および AWS WAF .............................................................................. 19ロードバランサーの作成 ............................................................................................................ 19

ステップ 1: ロードバランサーとリスナーを設定する ................................................................ 5ステップ 2: HTTPS リスナーのセキュリティ設定を指定する ................................................... 20ステップ 3: セキュリティグループを設定する ....................................................................... 21ステップ 4: ターゲットグループを設定する ............................................................................ 6ステップ 5: ターゲットグループのターゲットを設定する ........................................................ 21ステップ 6: ロードバランサーを作成する ............................................................................. 22

アベイラビリティーゾーンの更新 ................................................................................................ 22セキュリティグループの更新 ...................................................................................................... 23

推奨ルール ....................................................................................................................... 23関連付けられたセキュリティグループの更新 ......................................................................... 24

アドレスタイプの更新 ............................................................................................................... 24タグの更新 ............................................................................................................................... 25ロードバランサーの削除 ............................................................................................................ 25

リスナー .......................................................................................................................................... 27リスナーの設定 ......................................................................................................................... 27リスナールール ......................................................................................................................... 27

iii

Page 4: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer

デフォルトのルール .......................................................................................................... 28ルールの優先順位 .............................................................................................................. 28ルールのアクション .......................................................................................................... 28ルールの条件 .................................................................................................................... 28

ホストの条件 ............................................................................................................................ 28パスの条件 ............................................................................................................................... 29リスナーの作成 ......................................................................................................................... 29

前提条件 .......................................................................................................................... 30リスナーの追加 ................................................................................................................. 30

HTTPS リスナーの設定 ............................................................................................................. 30SSL 証明書 ...................................................................................................................... 31セキュリティポリシー ....................................................................................................... 31セキュリティポリシーの更新 .............................................................................................. 33

リスナールールの更新 ............................................................................................................... 33前提条件 .......................................................................................................................... 34ルールの追加 .................................................................................................................... 34ルールの編集 .................................................................................................................... 35ルールの順序変更 .............................................................................................................. 35ルールの削除 .................................................................................................................... 36

サーバー証明書の更新 ............................................................................................................... 36証明書の追加 .................................................................................................................... 37デフォルトの証明書の置き換え ........................................................................................... 37証明書の削除 .................................................................................................................... 38

リスナーの削除 ......................................................................................................................... 38ターゲットグループ .......................................................................................................................... 40

ルーティング設定 ...................................................................................................................... 40ターゲットの種類 ...................................................................................................................... 41登録済みターゲット .................................................................................................................. 41ターゲットグループの属性 ......................................................................................................... 42登録解除の遅延 ......................................................................................................................... 42スティッキーセッション ............................................................................................................ 43ターゲットグループの作成 ......................................................................................................... 43ヘルスチェックを設定する ......................................................................................................... 44

ヘルスチェックの設定 ....................................................................................................... 45ターゲットヘルスステータス .............................................................................................. 46ヘルスチェックの理由コード .............................................................................................. 46ターゲットのヘルスステータスをチェックする ...................................................................... 47ターゲットグループのヘルスチェック設定を変更する ............................................................ 47

ターゲットの登録 ...................................................................................................................... 47ターゲットセキュリティグループ ........................................................................................ 48ターゲットの登録または登録解除 ........................................................................................ 48

タグの更新 ............................................................................................................................... 50ターゲットグループの削除 ......................................................................................................... 51

ロードバランサーの監視 .................................................................................................................... 52CloudWatch メトリクス ............................................................................................................. 52

Application Load Balancer メトリクス .................................................................................. 53Application Load Balancer のメトリクスディメンション ......................................................... 57Application Load Balancer メトリクスの統計 ........................................................................ 58ロードバランサーの CloudWatch メトリクスを表示する ......................................................... 58

アクセスログ ............................................................................................................................ 60アクセスログファイル ....................................................................................................... 61アクセスログのエントリ .................................................................................................... 62バケットのアクセス許可 ................................................................................................... 65アクセスログの作成の有効化 .............................................................................................. 67アクセスログの作成の無効化 .............................................................................................. 68アクセスログファイルの処理 .............................................................................................. 68

リクエストのトレース ............................................................................................................... 69

iv

Page 5: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer

構文 ................................................................................................................................ 69制約事項 .......................................................................................................................... 70

CloudTrail ログ ......................................................................................................................... 70CloudTrail のイベントログ作成機能の有効化 ......................................................................... 70CloudTrail ログファイルの Elastic Load Balancing イベントレコード ........................................ 71

ロードバランサーのトラブルシューティングを行う ................................................................................ 73登録されたターゲットが実行中でない .......................................................................................... 73クライアントがインターネット向けロードバランサーに接続できない ............................................... 74ロードバランサーが異常なターゲットにリクエストを送信する ........................................................ 74ロードバランサーが HTTP エラーを生成する ................................................................................ 74

HTTP 400: Bad Request .................................................................................................... 74HTTP 403: Forbidden ........................................................................................................ 75HTTP 460 ........................................................................................................................ 75HTTP 463 ........................................................................................................................ 75HTTP 502: Bad Gateway ................................................................................................... 75HTTP 503: Service Unavailable .......................................................................................... 75HTTP 504: Gateway Timeout ............................................................................................. 75

ターゲットが HTTP エラーを生成する ......................................................................................... 76制限 ................................................................................................................................................ 77ドキュメント履歴 .............................................................................................................................. 78

v

Page 6: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerApplication Load Balancer コンポーネント

Application Load Balancer とはElastic Load Balancing は 3 種類のロードバランサー (Application Load Balancer、Network LoadBalancer、および Classic Load Balancer) をサポートします。このガイドでは、Application Load Balancerについて説明します。Network Load Balancer の詳細については、Network Load Balancer のユーザーガイドを参照してください。Classic Load Balancer の詳細については、「Classic Load Balancer 用ユーザーガイド」を参照してください。

Application Load Balancer コンポーネントロードバランサーは、クライアントにとって単一の通信先として機能します。このロードバランサーは、受信アプリケーショントラフィックを複数のアベイラビリティーゾーンの複数のターゲット(EC2 インスタンスなど) に分散します。これにより、アプリケーションの可用性が向上します。ロードバランサーに 1つ以上のリスナーを追加できます。

リスナーは、ユーザーが設定したプロトコルとポートを使用してクライアントからの接続リクエストを確認し、ユーザーが定義したルールに基づいて 1 つ以上のターゲットグループにリクエストを転送します。各ルールは、ターゲットグループ、条件、優先順位を指定します。条件が満たされると、トラフィックがターゲットグループに転送されます。リスナーごとにデフォルトのルールを定義する必要があり、リクエストの内容に基づいて異なるターゲットグループを指定するルールを追加できます(内容に基づくルーティングとも呼ばれます)。

各ターゲットグループは、指定されたプロトコルとポート番号を使用して、1 つ以上の登録済みのターゲット (EC2 インスタンスなど) にリクエストをルーティングできます。1 つのターゲットを複数のターゲットグループに登録できます。ターゲットグループ単位でヘルスチェックを設定できます。ヘルスチェックは、ロードバランサーのリスナールールに指定されたターゲットグループに登録されたすべてのターゲットで実行されます。

次の図に、基本コンポーネントを示します。各リスナーにデフォルトのルールがあり、1 つのリスナーにリクエストを別のターゲットグループにルーティングする別のルールが含まれていることに注意してください。1 つのターゲットが 2 つのターゲット グループに登録されています。

詳細については、次のドキュメントを参照してください。

• ロードバランサー (p. 16)• リスナー (p. 27)• ターゲットグループ (p. 40)

Application Load Balancer の概要Application Load Balancerは、開放型システム間相互接続 (OSI) モデルの第 7 層であるアプリケーションレイヤーで機能します。ロードバランサーはリクエストを受信すると、優先度ルールでリスナールールを

1

Page 7: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerClassic Load Balancer からの移行のメリット

評価して適用するルールを決定し、ラウンドロビンルーティングアルゴリズムを使用してルールアクションのターゲットグループからターゲットを選択します。リスナールールを構成し、アプリケーショントラフィックのコンテンツに基づいて異なるターゲットグループに要求をルーティングできることに注意してください。それぞれのターゲットグループでルーティングは個別に実行され、複数のターゲットグループに登録されているターゲットの場合も同じです。

アプリケーションへのリクエストの流れを中断することなく、ニーズの変化に応じてロードバランサーに対してターゲットの追加と削除を行うことができます。Elastic Load Balancing はアプリケーションへのトラフィックが時間の経過とともに変化するのに応じてロードバランサーをスケーリングします。ElasticLoad Balancing は、大半のワークロードに合わせて自動的にスケーリングできます。

登録済みのインスタンスのヘルス状態をモニタリングするために使用されるヘルスチェックを設定することで、ロードバランサーは正常なターゲットにのみリクエストを送信できます。

詳細については、Elastic Load Balancing ユーザーガイド の「Elastic Load Balancing の仕組み」を参照してください。

Classic Load Balancer からの移行のメリットClassic Load Balancerに代わるApplication Load Balancerの使用には、次のメリットがあります。

• パスベースのルーティングのサポート。リクエスト内の URL に基づいてリクエストを転送するリスナーのルールを設定できます。これにより、アプリケーションをより小さなサービスとして構成し、URL の内容に基づいて適切なサービスにリクエストをルーティングできます。

• ホストベースのルーティングのサポート。HTTP ヘッダー内のホストフィールドに基づいてリクエストを転送するリスナーのルールを設定できます。これにより、1 つのロードバランサーを使用して複数のドメインにリクエストをルーティングできます。

• 1 つの EC2 インスタンス上での複数のアプリケーションへのルーティングリクエストのサポート。複数のポートを使用して、各インスタンスまたは IP アドレスを同じターゲットグループに登録できます。

• ロードバランサーの VPC 外のターゲットを含め、IP アドレスによるターゲットの登録をサポート。• コンテナ化されたアプリケーションのサポート。Amazon Elastic Container Service (Amazon ECS) は、

タスクをスケジュールするときに未使用のポートを選択し、そのポートを使用するターゲットグループにタスクを登録できます。これにより、クラスターを効率的に使用することができます。

• 各サービスの個別のヘルスステータスのモニタリングのサポート。ヘルスチェックがターゲットグループレベルで定義され、多数の CloudWatch メトリクスがターゲットグループレベルで報告されます。ターゲットグループを Auto Scaling グループにアタッチすることで、各サービスをオンデマンドで動的にスケールすることができます。

• アクセスログへの情報の追加と圧縮形式での保存。• ロードバランサーのパフォーマンスの向上。

各ロードバランサーの種類でサポートされている機能の詳細については、「Elastic Load Balancing 製品の比較」を参照してください。

開始方法Application Load Balancerを作成するには、次のいずれかのチュートリアルに従います。

• 『Elastic Load Balancing ユーザーガイド』の「Elastic Load Balancing の使用を開始する」。• チュートリアル: Application Load Balancer でパスベースのルーティングを使用する (p. 8)• チュートリアル: Application Load Balancer のターゲットとして Microservices を使用する (p. 10)

2

Page 8: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer料金表

料金表ロードバランサーについては、お客様が利用された分のみのお支払いとなります。詳細については、Elastic Load Balancing 料金表を参照してください。

3

Page 9: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer開始する前に

Application Load Balancer のご利用開始にあたって

このチュートリアルでは、ウェブベースインターフェイスである AWS マネジメントコンソール を使ったApplication Load Balancer を実践的に説明します。最初の Application Load Balancer を作成するには、次のステップを完了します。

タスク• 開始する前に (p. 4)• ステップ 1: ロードバランサーの種類の選択 (p. 4)• ステップ 2: ロードバランサーとリスナーの設定 (p. 5)• ステップ 3: ロードバランサーのセキュリティグループの設定 (p. 5)• ステップ 4: ターゲットグループの設定 (p. 6)• ステップ 5: ターゲットグループへのターゲットの登録 (p. 6)• ステップ 6: Load Balancer の作成とテスト (p. 6)• ステップ 7: ロードバランサーの削除 (オプション) (p. 7)

代わりに、Network Load Balancer を作成するには、Network Load Balancer のユーザーガイドの「Network Load Balancer の使用開始」を参照してください。Classic Load Balancer を作成するには、Classic Load Balancer 用ユーザーガイド の「Classic Load Balancer を作成する」を参照してください。

開始する前に• EC2 インスタンスに使用する 2 つのアベイラビリティーゾーンを決定します。これらの各アベイラビリ

ティーゾーンに少なくとも 1 つのパブリックサブネットがある Virtual Private Cloud (VPC) を設定します。これらのパブリックサブネットは、ロードバランサーを設定するために使用されます。その代わりに、これらのアベイラビリティーゾーンの他のサブネットで EC2 インスタンスを起動することができます。

• 各アベイラビリティーゾーンで少なくとも 1 つの EC2 インスタンスを起動します。必ず、Apache やInternet Information Services (IIS) などのウェブサーバーを各 EC2 インスタンスにインストールします。これらのインスタンスのセキュリティグループでは、ポート 80 の HTTP アクセスを許可していることを確認してください。

ステップ 1: ロードバランサーの種類の選択Elastic Load Balancing は 3 種類のロードバランサーをサポートしています。このチュートリアルでは、Application Load Balancer を作成します。

Application Load Balancer を作成するには

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

4

Page 10: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerステップ 2: ロードバランサーとリスナーの設定

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

3. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。4. [Create Load Balancer] を選択します。5. [アプリケーションロードバランサー] で [作成] を選択します。

ステップ 2: ロードバランサーとリスナーの設定[Configure Load Balancer] ページで、次の手順を完了します。

ロードバランサーとリスナーを設定するには

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

Application Load Balancer の名前は、リージョンの Application Load Balancer および ネットワークロードバランサー セット内で一意にする必要があります。最大 32 文字で、英数字とハイフンのみ使用できます。先頭と末尾にハイフンを使用することはできず、「internal-」で始めることはできません。

2. [Scheme] および [IP address type] については、デフォルト値のままにします。3. [Listeners] では、デフォルトを保持します。これは、ポート 80 で HTTP トラフィックを受け付ける

リスナーです。4. [Availability Zones] で、EC2 インスタンスに使用する VPC を選択します。EC2 インスタンスの起動

に使用した各アベイラビリティーゾーンについて、アベイラビリティーゾーンを選択し、そのアベイラビリティーゾーンのパブリックサブネットを選択します。

5. [Next: Configure Security Settings] を選択します。6. このチュートリアルでは、セキュアリスナーを使用しません。[Next: Configure Security Groups] を選

択します。

ステップ 3: ロードバランサーのセキュリティグループの設定

ロードバランサーのセキュリティグループは、リスナーポート ポートとヘルスチェックポートの両方で登録済みターゲットとの通信を許可する必要があります。コンソールはユーザーに代わって、ロードバランサーに正しいプロトコルとポートを指定するルールを持つセキュリティグループを作成できます。

Note

希望する場合には、独自のセキュリティグループを作成して選択することもできます。詳細については、「推奨ルール (p. 23)」を参照してください。

セキュリティグループの設定ページで次の手順を実行して Elastic Load Balancing にユーザーの代わりとしてロードバランサーへのセキュリティグループを作成させます。

ロードバランサーのセキュリティグループを設定するには

1. [Create a new security group] を選択します。2. セキュリティグループの名前と説明を入力するか、デフォルトの名前と説明を維持します。この新

しいセキュリティグループには、[Configure Load Balancer] ページで選択したロードバランサーリスナーポートへのトラフィックを許可するルールが含まれます。

3. [Next: Configure Routing] を選択します。

5

Page 11: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerステップ 4: ターゲットグループの設定

ステップ 4: ターゲットグループの設定リクエストルーティングで使用されるターゲットグループを作成します。リスナーのデフォルトルールは、このターゲットグループ内の登録済みターゲットにリクエストをルーティングします。ロードバランサーは、ターゲットグループに定義されたヘルスチェック設定を使用してこのターゲットグループ内のターゲットの状態を確認します。[Configure Routing] ページで、次の手順を完了します。

ターゲットグループを設定するには

1. [Target group] で、デフォルトの [New target group] を保持します。2. [Name] に、新しいターゲットグループの名前を入力します。3. [プロトコル] は HTTP、[ポート] は 80、[ターゲットの種類] はインスタンスで維持します。4. [Health checks] は、デフォルトプロトコルと ping パスを保持します。5. [Next: Register Targets] を選択します。

ステップ 5: ターゲットグループへのターゲットの登録

[Register Targets] ページで、次の手順を完了します。

ターゲットグループにターゲットを登録するには

1. [Instances] で、1 つ以上のインスタンスを選択します。2. デフォルトポート 80 を保持し、[Add to registered] を選択します。3. インスタンスの選択が完了したら、[Next: Review] を選択します。

ステップ 6: Load Balancer の作成とテストロードバランサーを作成する前に、選択した設定を確認します。ロードバランサーを作成した後で、EC2インスタンスにトラフィックを送信するかどうかを検証します。

ロードバランサーを作成してテストするには

1. [Review] ページで、[Create ] を選択します。2. ロードバランサーが正常に作成されたことが通知されたら、[Close] を選択します。3. ナビゲーションペインの [LOAD BALANCING] で [Target Groups] を選択します。4. 新しく作成したターゲットグループを選択します。5. [Targets] タブで、インスタンスの準備ができていることを確認します。インスタンスのステータス

が initial の場合、インスタンスがまだ登録の途中であるか、正常と見なされるのに必要なヘルスチェックの最小数に合格しなかったと考えられます。少なくとも 1 つのインスタンスのステータスがhealthy であれば、ロードバランサーをテストできます。

6. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。7. 新しく作成したロードバランサーを選択します。8. [Description] タブで、ロードバランサーの DNS 名 (例: my-load-balancer-1234567890.us-

west-2.elb.amazonaws.com) をコピーします。インターネットに接続したウェブブラウザのアドレスフィールドに DNS 名を貼り付けます。すべて適切な場合は、ブラウザにサーバーのデフォルトページが表示されます。

6

Page 12: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerステップ 7: ロードバランサーの削除 (オプション)

ステップ 7: ロードバランサーの削除 (オプション)ロードバランサーが利用可能になると、ロードバランサーの実行時間に応じて 1 時間ごと、または 1 時間未満の時間について課金されます。不要になったロードバランサーは削除できます。ロードバランサーが削除されると、ロードバランサーの課金も停止されます。ロードバランサーを削除しても、ロードバランサーに登録されたターゲットには影響を与えません。たとえば、EC2 インスタンスを実行し続けます。

ロードバランサーを削除するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. 任意のロードバランサーのチェックボックスを選択し、[Actions]、[Delete] を選択します。4. 確認を求めるメッセージが表示されたら、[Yes, Delete] を選択します。

7

Page 13: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerチュートリアル: パスベースのルーティングを使用する

Application Load Balancer のチュートリアル

以下の Elastic Load Balancing のチュートリアルで、Application Load Balancerを使用する一般的なタスクの実行方法を説明します。

• Elastic Load Balancing の使用を開始する (Elastic Load Balancing ユーザーガイド)• チュートリアル: Application Load Balancer でパスベースのルーティングを使用する (p. 8)• チュートリアル: Application Load Balancer のターゲットとして Microservices を使用する (p. 10)• チュートリアル: AWS CLI を使用した Application Load Balancer の作成 (p. 12)

チュートリアル: Application Load Balancer でパスベースのルーティングを使用する

URL パスに基づいてリクエストを転送するルールを持つリスナーを作成できます。これは、パスベースのルーティングと呼ばれます。マイクロサービスを実行している場合、パスベースのルーティングを使用して複数のバックエンドサービスにトラフィックをルーティングすることができます。たとえば、1 つのターゲットグループに全般的なリクエストをルーティングし、イメージをレンダリングするリクエストを別のターゲットグループにルーティングできます。

開始する前に• Virtual Private Cloud (VPC) で EC2 インスタンスを起動します。これらのインスタンスのセキュリティ

グループがリスナーポートとヘルスチェックポートでアクセスを許可することを確認します。詳細については、「ターゲットセキュリティグループ (p. 48)」を参照してください。

• マイクロサービスが、登録する予定の EC2 インスタンスにデプロイされていることを確認します。

Load Balancer の作成パスベースのルーティングを使用するロードバランサーを作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションバーで、EC2 インスタンスのために選択したのと同じリージョンを選択します。3. ナビゲーションペインの [LOAD BALANCING] で [Target Groups] を選択します。4. 次のようにして、最初のターゲットセットのターゲットグループを作成します。

a. [Create target group] を選択します。b. ターゲットグループの名前、プロトコル、ポート、VPC を指定し、[Create] を選択します。c. 新しいターゲットグループを選択します。d. [Targets] タブで、[Edit] を選択します。e. [Instances] で、1 つ以上のインスタンスを選択します。インスタンスのポートを指定し、[Add to

registered] を選択して [Save] を選択します。

インスタンスのステータスは、インスタンスが登録されてヘルスチェックに合格するまでinitial であり、ロードバランサーからのトラフィックを受信するようにターゲットグループを設定するまで unused である点に注意してください。

8

Page 14: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerLoad Balancer の作成

5. 次のようにして、2 番目のターゲットセットのターゲットグループを作成します。

a. [Create target group] を選択します。b. ターゲットグループの名前、プロトコル、ポート、VPC を指定し、[Create] を選択します。c. [Targets] タブで、[Edit] を選択します。d. [Instances] で、1 つ以上のインスタンスを選択します。インスタンスのポートを指定し、[Add to

registered] を選択して [Save] を選択します。

インスタンスのステータスは、インスタンスが登録されてヘルスチェックに合格するまでinitial であり、ロードバランサーからのトラフィックを受信するようにターゲットグループを設定するまで unused である点に注意してください。

6. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。7. [Create Load Balancer] を選択します。8. [Select load balancer type] で、[Application Load Balancer] を選択します。9. [Continue] を選択します。10. [Configure Load Balancer] ページで次の操作を完了します。

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

Application Load Balancer の名前は、リージョンの Application Load Balancer および ネットワークロードバランサー セット内で一意にする必要があります。最大 32 文字で、英数字とハイフンのみ使用できます。先頭と末尾にハイフンを使用することはできません。

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

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

d. [Availability Zones] で、EC2 インスタンスに使用する VPC を選択します。アベイラビリティーゾーンを少なくとも 2 つ選択します。アベイラビリティーゾーンに対して 1 つのサブネットがある場合、そのサブネットが選択されます。そのアベイラビリティーゾーンに複数のサブネットがある場合は、いずれかのサブネットを選択します。アベイラビリティーゾーンにつき、1 つのサブネットしか選択できないことに注意してください。

e. [Next: Configure Security Settings] を選択します。11. (オプション) 前のステップでセキュアリスナーを作成した場合は [Configure Security Settings] ページ

で次の操作を完了します。

a. AWS Certificate Manager を使用して証明書を作成またはインポートした場合は、[AWSCertificate Manager (ACM)] を選択し、[証明書名] から証明書を選択します。

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

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

d. [Select policy] の場合は、デフォルトのセキュリティポリシーを維持します。12. [Next: Configure Security Groups] を選択します。13. [Configure Security Groups] ページで次の操作を完了します。

9

Page 15: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerチュートリアル: ターゲットとして Microservices を使用する

a. [Create a new security group] を選択します。b. セキュリティグループの名前と説明を入力するか、デフォルトの名前と説明を維持します。この

新しいセキュリティグループには、[Configure Load Balancer] ページでロードバランサー用に選択したポートへのトラフィックを許可するルールが含まれます。

c. [Next: Configure Routing] を選択します。14. [Configure Routing] ページで次の操作を完了します。

a. [Target group] で、[Existing target group] を選択します。b. [Name] で、作成した最初のターゲットグループを選択します。c. [Next: Register Targets] を選択します。

15. [Register Targets] ページで、ターゲットグループに登録したインスタンスが [Registered instances]に表示されます。ウィザードを完了するまで、ターゲットグループに登録したターゲットを変更することはできません。[Next: Review] を選択します。

16. [Review] ページで、[Create ] を選択します。17. ロードバランサーが正常に作成されたことが通知されたら、[Close] を選択します。18. 新しく作成したロードバランサーを選択します。19. [Listeners] タブで、矢印を使用してリスナーのルールを表示し、[Add rule] を選択します。次のように

してルールを指定します。

a. [Target group name] で、作成した 2 番目のグループを選択します。b. [Path pattern] で、パスベースのルーティングに使用する正確なパターンを指定します (たとえ

ば、/img/*)。詳細については、「リスナールール (p. 27)」を参照してください。c. [Save] を選択します。

チュートリアル: Application Load Balancer のターゲットとして Microservices を使用する

個別に開発およびデプロイできるサービスとしてのアプリケーションを構成するために、microservicesアーキテクチャを使用できます。これらのサービスを 1 つ以上各 EC2 インスタンスにインストールし、各サービスが別のポートで接続を受け入れるようにできます。単一の Application Load Balancer でアプリケーションのすべてのサービスにリクエストをルーティングできます。ターゲットグループに EC2 インスタンスを登録する場合、それを複数回登録できます。各サービスで、そのサービスのポートを使用するインスタンスを登録します。

Important

Amazon Elastic Container Service (Amazon ECS) を使用してサービスをデプロイする場合、動的ポートマッピングを使用して、同じコンテナインスタンスの単一のサービスからの複数のサービスをサポートできます。Amazon ECS は、インスタンス ID と各コンテナのポートを使用して自動的にコンテナをターゲットグループに登録およびターゲットグループから登録解除して、サービスに対する更新を管理します。詳細については、Amazon Elastic Container Service DeveloperGuideの「サービスロードバランシング」を参照してください。

開始する前に• EC2 インスタンスを起動します。インスタンスのセキュリティグループが、リスナーポートとヘルス

チェックポートでロードバランサーのセキュリティグループからのアクセスを許可することを確認します。詳細については、「ターゲットセキュリティグループ (p. 48)」を参照してください。

• EC2 インスタンスにサービスをデプロイします (たとえばコンテナを使用して)。

10

Page 16: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerLoad Balancer の作成

Load Balancer の作成ターゲットとして複数のサービスを使用するロードバランサーを作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションバーで、EC2 インスタンスのために選択したのと同じリージョンを選択します。3. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。4. [Create Load Balancer] を選択します。5. [Select load balancer type] で、[Application Load Balancer] を選択します。6. [Continue] を選択します。7. [Configure Load Balancer] ページで次の操作を完了します。

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

Application Load Balancer の名前は、リージョンの Application Load Balancer および ネットワークロードバランサー セット内で一意にする必要があります。最大 32 文字で、英数字とハイフンのみ使用できます。先頭と末尾にハイフンを使用することはできません。

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

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

d. [Availability Zones] で、EC2 インスタンスに使用する VPC を選択します。アベイラビリティーゾーンを少なくとも 2 つ選択します。アベイラビリティーゾーンに対して 1 つのサブネットがある場合、そのサブネットが選択されます。そのアベイラビリティーゾーンに複数のサブネットがある場合は、いずれかのサブネットを選択します。アベイラビリティーゾーンにつき、1 つのサブネットしか選択できないことに注意してください。

e. [Next: Configure Security Settings] を選択します。8. (オプション) 前のステップでセキュアリスナーを作成した場合は [Configure Security Settings] ページ

で次の操作を完了します。

a. AWS Certificate Manager を使用して証明書を作成またはインポートした場合は、[AWSCertificate Manager (ACM)] を選択し、[証明書名] から証明書を選択します。

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

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

d. [Select policy] の場合は、デフォルトのセキュリティポリシーを維持します。9. [Next: Configure Security Groups] を選択します。10. [Configure Security Groups] ページで次の操作を完了します。

a. [Create a new security group] を選択します。b. セキュリティグループの名前と説明を入力するか、デフォルトの名前と説明を維持します。この

新しいセキュリティグループには、[Configure Load Balancer] ページでロードバランサー用に選択したポートへのトラフィックを許可するルールが含まれます。

11

Page 17: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerチュートリアル: AWS CLI を使用した Application Load Balancer の作成

c. [Next: Configure Routing] を選択します。11. [Configure Routing] ページで次の操作を完了します。

a. [Target group] はデフォルトの [New target group] を保持します。b. [Name] に、新しいターゲットグループの名前を入力します。c. [Protocol] と [Port] を必要に応じて設定します。d. [Health checks] は、デフォルトのヘルスチェック設定のままにします。e. [Next: Register Targets] を選択します。

12. [Register Targets] で、次の操作を行ないます。

a. [Instances] で、EC2 インスタンスを選択します。b. サービスが使用するポートを入力し、[Add to registered] を選択します。c. 登録する各サービスで操作を繰り返します。完了したら、[Next: Review] を選択します。

13. [Review] ページで、[Create ] を選択します。14. ロードバランサーが正常に作成されたことが通知されたら、[Close] を選択します。

チュートリアル: AWS CLI を使用した ApplicationLoad Balancer の作成

このチュートリアルでは、AWS CLI を通じた Application Load Balancer の実践入門を示します。

開始する前に• 次のコマンドを使用して、Application Load Balancer をサポートするバージョンの AWS CLI を実行して

いることを確認します。

aws elbv2 help

elbv2 が有効な選択肢ではないことを示すエラーメッセージが発生した場合は、AWS CLI を更新します。詳細については、AWS Command Line Interface ユーザーガイド の「AWS コマンドラインインターフェイスのインストール」を参照してください。

• Virtual Private Cloud (VPC) で EC2 インスタンスを起動します。これらのインスタンスのセキュリティグループがリスナーポートとヘルスチェックポートでアクセスを許可することを確認します。詳細については、「ターゲットセキュリティグループ (p. 48)」を参照してください。

Load Balancer の作成最初のロードバランサーを作成するには、次のステップを完了します。

ロードバランサーを作成するには

1. ロードバランサーを作成するには、create-load-balancer コマンドを使用します。同じアベイラビリティーゾーンにない 2 つのサブネットを指定する必要があります。

aws elbv2 create-load-balancer --name my-load-balancer \--subnets subnet-12345678 subnet-23456789 --security-groups sg-12345678

出力には、次の形式でロードバランサーの Amazon リソースネーム (ARN) が含まれます。

12

Page 18: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerHTTPS リスナーの追加

arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/my-load-balancer/1234567890123456

2. ターゲットグループを指定し、EC2 インスタンスに使用したのと同じ VPC を指定するには、create-target-group コマンドを使用します。

aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 \--vpc-id vpc-12345678

出力には、次の形式のターゲットグループの ARN が含まれます。

arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/1234567890123456

3. インスタンスをターゲットグループに登録するには、register-targets コマンドを使用します。

aws elbv2 register-targets --target-group-arn targetgroup-arn \--targets Id=i-12345678 Id=i-23456789

4. ターゲットグループにリクエストを転送するデフォルトルールを持つロードバランサーのリスナーを作成するには、create-listener コマンドを使用します。

aws elbv2 create-listener --load-balancer-arn loadbalancer-arn \--protocol HTTP --port 80 \--default-actions Type=forward,TargetGroupArn=targetgroup-arn

出力には、次の形式のリスナーの ARN が含まれます。

arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/app/my-load-balancer/1234567890123456/1234567890123456

5. (オプション) この describe-target-health コマンドを使用してターゲットグループの登録されたターゲットのヘルスステータスを確認できます。

aws elbv2 describe-target-health --target-group-arn targetgroup-arn

HTTPS リスナーの追加HTTP リスナーを持つロードバランサーがある場合、次のように HTTPS リスナーを追加できます。

ロードバランサーに HTTPS リスナーを追加するには

1. 次のいずれかの方法を使用して、ロードバランサーで使用する SSL 証明書を作成します。

• AWS Certificate Manager (ACM) を使用して証明書を作成またはインポートします。詳細については、AWS Certificate Manager ユーザーガイドの「証明書のリクエスト」あるいは「証明書のインポート」を参照してください。

• AWS Identity and Access Management (IAM) を使用して証明書をアップロードします。詳細については、『IAM ユーザーガイド』の「サーバー証明書の使用」を参照してください。

2. ターゲットグループにリクエストを転送するデフォルトルールを持つリスナーを作成するには、create-listener コマンドを使用します。HTTPS リスナーを作成するときは、SSL 証明書を指定する必要があります。--ssl-policy オプションを使用してデフォルト以外の SSL ポリシーを指定できます。

13

Page 19: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerポートの上書きを使用したターゲットの追加

aws elbv2 create-listener --load-balancer-arn loadbalancer-arn \--protocol HTTPS --port 443 \--certificates CertificateArn=certificate-arn \--default-actions Type=forward,TargetGroupArn=targetgroup-arn

ポートの上書きを使用したターゲットの追加1 つのインスタンスに複数の ECS コンテナがある場合、各コンテナは別のポートで接続を受け入れます。毎回別のポートで、インスタンスをターゲットグループに複数回登録できます。

ポートの上書きを使用してターゲットを追加するには

1. ターゲットグループを作成するには、create-target-group コマンドを使用します。

aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 \--vpc-id vpc-12345678

2. インスタンスをターゲットグループに登録するには、register-targets コマンドを使用します。インスタンス ID はコンテナごとに同じですが、ポートは異なることに注意してください。

aws elbv2 register-targets --target-group-arn targetgroup-arn \--targets Id=i-12345678,Port=80 Id=i-12345678,Port=766

3. ターゲットグループにリクエストを転送するルールをリスナーに追加するには、create-rule コマンドを使用します。

aws elbv2 create-rule --listener-arn listener-arn --priority 10 \--actions Type=forward,TargetGroupArn=targetgroup-arn

パスベースのルーティングの追加1 つのターゲットグループにリクエストを転送するデフォルトルールを持つリスナーがある場合、URL に基づいて別のターゲットグループにリクエストを転送するルールを追加できます。たとえば、1 つのターゲットグループに全般的なリクエストをルーティングし、イメージを表示するリクエストを別のターゲットグループにルーティングできます。

パスパターンを持つリスナーにルールを追加するには

1. ターゲットグループを作成するには、create-target-group コマンドを使用します。

aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 \--vpc-id vpc-12345678

2. インスタンスをターゲットグループに登録するには、register-targets コマンドを使用します。

aws elbv2 register-targets --target-group-arn targetgroup-arn \--targets Id=i-12345678 Id=i-23456789

3. URL に指定されたパターンが含まれている場合に、ターゲットグループにリクエストを転送するルールをリスナーに追加するには、create-rule コマンドを使用します。

aws elbv2 create-rule --listener-arn listener-arn --priority 10 \--conditions Field=path-pattern,Values='/img/*' \

14

Page 20: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerロードバランサーの削除

--actions Type=forward,TargetGroupArn=targetgroup-arn

ロードバランサーの削除ロードバランサーとターゲットグループが必要なくなった場合は、次のように削除することができます。

aws elbv2 delete-load-balancer --load-balancer-arn loadbalancer-arnaws elbv2 delete-target-group --target-group-arn targetgroup-arn

15

Page 21: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerロードバランサーのセキュリティグループ

Application Load Balancerロードバランサーは、クライアントにとって単一の通信先として機能します。クライアントはロードバランサーにリクエストを送信し、ロードバランサーは複数のアベイラビリティーゾーンにあるターゲット (EC2 インスタンスなど) にそれらのリクエストを送信します。ロードバランサーを設定するには、ターゲットグループ (p. 40)を作成し、ターゲットグループにターゲットを登録します。さらに、リスナー (p. 27)を作成してクライアントからの接続リクエストがないかチェックし、リスナールールを作成してリクエストをクライアントから 1 つ以上のターゲットグループ内のターゲットにルーティングします。

目次• ロードバランサーのセキュリティグループ (p. 16)• ロードバランサーの状態 (p. 16)• ロードバランサーの属性 (p. 17)• IP アドレスタイプ (p. 17)• 削除保護 (p. 18)• 接続のアイドルタイムアウト (p. 18)• Application Load Balancers および AWS WAF (p. 19)• Application Load Balancer の作成 (p. 19)• Application Load Balancer のアベイラビリティーゾーン (p. 22)• Application Load Balancer のセキュリティグループ (p. 23)• Application Load Balancer の IP アドレスタイプ (p. 24)• Application Load Balancer のタグ (p. 25)• Application Load Balancer の削除 (p. 25)

ロードバランサーのセキュリティグループセキュリティグループは、ロードバランサーとの間で許可されているトラフィックを制御するファイアウォールとして機能します。インバウンドトラフィックとアウトバウンドトラフィックの両方を許可するポートとプロトコルを選択できます。

ロードバランサーのセキュリティグループに関連付けられたセキュリティグループのルールは、リスナーポートとヘルスチェックポートの両方における両方向のトラフィックを許可する必要があります。リスナーをロードバランサーに追加するとき、またはターゲットグループのヘルスチェックポートを更新するときは必ず、セキュリティグループルールを見直し、新しいポートで両方向のトラフィックが許可されていることを確認する必要があります。詳細については、「推奨ルール (p. 23)」を参照してください。

ロードバランサーの状態ロードバランサーの状態は次のいずれかです。

provisioning

ロードバランサーはセットアップ中です。

16

Page 22: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerロードバランサーの属性

active

ロードバランサーは完全にセットアップされており、トラフィックをルーティングする準備ができています。

failed

ロードバランサークラウドをセットアップできませんでした。

ロードバランサーの属性ロードバランサーの属性は以下のとおりです。

access_logs.s3.enabled

Amazon S3 に保存されたアクセスログが有効かどうかを示します。access_logs.s3.bucket

アクセスログの S3 バケットの名前。詳細については、「 バケットのアクセス許可 (p. 65)」を参照してください。

access_logs.s3.prefix

S3 バケットの場所のプレフィックス。プレフィックスを指定しない場合、アクセスログはバケットのルートに保存されます。

deletion_protection.enabled

削除保護が有効化されているかどうかを示します。デフォルト: false。idle_timeout.timeout_seconds

アイドルタイムアウト値 (秒単位)。デフォルト値は 60 秒です。routing.http2.enabled

HTTP/2 が有効化されているかどうかを示します。デフォルト: true。

IP アドレスタイプインターネット向けロードバランサーを作成するとき、またはそれがアクティブになった後は、その IP アドレスタイプを設定できます。内部ロードバランサーは、IPv4 アドレスを使う必要があります。

ロードバランサーの IP アドレスタイプを次に示します。

ipv4

ロードバランサーは IPv4 アドレス (例: 192.0.2.1) のみをサポートします。dualstack

ロードバランサーは IPv4 と IPv6 アドレスの両方 (例: 2001:0db8:85a3:0:0:8a2e:0370:7334) をサポートします。

IPv4 アドレスを使用してロードバランサーと通信するクライアントは A レコードを解決し、IPv6 アドレスを使用してロードバランサーと通信するクライアントは AAAA レコードを解決します。ただし、クライ

17

Page 23: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer削除保護

アントとロードバランサーとの通信方法に関係なく、ロードバランサーは IPv4 アドレスを使用してターゲットと通信します。

詳細については、「Application Load Balancer の IP アドレスタイプ (p. 24)」を参照してください。

削除保護ロードバランサーが誤って削除されるのを防ぐため、削除保護を有効にできます。デフォルトでは、ロードバランサーで削除保護が無効になっています。

ロードバランサーの削除保護を有効にした場合、ロードバランサーを削除する前に無効にする必要があります。

コンソールを使用して削除保護を有効にするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択します。4. [Description] タブで、[Edit attributes] を選択します。5. [ロードバランサー属性の編集] ページで、[削除保護] の [有効] を選択し、[保存] を選択します。6. [Save] を選択します。

コンソールを使用して削除保護を無効にするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択します。4. [Description] タブで、[Edit attributes] を選択します。5. [ロードバランサー属性の編集] ページで、[削除保護] の [有効] の選択を解除し、[保存] を選択します。6. [Save] を選択します。

AWS CLI を使用して削除保護を有効または無効にするには

deletion_protection.enabled 属性を指定して modify-load-balancer-attributes コマンドを使用します。

接続のアイドルタイムアウトクライアントがロードバランサーを通じて行うリクエストごとに、ロードバランサーは 2 つの接続を維持します。フロントエンド接続とはクライアントとロードバランサー間の接続を意味し、バックエンド接続とはロードバランサーとターゲット間の接続を意味します。ロードバランサーは、各フロントエンド接続で、指定された期間に接続でデータが送信されない場合にトリガーされるアイドルタイムアウトを管理します。アイドルタイムアウトが経過するまでデータが送受信されなかった場合、ロードバランサーはフロントエンド接続を閉じます。

デフォルトでは、Elastic Load Balancing はアイドルタイムアウト値を 60 秒に設定します。したがって、リクエストが転送中にターゲットが少なくとも 60 秒ごとにデータを送信しない場合、ロードバランサーはフロントエンド接続を閉じることができます。ファイルのアップロードなどの長いオペレーションで、

18

Page 24: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerApplication Load Balancers および AWS WAF

完了までの時間を確保するため、各アイドルタイムアウト期間が経過するまでに少なくても 1 バイトのデータを送信し、必要に応じてアイドルタイムアウトの長さを増やします。

バックエンド接続では EC2 インスタンスに HTTP キープアライブオプションを有効にすることが推奨されます。EC2 インスタンスのウェブサーバー設定で HTTP キープアライブを有効にできます。HTTP キープアライブを有効にすると、ロードバランサーはキープアライブのタイムアウト期間が終了するまで、バックエンド接続を再利用できます。

コンソールを使用してアイドルタイムアウト値を更新するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択します。4. [Description] タブで、[Edit attributes] を選択します。5. [Edit load balancer attributes] ページで、[Idle timeout] の値を秒単位で入力します。有効な範囲は 1 ~

4000 です。デフォルト値は 60 秒です。6. [Save] を選択します。

AWS CLI を使用してアイドルタイムアウト値を更新するには

idle_timeout.timeout_seconds 属性を指定して modify-load-balancer-attributes コマンドを使用します。

Application Load Balancers および AWS WAFApplication Load Balancer で AWS WAF を使用して、ウェブアクセスコントロールリスト (ウェブ ACL)のルールに基づいてリクエストを許可またはブロックできます。詳しくは、AWS WAF 開発者ガイドのウェブ ACL の使用を参照してください。

Application Load Balancer の作成ロードバランサーはクライアントからリクエストを受け取り、ターゲットグループのターゲット間でリクエストを分散します。

開始する前に、ターゲットが使用する各アベイラビリティーゾーンで少なくとも 1 つのパブリックサブネットを持つ Virtual Private Cloud (VPC) があることを確認します。

AWS CLI を使用してロードバランサーを作成する方法については、「チュートリアル: AWS CLI を使用した Application Load Balancer の作成 (p. 12)」を参照してください。

AWS マネジメントコンソール を使用してロードバランサーを作成するには、以下のタスクを完了します。

タスク• ステップ 1: ロードバランサーとリスナーを設定する (p. 5)• ステップ 2: HTTPS リスナーのセキュリティ設定を指定する (p. 20)• ステップ 3: セキュリティグループを設定する (p. 21)• ステップ 4: ターゲットグループを設定する (p. 6)• ステップ 5: ターゲットグループのターゲットを設定する (p. 21)

19

Page 25: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerステップ 1: ロードバランサーとリスナーを設定する

• ステップ 6: ロードバランサーを作成する (p. 22)

ステップ 1: ロードバランサーとリスナーを設定する最初に、名前、ネットワーク、1 つ以上のリスナーなど、ロードバランサーの基本的な設定情報を指定します。リスナーとは接続リクエストをチェックするプロセスです。これは、クライアントからロードバランサーへの接続用のプロトコルとポートを使用して設定します。サポートされるプロトコルとポートの詳細については、「リスナーの設定 (p. 27)」を参照してください。

ロードバランサーとリスナーを設定するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. [Create Load Balancer] を選択します。4. [Application Load Balancer] を選択し、[Continue] を選択します。5. [Name] に、ロードバランサーの名前を入力します。たとえば「my-alb」です。6. [Scheme] のインターネット向けロードバランサーは、クライアントからインターネット経由でリクエ

ストをターゲットにルーティングします。内部ロードバランサーは、プライベート IP アドレスを使用してターゲットにリクエストをルーティングします。

7. [Listeners] のデフォルトは、ポート 80 で HTTP トラフィックを受け付けるリスナーです。デフォルトのリスナー設定を保持する、プロトコルを変更する、またはポートを変更することができます。[Add] を選択して別のリスナー (たとえば、HTTPS リスナー) を追加します。

8. [Availability Zones] で、VPC から少なくとも 2 つのアベイラビリティーゾーンを選択します。アベイラビリティーゾーンに対して 1 つのサブネットがある場合、そのサブネットが選択されます。そのアベイラビリティーゾーンに複数のサブネットがある場合は、いずれかのサブネットを選択します。アベイラビリティーゾーンにつき、1 つのサブネットしか選択できないことに注意してください。

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

ステップ 2: HTTPS リスナーのセキュリティ設定を指定する前のステップでセキュアリスナーを作成した場合は、必要なセキュリティ設定を指定します。それ以外の場合は、ウィザードの次のページに進みます。

ロードバランサーに HTTPS を使用するときは、ロードバランサーに SSL 証明書をデプロイする必要があります。ターゲットにリクエストを送信する前に、ロードバランサーはこの証明書を使用して接続を終了し、クライアントからのリクエストを復号します。詳細については、「SSL 証明書 (p. 31)」を参照してください。また、クライアントとの SSL 接続のネゴシエーションのためにロードバランサーが使用するセキュリティポリシーも指定する必要があります。詳細については、「セキュリティポリシー (p. 31)」を参照してください。

証明書とセキュリティポリシーを設定するには

1. [デフォルトの証明書の選択] で、次のいずれかを実行します。

• AWS Certificate Manager を使用して証明書を作成またはインポートした場合は、[ACM から証明書を選択する] を選択し、[証明書名] から証明書を選択します。

• IAM を使用して証明書をアップロードした場合は、[IAM から証明書を選択する] を選択し、[証明書名] から証明書を選択します。

2. [セキュリティポリシー] では、デフォルトのセキュリティポリシーを維持することをお勧めします。

20

Page 26: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerステップ 3: セキュリティグループを設定する

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

ステップ 3: セキュリティグループを設定するロードバランサーのセキュリティグループは、リスナーポート ポートとヘルスチェックポートの両方で登録済みターゲットとの通信を許可する必要があります。コンソールは、この通信を許可するルールにより、お客様に代わってロードバランサー用のセキュリティグループを作成できます。希望する場合は、代わりにセキュリティグループを作成して選択することもできます。詳細については、「推奨ルール (p. 23)」を参照してください。

ロードバランサーのセキュリティグループを設定するには

1. [Create a new security group] を選択します。2. セキュリティグループの名前と説明を入力するか、デフォルトの名前と説明を維持します。この新

しいセキュリティグループには、[Configure Load Balancer] ページでロードバランサー用に選択したポートへのトラフィックを許可するルールが含まれます。

3. [Next: Configure Routing] を選択します。

ステップ 4: ターゲットグループを設定するターゲットグループにターゲットを登録します。このステップで設定するターゲットグループは、リクエストをターゲットグループに転送するデフォルトのリスナールールで、ターゲットグループとして使用されます。詳細については、「Application Load Balancer のターゲットグループ (p. 40)」を参照してください。

ターゲットグループを設定するには

1. [Target group] で、デフォルトの [New target group] を保持します。2. [Name] に、ターゲットグループの名前を入力します。3. [Protocol] と [Port] を必要に応じて設定します。4. [Target type] には、instance を選択してインスタンス ID でターゲットを指定するか、ip を選択し

て IP アドレスでターゲットを指定します。5. [Health checks] は、デフォルトのヘルスチェック設定のままにします。6. [Next: Register Targets] を選択します。

ステップ 5: ターゲットグループのターゲットを設定するApplication Load Balancer を使用して、ターゲットグループに選択したターゲットタイプによってインスタンス ID または IP アドレスを使用してターゲットを登録します。

インスタンス ID でターゲットを登録するには

1. [Instances] で、1 つ以上のインスタンスを選択します。2. インスタンスのリスナーポートを入力し、[Add to registered] を選択します。3. インスタンスの登録が完了したら、[Next: Review] を選択します。

IP アドレスでターゲットを登録するには

1. 各 IP アドレスを登録するには、次の操作を行います。

21

Page 27: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerステップ 6: ロードバランサーを作成する

a. [Network] で、IP アドレスがターゲットグループ VPC のサブネットからのものである場合は、VPC を選択します。それ以外の場合は、[Other private IP address] を選択します。

b. [IP] に IP アドレスを入力します。c. [Port] にポートを入力します。d. [Add to list] を選択します。

2. IP アドレスのリストへの追加が完了したら、[Next: Review] を選択します。

ステップ 6: ロードバランサーを作成するロードバランサーを作成したら、ターゲットが最初のヘルスチェックに合格したことを確認してから、ロードバランサーがターゲットにトラフィックを送信することをテストできます。ロードバランサーの操作を終了したら、ロードバランサーを削除できます。詳細については、「Application Load Balancer の削除 (p. 25)」を参照してください。

ロードバランサーを作成するには

1. [Review] ページで、[Create ] を選択します。2. ロードバランサーが作成されたら、[Close] を選択します。3. (オプション) パスパターンまたはホスト名に基づいてリクエストを転送する追加のリスナールールを

定義する方法については、「ルールの追加 (p. 34)」を参照してください。

Application Load Balancer のアベイラビリティーゾーン

アベイラビリティーゾーンは、ロードバランサーに対していつでも有効または無効にできます。アベイラビリティーゾーンを有効にしたら、ロードバランサーはこれらのアベイラビリティーゾーン内の登録済みターゲットにリクエストをルーティングするようになります。有効な各アベイラビリティーゾーンに少なくとも 1 つの登録済みターゲットがあるようにする場合、ロードバランサーが最も効果的です。

アベイラビリティーゾーンを無効にすると、そのアベイラビリティーゾーン内のターゲットはロードバランサーに登録されたままですが、ロードバランサーはリクエストをターゲットにルーティングしなくなります。

コンソールを使用してアベイラビリティーゾーンを更新するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択します。4. [Description] タブの [Basic Configuration] で、[Edit Availability Zones] を選択します。5. アベイラビリティーゾーンを有効にするには、そのアベイラビリティーゾーンのチェックボックスを

オンにします。そのアベイラビリティーゾーンに対して 1 つのサブネットがある場合、そのサブネットが選択されます。そのアベイラビリティーゾーンに複数のサブネットがある場合は、いずれかのサブネットを選択します。アベイラビリティーゾーンにつき、1 つのサブネットしか選択できないことに注意してください。

6. 有効なアベイラビリティーゾーンのサブネットを変更するには、[Change subnet] を選択し、その他のサブネットの 1 つを選択します。

7. アベイラビリティーゾーンを削除するには、そのアベイラビリティーゾーンのチェックボックスをオフにします。

22

Page 28: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerセキュリティグループの更新

8. [Save] を選択します。

AWS CLI を使用してアベイラビリティーゾーンを更新するには

set-subnets コマンドを使用します。

Application Load Balancer のセキュリティグループロードバランサーが、リスナーポートとヘルスチェックポートの両方で、登録済みターゲットと通信できることを確認する必要があります。ロードバランサーにリスナーを追加するか、リクエストをルーティングするためにロードバランサーにより使用されるターゲットグループのヘルスチェックポートを更新する場合は必ず、ロードバランサーに関連付けられたセキュリティグループが新しいポートで両方向のトラフィックを許可することを確認する必要があります。許可しない場合、現在関連付けられているセキュリティグループのルールを編集するか、別のセキュリティグループをロードバランサーに関連付けることができます。

推奨ルール推奨ルールは、ロードバランサーのタイプ (インターネット向けまたは内部向け) によって異なります。

インターネット接続ロードバランサー

インバウンド

送信元 ポート範囲 コメント

0.0.0.0/0 リリリリ ロードバランサーのリスナーポートですべてのインバウンドトラフィックを許可する

アウトバウンド

送信先 ポート範囲 コメント

リリリリリリリリリリリリリリリリ リリリリリリリリリリ インスタンスリスナーポートでインスタンスへのアウトバウンドトラフィックを許可する

リリリリリリリリリリリリリリリリ リリリリリリリ ヘルスチェックポートでインスタンスへのアウトバウンドトラフィックを許可する

内部ロードバランサー

インバウンド

送信元 ポート範囲 コメント

VPC CIDR リリリリ ロードバランサーのリスナーポートで VPC CIDRからのインバウンドトラフィックを許可する

アウトバウンド

送信先 ポート範囲 コメント

リリリリリリリリリリリリリリリリ リリリリリリリリリリ インスタンスリスナーポートでインスタンスへのアウトバウンドトラフィックを許可する

23

Page 29: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer関連付けられたセキュリティグループの更新

リリリリリリリリリリリリリリリリ リリリリリリリ ヘルスチェックポートでインスタンスへのアウトバウンドトラフィックを許可する

また、パス MTU 検出をサポートするため、インバウンド ICMP トラフィックを許可することをお勧めします。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「パス MTU 検出」を参照してください。

関連付けられたセキュリティグループの更新ロードバランサーに関連付けられたセキュリティグループは、いつでも更新できます。

コンソールを使用してセキュリティグループの更新するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択します。4. [Description] タブの [Security] で、[Edit security groups] を選択します。5. セキュリティグループをロードバランサーに関連付けるには、そのセキュリティグループを選択しま

す。セキュリティグループをロードバランサーから削除するには、そのセキュリティグループを選択解除します。

6. [Save] を選択します。

AWS CLI を使用してセキュリティグループを更新するには

set-security-groups コマンドを使用します。

Application Load Balancer の IP アドレスタイプIPv4 トラフィックのみ、または IPv4 と IPv6 トラフィックの両方をルーティングするよう ApplicationLoad Balancer を設定できます。詳細については、「IP アドレスタイプ (p. 17)」を参照してください。

IPv6 の要件

• インターネット向けロードバランサー。• Virtual Private Cloud (VPC) には、関連付けられた IPv6 CIDR ブロックを持つサブネットがあります。

詳細については、Amazon EC2 ユーザーガイドの「IPv6 アドレス」を参照してください。

IP アドレスを更新するには、コンソールを使用して入力します。

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択します。4. [Actions]、[Edit IP address type] を選択します。5. [IP address type] で、[ipv4] を選択して IPv4 アドレスのみをサポートするか、[dualstack] を選択して

IPv4 と IPv6 アドレスの両方をサポートします。6. [Save] を選択します。

AWS CLI を使用して IP アドレスタイプを更新するには

set-ip-address-type コマンドを使用します。

24

Page 30: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerタグの更新

Application Load Balancer のタグタグを使用すると、ロードバランサーを目的、所有者、環境などさまざまな方法で分類することができます。

各ロードバランサーに対して複数のタグを追加できます。タグキーは、各ロードバランサーで一意である必要があります。すでにロードバランサーに関連付けられているキーを持つタグを追加すると、そのキーの値が更新されます。

タグが不要になったら、ロードバランサーからタグを削除できます。

制限

• リソースあたりのタグの最大数 – 50• キーの最大長 – 127 文字 (Unicode)• 値の最大長 – 255 文字 (Unicode)• タグのキーと値は大文字と小文字が区別されます。使用できる文字は、UTF-8 で表現できる文字、ス

ペース、および数字と、特殊文字 +、-、=、.、_、:、/、@ です。ただし、先頭または末尾にはスペースを使用しないでください。

• タグの名前または値に aws: プレフィックスは使用しないでください。このプレフィックスは AWS 用に予約されています。このプレフィックスが含まれるタグの名前または値は編集または削除できません。このプレフィックスを持つタグは、リソースあたりのタグ数の制限時には計算されません。

コンソールを使用してロードバランサーのタグを更新するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択します。4. [Tags] タブで、[Add/Edit Tags] を選択し、次のうち 1 つ以上を選択します。

a. タグを更新するには、[Key] と [Value] の値を編集します。b. 新しいタグを追加するには、[Create Tag] を選択し、[Key] と [Value] の値を入力します。c. タグを削除するには、タグの横にある削除アイコン (X) を選択します。

5. タグの更新を完了したら、[Save] を選択します。

AWS CLI を使用してロードバランサーのタグを更新するには

add-tags コマンドと remove-tags コマンドを使用します。

Application Load Balancer の削除ロードバランサーが利用可能になると、ロードバランサーの実行時間に応じて 1 時間ごと、または 1 時間未満の時間について課金されます。不要になったロードバランサーは削除できます。ロードバランサーが削除されると、ロードバランサーの課金も停止されます。

削除保護が有効になった場合、ロードバランサーを削除することはできません。詳細については、「削除保護 (p. 18)」を参照してください。

ロードバランサーを削除しても、登録済みターゲットには影響を与えない点に注意してください。たとえば、EC2 インスタンスは実行を続け、ターゲットグループに登録されたままです。ターゲットグループを削除するには、「ターゲットグループの削除 (p. 51)」を参照してください。

25

Page 31: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerロードバランサーの削除

コンソールを使用してロードバランサーを削除するには

1. ロードバランサーをポイントするドメインの CNAME レコードが存在する場合は、新しい場所にポイントして DNS の変更が有効になってから、ロードバランサーを削除します。

2. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。3. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。4. ロードバランサーを選択して [Actions]、[Delete] を選択します。5. 確認を求めるメッセージが表示されたら、[Yes, Delete] を選択します。

AWS CLI を使用してロードバランサーを削除するには

delete-load-balancer コマンドを使用します。

26

Page 32: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerリスナーの設定

Application Load Balancer のリスナー

Application Load Balancerの使用を開始する前に、1 つ以上のリスナーを追加する必要があります。リスナーとは、設定したプロトコルとポートを使用して接続リクエストをチェックするプロセスです。リスナーに対して定義したルールは、ロードバランサーが 1 つ以上のターゲットグループ内のターゲットにリクエストをルーティングする方法を決定します。

目次• リスナーの設定 (p. 27)• リスナールール (p. 27)• ホストの条件 (p. 28)• パスの条件 (p. 29)• Application Load Balancer のリスナーの作成 (p. 29)• Application Load Balancer の HTTPS リスナー (p. 30)• Application Load Balancer のリスナールール (p. 33)• サーバー証明書の更新 (p. 36)• Application Load Balancer のリスナーの削除 (p. 38)

リスナーの設定リスナーは次のポートとプロトコルをサポートします。

• プロトコル: HTTP、HTTPS• ポート: 1 ~ 65535

ターゲットがメインワークに集中できるように、HTTPS リスナーを使用して、暗号化および復号の作業をロードバランサーに任せることができます。リスナープロトコルが HTTPS の場合は、リスナーに SSLサーバー証明書を 1 つだけデプロイする必要があります。詳細については、「Application Load Balancerの HTTPS リスナー (p. 30)」を参照してください。

Application Load Balancer は Websockets のネイティブ サポートを提供します。WebSocket は、HTTP リスナーと HTTPS リスナーの両方で使用できます。

Application Load Balancer は、HTTPS リスナーに HTTP/2 のネイティブ サポートを提供します。1 つのHTTP/2 コネクションで最大 128 のリクエストを並行して送信できます。 ロードバランサーは、これらのリクエストを個々の HTTP/1.1 のリクエストに変換し、ラウンドロビンルーティングアルゴリズムを使用してターゲットグループの正常なターゲットにこれを分配します。 HTTP/2 ではフロントエンド接続を効率的に使用するため、クライアントとロードバランサー間の接続数が減少します。HTTP/2 のサーバープッシュ機能は使用できないことに注意してください。

リスナールール各リスナーにはデフォルトのルールがあり、オプションで追加のルールを定義できます。各ルールは、優先順位、アクション、ホスト条件 (オプション)、およびパス条件 (オプション) で構成されます。

27

Page 33: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerデフォルトのルール

デフォルトのルールリスナーを作成するときは、デフォルトのルールのアクションを定義します。デフォルトのルールに条件を定義することはできません。リスナーのルールに設定された条件のいずれも満たされない場合は、デフォルトのルールのアクションが実行されます。

デフォルトのルールの例を、コンソールに表示されるとおりに次に示します。

ルールの優先順位各ルールには優先順位があります。ルールは優先順位の低~高順によって評価されます。デフォルトのルールが最後に評価されます。デフォルト以外のルールは、優先順位をいつでも変更できます。デフォルトルールの優先順位は変更できません。詳細については、「ルールの順序変更 (p. 35)」を参照してください。

ルールのアクションルールのアクションごとに 1 つのタイプと 1 つのターゲットグループがあります。現在サポートされている唯一のタイプは、ターゲットグループにリクエストを転送する forward です。ルールのターゲットグループはいつでも変更できます。詳細については、「ルールの編集 (p. 35)」を参照してください。

ルールの条件ルールには、ホストとパスという 2 つのルール条件があります。ルールの条件が満たされると、アクションが実行されます。

ホストの条件ホストの条件を使用して、ホストヘッダーのホスト名に基づいて別のターゲットグループにリクエストを転送する (ホストベースのルーティングとも呼ばれます) ルールを定義できます。これにより、1 つのロードバランサーを使用して複数のドメインをサポートできます。

各ホスト条件には 1 つのホスト名が含まれています。ホストヘッダーのホスト名がリスナールールのホスト名に正確に一致する場合、リクエストはそのルールを使用してルーティングされます。

ホスト名では大文字と小文字が区別され、最大 128 文字までの次の文字を含めることができます。また、3 つまでのワイルドカード文字を含めることができます。

• A~Z、a~z、0~9• - .• * (0 個以上の文字と一致します)• ? (正確に 1 個の文字と一致します)

ホスト名の例

• example.com

• test.example.com

• *.example.com

28

Page 34: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerパスの条件

*.example.com は test.example.com に一致しますが、example.com には一致しません。

コンソールの例

コンソールに示すホスト条件を持つルールの例を次に示します。ホストヘッダーのホスト名が*.example.com に一致する場合、リクエストは my-web-servers という名前のターゲットグループに転送されます。詳細については、「ルールの追加 (p. 34)」を参照してください。

パスの条件パスの条件を使用して、リクエスト内の URL に基づいてリクエストを別のターゲットグループに転送するルールを定義できます (パスベースのルーティングとも呼ばれます)。

パスの各状態には 1 つのパスパターンがあります。リクエストの URL がリスナールールのパスパターンに正確に一致する場合、リクエストはそのルールを使用してルーティングされます。

パスパターンでは大文字と小文字が区別され、最大 128 文字までの次の文字を含めることができます。また、3 つまでのワイルドカード文字を含めることができます。

• A~Z、a~z、0~9• _ - . $ / ~ " ' @ : +• & (使用 &)• * (0 個以上の文字と一致します)• ? (正確に 1 個の文字と一致します)

パスパターンの例

• /img/*

• /js/*

リクエストのルーティングにパスパターンが使用されますが、パスパターンは変更されないことに注意してください。たとえば、ルールにパスパターン /img/* がある場合、ルールは /img/picture.jpg のリクエストを /img/picture.jpg のリクエストとして、指定されたターゲットグループに転送します。

コンソールの例

コンソールに表示されたパス条件を持つルールの例を次に示します。リクエストの URL が /img/* と一致する場合、リクエストは my-targets という名前のターゲットグループに転送されます。詳細については、「ルールの追加 (p. 34)」を参照してください。

Application Load Balancer のリスナーの作成リスナーとは接続リクエストをチェックするプロセスです。ロードバランサーを作成するときにリスナーを定義し、いつでもロードバランサーにリスナーを追加できます。

29

Page 35: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer前提条件

前提条件• デフォルトのリスナールールのターゲットグループを指定する必要があります。詳細については、

「ターゲットグループの作成 (p. 43)」を参照してください。• HTTPS リスナーを作成するときに、証明書とセキュリティポリシーを指定する必要があります。ター

ゲットにリクエストをルーティングする前に、ロードバランサーはこの証明書を使用して接続を終了し、クライアントからのリクエストを復号します。詳細については、「SSL 証明書 (p. 31)」を参照してください。ロードバランサーは、クライアントと SSL 接続のネゴシエーションを行うときにセキュリティポリシーを使用します。詳細については、「セキュリティポリシー (p. 31)」を参照してください。

リスナーの追加クライアントからロードバランサーへの接続用のプロトコルとポート、およびデフォルトのリスナールールのターゲットグループでリスナーを設定します。詳細については、「リスナーの設定 (p. 27)」を参照してください。

コンソールを使用してリスナーを追加するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択し、[リスナー]、[リスナーの追加] を選択します。4. [Protocol] で、[HTTP] または [HTTPS (Secure HTTP)] を選択します。5. [Port] で、デフォルトポートのままにすることも、別のポートを入力することもできます。6. [Default target group] で、使用可能なターゲットグループを選択します。7. [HTTPS リスナー] [デフォルトの証明書の選択] で、次のいずれかを実行します。

• AWS Certificate Manager を使用して証明書を作成またはインポートした場合は、[ACM から証明書を選択する] を選択し、[証明書名] から証明書を選択します。

• IAM を使用して証明書をアップロードした場合は、[IAM から証明書を選択する] を選択し、[証明書名] から証明書を選択します。

8. [HTTPS リスナー] [Security policy] で、デフォルトのセキュリティポリシーを保持することをお勧めします。

9. [Create] を選択します。10. (オプション) パスパターンまたはホスト名に基づいてリクエストを転送する追加のリスナールールを

定義する方法については、「ルールの追加 (p. 34)」を参照してください。

AWS CLI を使用してリスナーを追加するには

create-listener コマンドを使用してリスナーとデフォルトのルールを作成し、create-rule コマンドを使用して追加のリスナールールを定義します。

Application Load Balancer の HTTPS リスナー暗号化された接続を使用するリスナーを作成できます (SSL オフロードとも呼ばれます)。この機能によって、ロードバランサーと SSL あるいは TLS セッションを開始したクライアント間のトラフィックを暗号化できます。

HTTPS リスナーを使用するには、ロードバランサーに SSL/TLS サーバー証明書をデプロイする必要があります。ターゲットにリクエストを送信する前に、ロードバランサーはこの証明書を使用して接続を終了し、クライアントからのリクエストを復号します。

30

Page 36: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerSSL 証明書

Elastic Load Balancing は、セキュリティポリシーと呼ばれる Secure Socket Layer (SSL) ネゴシエーション設定を使用して、クライアントとロードバランサー間の SSL 接続をネゴシエートします。セキュリティポリシーはプロトコルと暗号の組み合わせです。 プロトコルは、クライアントとサーバーの間の安全な接続を確立し、クライアントとロードバランサーの間で受け渡しされるすべてのデータのプライバシーを保証します。暗号とは、暗号化キーを使用してコード化されたメッセージを作成する暗号化アルゴリズムです。プロトコルは、複数の暗号を使用し、インターネットを介してデータを暗号化します。 接続ネゴシエーションのプロセスで、クライアントとロードバランサーでは、それぞれサポートされる暗号とプロトコルのリストが優先される順に表示されます。デフォルトでは、サーバーのリストで最初にクライアントの暗号と一致した暗号が安全な接続用に選択されます。

SSL 証明書ロードバランサーは X.509 証明書 (SSL/TLS サーバー証明書) を使用します。証明書とは、認証機関 (CA)によって発行された識別用デジタル形式です。証明書には、認識用情報、有効期間、パブリックキー、シリアル番号と発行者のデジタル署名が含まれます。

ロードバランサーで使用する証明書を作成するときに、ドメイン名を指定する必要があります。

AWS Certificate Manager (ACM) を使用して、ロードバランサーの証明書を作成することをお勧めします。ACM は Elastic Load Balancing と統合して、ロードバランサーに証明書をデプロイできます。詳細については、「AWS Certificate Manager ユーザーガイド」を参照してください。

また、SSL/TLS を使用して署名証明書リクエスト (CSR) を作成し、CA から CSR 署名を取得して証明書を発行し、ACM にこの証明書をインポートする、あるいは AWS Identity and Access Management(IAM) に証明書をアップロードすることもできます。ACM への証明書のインポートに関する詳細については、AWS Certificate Manager ユーザーガイドの「証明書のインポート」を参照してください。IAM にアップロードする証明書に関する詳細については、IAM ユーザーガイド の「サーバー証明書の使用」 を参照してください。

安全なリスナーを作成するには、デフォルトの証明書を指定します。別の証明書を追加することで、リスナーにオプションの証明書リストを作成できます。これによって、ロードバランサーが複数のドメインを同じポートでサポートし、各ドメインに別々の証明書を提供できます。詳細については、「サーバー証明書の更新 (p. 36)」を参照してください。

クライアントは、Server Name Identification (SNI) プロトコル拡張子を使用して到達先のホスト名を指定します。ホスト名が証明書と一致しない場合、ロードバランサーはデフォルトの証明書を選択します。ホスト名が単一の証明書と一致する場合、ロードバランサーはこの証明書を選択します。クライアントが提供するホスト名が複数の証明書と一致する場合、ロードバランサーはクライアントがサポートできる最適な証明書を選択します。証明書の選択は、次の条件と順序に基づいて行われます。

• パブリックキーアルゴリズム (RSA よりも ECDSA が優先)• ハッシュアルゴリズム (MD5 よりも SHA が優先)• キーの長さ (最大が優先)• 有効期間

ロードバランサーアクセスログエントリは、クライアントが指定したホスト名とクライアントが提出する証明書を示します。詳細については、「アクセスログのエントリ (p. 62)」を参照してください。

セキュリティポリシーフロントエンド接続に使用するセキュリティポリシーを選択できます。バックエンド接続には、常にELBSecurityPolicy-2016-08 セキュリティポリシーが使用されます。Application Load Balancer はカスタムセキュリティポリシーをサポートしていません。

Elastic Load Balancing に用意されている Application Load Balancer 用のセキュリティポリシーは次のとおりです。

31

Page 37: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerセキュリティポリシー

• ELBSecurityPolicy-2016-08

• ELBSecurityPolicy-TLS-1-2-2017-01

• ELBSecurityPolicy-TLS-1-1-2017-01

• ELBSecurityPolicy-2015-05

• ELBSecurityPolicy-TLS-1-0-2015-04

一般的な使用には ELBSecurityPolicy-2016-08 ポリシーをお勧めします。ELBSecurityPolicy-TLS ポリシーの 1 つを使用して、特定の TLS プロトコルバージョンを無効にする必要があるコンプライアンスおよびセキュリティ標準を満たすか、廃止された暗号を必要とするレガシークライアントをサポートできます。TLS バージョン 1.0 を必要とするのは、少数のインターネットクライアントのみです。ロードバランサーへのリクエストの TLS プロトコルバージョンを表示するには、ロードバランサーのアクセスログ記録を有効にして、アクセスログを調べます。詳細については、「アクセスログ (p. 60)」を参照してください。

次の表は、Application Load Balancer に定義されたセキュリティポリシーについて示しています。

セキュリティポリシー 2016-08 * TLS-1-1 TLS-1-2 TLS-1-0 †

TLS Protocols

Protocol-TLSv1 ♦     ♦

Protocol-TLSv1.1 ♦ ♦   ♦

Protocol-TLSv1.2 ♦ ♦ ♦ ♦

TLS Ciphers

ECDHE-ECDSA-AES128- GCM-SHA256 ♦ ♦ ♦ ♦

ECDHE-RSA-AES128- GCM-SHA256 ♦ ♦ ♦ ♦

ECDHE-ECDSA-AES128-SHA256 ♦ ♦ ♦ ♦

ECDHE-RSA-AES128-SHA256 ♦ ♦ ♦ ♦

ECDHE-ECDSA-AES128-SHA ♦ ♦   ♦

ECDHE-RSA-AES128-SHA ♦ ♦   ♦

ECDHE-ECDSA-AES256- GCM-SHA384 ♦ ♦ ♦ ♦

ECDHE-RSA-AES256- GCM-SHA384 ♦ ♦ ♦ ♦

ECDHE-ECDSA-AES256-SHA384 ♦ ♦ ♦ ♦

ECDHE-RSA-AES256-SHA384 ♦ ♦ ♦ ♦

ECDHE-RSA-AES256-SHA ♦ ♦   ♦

ECDHE-ECDSA-AES256-SHA ♦ ♦   ♦

AES128-GCM-SHA256 ♦ ♦ ♦ ♦

AES128-SHA256 ♦ ♦ ♦ ♦

AES128-SHA ♦ ♦   ♦

AES256-GCM-SHA384 ♦ ♦ ♦ ♦

32

Page 38: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerセキュリティポリシーの更新

セキュリティポリシー 2016-08 * TLS-1-1 TLS-1-2 TLS-1-0 †

AES256-SHA256 ♦ ♦ ♦ ♦

AES256-SHA ♦ ♦   ♦

DES-CBC3-SHA       ♦

* Application Load Balancer の ELBSecurityPolicy-2016-08 および ELBSecurityPolicy-2015-05のセキュリティポリシーは同じです。

† DES-CBC3-SHA 暗号 (弱い暗号) を必要とするレガシークライアントをサポートする必要がない限り、このセキュリティポリシーは使用しないでください。

AWS CLI を使用して、Application Load Balancer のセキュリティポリシーの設定を表示するには、describe-ssl-policies コマンドを使用します。

セキュリティポリシーの更新HTTPS リスナーを作成するときに、ニーズを満たすセキュリティポリシーを選択できます。新しいセキュリティのポリシーを追加したら、HTTPS リスナーを更新して新しいセキュリティポリシーを使用できます。Application Load Balancer はカスタムセキュリティポリシーをサポートしないことに注意してください。

コンソールを使用してセキュリティポリシーを更新するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択します。4. HTTPS リスナー用の [Listeners] タブで、[Edit] を選択します。5. [Select Security Policy] で、セキュリティポリシーを選択します。6. [Save] を選択します。

AWS CLI を使用してセキュリティポリシーを更新するには

modify-listener コマンドを使用します。

Application Load Balancer のリスナールールリスナーに対して定義したルールは、ロードバランサーが 1 つ以上のターゲットグループ内のターゲットにリクエストをルーティングする方法を決定します。

各ルールは、優先順位、アクション、ホスト条件 (オプション)、およびパス条件 (オプション) で構成されます。詳細については、「リスナールール (p. 27)」を参照してください。

Note

コンソールには、ルールの優先度ではなく、各ルールの相対シーケンス番号が表示されます。AWS CLI または Elastic Load Balancing API を使用してルールを記述することによって、ルールの優先度を取得できます。

33

Page 39: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer前提条件

前提条件ルールは、そのターゲットグループにリクエストをルーティングします。ルールを作成する、またはルールのターゲットグループを更新する前に、ターゲットグループを作成してターゲットを追加します。詳細については、「ターゲットグループの作成 (p. 43)」を参照してください。

ルールの追加リスナーを作成するときはデフォルトのルールを定義し、デフォルト以外の追加のルールはいつでも定義できます。

コンソールを使用してルールを追加するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択し、[Listeners] を選択します。4. 更新するリスナーについては、[View/edit rules] を選択します。5. メニューバーの [Add rules] アイコン (プラス記号) を選択します。これにより、優先順位でルールを挿

入できる場所に、[Insert Rule] アイコンが追加されます。

6. ルールを次のように定義します。

a. [Insert Rule] を選択します。b. ホストベースのルーティングを設定するには、[Host] を選択し、ホスト名 (例: *.example.com)

を入力します。c. パスベースのルーティングを設定するには、[Path] を選択し、パスパターン (例: /img/*) を入力

します。既にホスト条件を追加している場合は、アンパーサンド (&) を選択してパス条件を追加する必要があります。

d. [Forward to] で、ターゲットグループを選択します。e. (オプション) ルールの順序を変更するには、矢印を使用します。最も低い優先度は常にデフォル

トのルールに設定されます。f. [Save] を選択します。

7. この画面をそのままにして、メニューバーの [Back to the load balancer] (戻るボタン) を選択します。

AWS CLI を使用してルールを追加するには

ルールを作成するには、create-rule コマンドを使用します。ルールに関する情報を確認するには、describe-rules コマンドを使用します。

34

Page 40: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerルールの編集

ルールの編集ルールのアクションおよび条件はいつでも編集できます。

コンソールを使用してルールを編集するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択し、[Listeners] を選択します。4. 更新するリスナーについては、[View/edit rules] を選択します。5. メニューバーの [Edit rules] アイコン (鉛筆) を選択します。

6. 編集するルールについては、[Edit rules] アイコン (鉛筆) を選択します。7. (オプション) 必要に応じて、ホストとパスの条件を変更します。たとえば、ホスト条件の新しいホス

ト名の入力、パス条件の新しいパスパターンの入力、パス条件の追加 (まだ条件がない場合)、ホスト条件の追加 (まだ条件がない場合)、[Delete condition] アイコン (ごみ箱) を使用した条件の削除ができます。デフォルトのルールに条件を追加することはできません。

8. (オプション) [Forward to] から新しいターゲットグループを選択します。9. [Update] を選択します。10. この画面をそのままにして、メニューバーの [Back to the load balancer] (戻るボタン) を選択します。

AWS CLI を使用してルールを編集するには

modify-rule コマンドを使用します。

ルールの順序変更ルールは優先順位の低~高順によって評価されます。デフォルトのルールが最後に評価されます。デフォルト以外のルールは、優先順位をいつでも変更できます。デフォルトルールの優先順位は変更できません。

Note

コンソールには、ルールの優先度ではなく、各ルールの相対シーケンス番号が表示されます。コンソールを使用してルールの順序を変更すると、既存のルールの優先度に基づいて新しいルールの優先度が取得されます。ルールの優先度を特定の値に設定するには、AWS CLI または ElasticLoad Balancing API を使用します。

35

Page 41: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerルールの削除

コンソールを使用してルールの順序を変更するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択し、[Listeners] を選択します。4. 更新するリスナーについては、[View/edit rules] を選択します。5. メニューバーの [Reorder rules] アイコン (矢印) を選択します。

6. ルールの横にあるチェックボックスをオンにしてから、矢印を使ってルールに新しい優先順位を設定します。最も低い優先度は常にデフォルトのルールに設定されます。

7. ルールの順序変更を完了したら、[Save] を選択します。8. この画面をそのままにして、メニューバーの [Back to the load balancer] (戻るボタン) を選択します。

AWS CLI を使用してルールの優先順位を更新するには

set-rule-priorities コマンドを使用します。

ルールの削除リスナーのデフォルト以外のルールはいつでも削除できます。リスナーのデフォルトのルールは削除できません。リスナーを削除すると、そのルールはすべて削除されます。

コンソールを使用してルールを削除するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択し、[Listeners] を選択します。4. 更新するリスナーについては、[View/edit rules] を選択します。5. メニューバーの [Delete rules] アイコン (ごみ箱) を選択します。6. ルールの横にあるチェックボックスをオンにします。リスナーのデフォルトのルールは削除できませ

ん。7. [Yes, Delete] を選択します。8. この画面をそのままにして、メニューバーの [Back to the load balancer] (戻るボタン) を選択します。

AWS CLI を使用してルールを削除するには

delete-rule コマンドを使用します。

サーバー証明書の更新安全なリスナーを作成するには、デフォルトの証明書を指定します。別の証明書を追加することで、リスナーに証明書リストを作成することもできます。

各証明書には有効期間が記載されています。有効期間が終わる前に、証明書を更新するか、置き換える必要があります。証明書を更新または置き換えしても、ロードバランサーノードが受信し、正常なターゲッ

36

Page 42: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer証明書の追加

トへのルーティングを保留中の未処理のリクエストには影響しません。証明書更新後、新しいリクエストは更新された証明書を使用します。証明書置き換え後、新しいリクエストは新しい証明書を使用します。

証明書の更新と置き換えは次のとおりに管理できます。

• AWS Certificate Manager が提供し、ロードバランサーにデプロイされた証明書は、自動的に更新できます。ACM は期限切れになる前に証明書を更新しようとします。詳細については、『AWS CertificateManager ユーザーガイド』にある「管理された更新」を参照してください。

• 証明書を ACM にインポートした場合は、証明書の有効期限をモニタリングし、期限切れ前に更新する必要があります。詳細については、AWS Certificate Manager ユーザーガイドの「証明書のインポート」を参照してください。

• IAM に証明書をインポートする場合、新しい証明書を作成し、この新しい証明書を ACM あるいは IAMにインポートします。ロードバランサーにこの新しい証明書を追加し、期限切れの証明書をロードバランサーから削除します。

証明書の追加次の手順でリスナーの証明書リストに証明書を追加できます。リスナーのデフォルトの証明書は証明書リストにデフォルトで追加されませんが、デフォルトの証明書を証明書リストに追加できます。

コンソールを使用して証明書を追加するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択し、[Listeners] を選択します。4. セキュアリスナーを更新するには、リスナーに追加したそのほかのすべての証明書に続いてデフォル

トの証明書を表示する [証明書の表示/編集] を選択します。5. ACM と IAM によって管理されるそのほかすべての証明書に続いてデフォルトの証明書を表示する [証

明書の追加] アイコン (プラス記号) をメニューバーで選択します。リスナーにすでに証明書を追加した場合は、そのチェックボックスが選択され無効になっています。

6. ACM または IAM によってすでに管理されている証明書を追加するには、その証明書を選択して [追加] を選択します。

7. ACM または IAM が管理していない証明書がある場合は、その証明書を ACM にインポートし、次のとおりにリスナーに追加します。

a. [証明書のインポート] を選択します。b. 証明書のプライベートキーの場合、PEM エンコードされ、暗号化されていないプライベートキー

を証明書に貼り付けます。c. [証明書本文] では、PEM エンコードされた証明書を貼り付けます。d. (オプション) [証明書チェーン] では、PEM エンコードされた証明書チェーンを貼り付けます。e. [Import] を選択します。新規にインポートされた証明書は、選択された利用可能な証明書リスト

に表示されます。f. [Add] を選択します。

8. この画面をそのままにして、メニューバーの [Back to the load balancer] (戻るボタン) を選択します。

AWS CLI を使用して証明書を追加するには

add-listener-certificates コマンドを使用します。

デフォルトの証明書の置き換え次の手順でリスナーのデフォルトの証明書を置き換えできます。

37

Page 43: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer証明書の削除

コンソールを使用してデフォルトの証明書を変更するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択し、[Listeners] を選択します。4. リスナー を選択し、[アクション]、[編集] の順に選択します。5. [デフォルトの証明書の選択] で、次のいずれかを実行します。

• AWS Certificate Manager を使用して証明書を作成またはインポートした場合は、[AWS CertificateManager (ACM)] を選択し、[証明書名] から証明書を選択します。

• IAM を使用して証明書をすでにアップロードしている場合は、[Choose an existing certificate fromAWS Identity and Access Management (IAM)] を選択し、[証明書名] から証明書を選択します。

6. [Save] を選択します。

AWS CLI を使用してデフォルトの証明書を変更するには

modify-listener コマンドを使用します。

証明書の削除デフォルト以外の証明書はセキュアリスナーからいつでも削除できます。次の手順では、セキュアリスナーのデフォルトの証明書は削除できません。

コンソールを使用して証明書を削除するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択し、[Listeners] を選択します。4. セキュアリスナーを更新するには、リスナーに追加したそのほかのすべての証明書に続いてデフォル

トの証明書を表示する [証明書の表示/編集] を選択します。5. メニューバーで [証明書の削除] アイコン (マイナス記号) を選択します。6. 証明書を選択し、[削除] を選択します。7. この画面をそのままにして、メニューバーの [Back to the load balancer] (戻るボタン) を選択します。

AWS CLI を使用して証明書を削除するには

remove-listener-certificates コマンドを使用します。

Application Load Balancer のリスナーの削除リスナーの削除はいつでも行うことができます。ロードバランサーを削除すると、そのリスナーがすべて削除されます。

コンソールを使用してリスナーを削除するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Load Balancers] を選択します。3. ロードバランサーを選択し、[Listeners] を選択します。4. リスナー用の [Delete] 選択します。5. 確認を求めるメッセージが表示されたら、[Yes, Delete] を選択します。

38

Page 44: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerリスナーの削除

AWS CLI を使用してリスナーを削除するには

delete-listener コマンドを使用します。

39

Page 45: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerルーティング設定

Application Load Balancer のターゲットグループ

各ターゲットグループは、1 つ以上の登録されているターゲットにリクエストをルーティングするために使用されます。各リスナーのルールを作成するときに、ターゲットグループと条件を指定します。ルールの条件が満たされると、トラフィックが該当するターゲットグループに転送されます。さまざまなタイプのリクエストに応じて別のターゲットグループを作成できます。たとえば、一般的なリクエスト用に 1 つのターゲットグループを作成し、アプリケーションのマイクロサービスへのリクエスト用に別のターゲットグループを作成できます。詳細については、「Application Load Balancer コンポーネント (p. 1)」を参照してください。

ロードバランサーのヘルスチェック設定は、ターゲットグループ単位で定義します。各ターゲットグループはデフォルトのヘルスチェック設定を使用します。ただし、ターゲットグループを作成したときや、後で変更したときに上書きした場合を除きます。リスナーのルールでターゲットグループを指定すると、ロードバランサーは、ロードバランサーで有効なアベイラビリティーゾーンにある、ターゲットグループに登録されたすべてのターゲットの状態を継続的にモニタリングします。ロードバランサーは、正常な登録済みターゲットにリクエストをルーティングします。

目次• ルーティング設定 (p. 40)• ターゲットの種類 (p. 41)• 登録済みターゲット (p. 41)• ターゲットグループの属性 (p. 42)• 登録解除の遅延 (p. 42)• スティッキーセッション (p. 43)• ターゲットグループの作成 (p. 43)• ターゲットグループのヘルスチェック (p. 44)• ターゲットグループへのターゲットの登録 (p. 47)• ターゲットグループのタグ (p. 50)• ターゲットグループの削除 (p. 51)

ルーティング設定デフォルトでは、ロードバランサーはターゲットグループの作成時に指定したプロトコルとポート番号を使用して、リクエストをターゲットにルーティングします。または、ターゲットグループへの登録時にターゲットへのトラフィックのルーティングに使用されるポートを上書きすることもできます。

ターゲットグループでは、次のプロトコルとポートがサポートされています。

• プロトコル: HTTP、HTTPS• ポート: 1 ~ 65535

ターゲットグループが HTTPS プロトコルを使用して設定されているか、HTTPS ヘルスチェックを使用する場合、ターゲットへの SSL 接続には ELBSecurityPolicy2016-08 ポリシーのセキュリティ設定が使用されます。

40

Page 46: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerターゲットの種類

ターゲットの種類ターゲットグループを作成するときは、そのターゲットの種類を指定します。ターゲットの種類は、ターゲットの指定方法を決定します。ターゲットグループを作成した後で、ターゲットの種類を変更することはできません。

可能なターゲットの種類は次のとおりです。

instance

インスタンス ID で指定されたターゲット。ip

IP アドレスで指定されたターゲット。

ターゲットの種類が ip の場合、次のいずれかの CIDR ブロックから IP アドレスを指定できます。

• ターゲットグループの VPC のサブネット• 10.0.0.0/8 (RFC 1918)• 100.64.0.0/10 (RFC 6598)• 172.16.0.0/12 (RFC 1918)• 192.168.0.0/16 (RFC 1918)

これらのサポートされている CIDR ブロックを使用すると、ClassicLink インスタンス、ピアリング接続VPC 内のインスタンス、IP アドレスとポートでアドレス指定できる AWS リソース (たとえば、データベース)、AWS Direct Connect または VPN 接続を介して AWS にリンクされたオンプレミスリソースをターゲットグループに登録できます。

Important

パブリックにルーティング可能な IP アドレスは指定できません。

インスタンス ID を使用してターゲットを指定すると、トラフィックはインスタンスのプライマリネットワークインターフェイスで指定されたプライマリプライベート IP アドレスを使用して、インスタンスにルーティングされます。IP アドレスを使用してターゲットを指定する場合は、1 つまたは複数のネットワークインターフェイスからのプライベート IP アドレスを使用して、トラフィックをインスタンスにルーティングできます。これにより、インスタンスの複数のアプリケーションが同じポートを使用できるようになります。各ネットワークインターフェイスは独自のセキュリティグループを持つことができます。

登録済みターゲットロードバランサーは、クライアントにとって単一の通信先として機能し、正常な登録済みターゲットに受信トラフィックを分散します。各ターゲットは、1 つ以上のターゲットグループに登録できます。異なるポートを使用して、各 EC2 インスタンスまたは IP アドレスを同じターゲットグループに複数回登録できます。これにより、ロードバランサーはリクエストをマイクロサービスにルーティングできます。

アプリケーションの需要が高まった場合、需要に対処するため、1 つまたは複数のターゲット グループに追加のターゲットを登録できます。登録処理が完了し、ターゲットが最初のヘルスチェックに合格するとすぐに、ロードバランサーは新しく登録したターゲットへのリクエストのルーティングを開始します。

アプリケーションの需要が低下した場合や、ターゲットを保守する必要がある場合、ターゲットグループからターゲットを登録解除することができます。ターゲットを登録解除するとターゲットグループから削除されますが、ターゲットにそれ以外の影響は及びません。登録解除するとすぐに、ロードバランサーはターゲットへのリクエストのルーティングを停止します。ターゲットは、未処理のリクエストが完了する

41

Page 47: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerターゲットグループの属性

まで draining 状態になります。リクエストの受信を再開する準備ができると、ターゲットをターゲットグループに再度登録することができます。

インスタンス ID でターゲットを登録する場合は、Auto Scaling グループでロードバランサーを使用できます。Auto Scaling グループにターゲットグループをアタッチすると、ターゲットの起動時に Auto Scalingによりターゲットグループにターゲットが登録されます。詳細については、『Amazon EC2 Auto Scalingユーザーガイド』の「Auto Scaling グループにロードバランサーをアタッチする」を参照してください。

ターゲットグループの属性ターゲット グループの属性は次のとおりです。

deregistration_delay.timeout_seconds

ターゲットを登録解除する前に Elastic Load Balancing が待機する時間。範囲は 0 ~ 3600 秒です。デフォルト値は 300 秒です。

stickiness.enabled

スティッキーセッションが有効かどうかを示します。stickiness.lb_cookie.duration_seconds

Cookie の有効期間 (秒単位) です。この期間が過ぎると、Cookie は古いと見なされます。最小値は 1秒で、最大値は 7 日間 (604800秒) です。デフォルト値は 1 日 (86400 秒) です。

stickiness.type

維持の種類です。有効な値は lb_cookie です。

登録解除の遅延Elastic Load Balancing は、登録解除するターゲットへのリクエストの送信を停止します。デフォルトでは、Elastic Load Balancing 登録解除プロセスを完了する前に 300 秒待って、ターゲットへ処理中のリクエストが完了するのを助けることができます。Elastic Load Balancing が待機する時間を変更するには、登録解除の遅延値を更新します。最大で 1 時間の値を指定することが可能で、処理中のリクエストがあるかどうかにかかわらず、Elastic Load Balancing は指定された全時間待機します。

登録解除の遅延が経過する前に登録解除するターゲットが接続を終了すると、クライアントは 500 レベルのエラー応答を受信します。

登録解除するターゲットの初期状態は draining です。登録解除の遅延が経過すると、登録解除プロセスは完了し、ターゲットの状態は unused になります。ターゲットが Auto Scaling グループの一部である場合、ターゲットを終了して置き換えることができます。ただし、ロードバランサノードと登録解除するターゲットとの間の接続は、処理中のリクエストがある場合は最大 1 時間保持されます。

コンソールを使用して登録解除の遅延値を更新するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Target Groups] を選択します。3. ターゲットグループを選択します。4. [Description] タブで、[Edit attributes] を選択します。5. [Edit attributes] ページで、必要に応じて [Deregistration delay] の値を変更し、[Save] を選択します。

AWS CLI を使用して登録解除の遅延値を更新するには

42

Page 48: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerスティッキーセッション

modify-target-group-attributes コマンドを使用します。

スティッキーセッションスティッキーセッションは、ターゲットグループ内の同じターゲットにリクエストをルーティングするメカニズムです。これは、クライアントに連続したエクスペリエンスを提供するために状態情報を維持するサーバーに役立ちます。スティッキーセッションを使用するには、クライアントが Cookie をサポートしている必要があります。

ロードバランサーは、クライアントから最初のリクエストを受信すると、リクエストをターゲットにルーティングし、クライアントへのレスポンスに含める Cookie を生成します。そのクライアントからの次のリクエストには、Cookie が含まれています。スティッキーセッションがターゲットグループに対して有効であり、リクエストが同じターゲットグループに送信される場合、ロードバランサーは Cookie を検出して同じターゲットにリクエストをルーティングします。

Application Load Balancer はロードバランサーによって生成されるクッキーのみをサポートします。Cookie 名は、AWSALB です。このクッキーのコンテンツはローテーションキーを使用して暗号化されます。ロードバランサーによって生成されたクッキーを複合あるいは編集することはできません。

WebSockets 接続は本来はスティッキーです。クライアントが WebSockets へ接続アップグレードをリクエストする場合、接続アップグレードを受け入れるために HTTP 101 のステータスコードを返したターゲットが、WebSockets 接続で使用されるターゲットです。WebSockets のアップグレードが完了したら、Cookie ベースの維持は使用されません。

ターゲットグループレベルでスティッキーセッションを有効にします。ロードバランサー生成のクッキーの維持期間を秒単位で設定することもできます。期間はリクエストごとに設定されます。そのため、各期間の有効期限が切れる前にクライアントがリクエストを送信すると、スティッキセッションが継続されます。複数のターゲットグループのスティッキーセッションを有効にした場合、すべてのターゲットグループに同じ継続時間を設定することをお勧めします。

コンソールを使用してスティッキーセッションを有効にするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Target Groups] を選択します。3. ターゲットグループを選択します。4. [Description] タブで、[Edit attributes] を選択します。5. [Edit attributes] ページで、以下を実行します。

a. [Enable load balancer generated cookie stickiness] を選択します。b. [Stickiness duration] で、1 秒から 7 日の間の値を指定します。c. [Save] を選択します。

AWS CLI を使用してスティッキーセッションを有効にするには

modify-target-group-attributes コマンドを使用します。

ターゲットグループの作成ターゲットグループにターゲットを登録します。デフォルトでは、ロードバランサーはターゲットグループに指定したポートとプロトコルを使用して登録済みターゲットにリクエストを送信します。ターゲットグループに各ターゲットを登録するときに、このポートを上書きできます。

43

Page 49: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerヘルスチェックを設定する

ターゲットグループを作成すると、タグを追加できます。

ターゲットグループ内のターゲットにトラフィックをルーティングするには、リスナーを作成するか、リスナーのルールを作成するときに、アクションでターゲットグループを指定します。詳細については、「リスナールール (p. 27)」を参照してください。

ターゲットグループのタグはいつでも追加または削除できます。詳細については、「ターゲットグループへのターゲットの登録 (p. 47)」を参照してください。ターゲットグループのヘルスチェック設定を変更することもできます。詳細については、「ターゲットグループのヘルスチェック設定を変更する (p. 47)」を参照してください。

コンソールを使用してターゲットグループを作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Target Groups] を選択します。3. [Create target group] を選択します。4. [Target group name] で、ターゲットグループの名前を入力します。5. (オプション) [Protocol] と [Port] で、必要に応じてデフォルト値を変更します。6. [Target type] には、instance を選択してインスタンス ID でターゲットを指定するか、ip を選択し

て IP アドレスでターゲットを指定します。7. [VPC] で、Virtual Private Cloud (VPC) を選択します。

8. (オプション) [Health check settings] と [Advanced health check settings] で、必要に応じてデフォルト設定を変更します。

9. [Create] を選択します。10. (オプション) 次のように 1 つ以上のタグを追加します。

a. 新しく作成したターゲットグループを選択します。b. [Tags] タブで、[Add/Edit Tags] を選択します。c. [Add/Edit Tags] ページで、追加したタグごとに [Create Tag] を選択し、タグキーとタグの値を指

定します。タグの追加を完了したら、[Save] を選択します。11. (オプション) ターゲットグループにターゲットを追加する方法については、「ターゲットグループへ

のターゲットの登録 (p. 47)」を参照してください。

AWS CLI を使用してターゲットグループを作成するには

ターゲットグループを作成するには create-target-group コマンド、ターゲットグループにタグを付けるには add-tags コマンド、ターゲットを追加するには register-targets コマンドを使用します。

ターゲットグループのヘルスチェックApplication Load Balancer は、ステータスをテストするため、登録されたターゲットに定期的にリクエストを送信します。これらのテストは、ヘルスチェックと呼ばれます。

44

Page 50: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerヘルスチェックの設定

各ロードバランサーノードは、ロードバランサーに対して有効になっているアベイラビリティーゾーンの正常なターゲットにのみ、リクエストをルーティングします。各ロードバランサーノードは、ターゲットが登録されているターゲットグループのヘルスチェック設定を使用して、各ターゲットの状態を確認します。ターゲットは、登録後に正常と見なされるためには、1 つのヘルスチェックに合格する必要があります。各ヘルスチェックが完了すると、ロードバランサーノードはヘルスチェック用に確立された接続を終了します。

正常なターゲットが含まれているアベイラビリティーゾーンがない場合、ロードバランサーノードはすべてのターゲットにリクエストをルーティングします。

ヘルスチェックでは WebSocket はサポートされません。

ヘルスチェックの設定次の設定を使用して、ターゲットグループのターゲットのヘルスチェックを設定します。ロードバランサーは、指定されたポート、プロトコル、および ping パスを使用して、HealthCheckIntervalSeconds 秒ごとに、登録された各ターゲットにヘルスチェックリクエストを送信します。次に、ターゲットが応答タイムアウト期間内に応答するのを待ちます。ヘルスチェックが連続して失敗した応答の数のしきい値を超えると、ロードバランサーはターゲットをサービス停止中の状態にします。ヘルスチェックが連続して成功した応答の数のしきい値を超えると、ロードバランサーはターゲットをサービス提供中の状態に戻します。

設定 説明

HealthCheckProtocol ターゲットでヘルスチェックを実行するときにロードバランサーが使用するプロトコル。使用可能なプロトコルは HTTP および HTTPS です。デフォルトは HTTP プロトコルです。

HealthCheckPort ターゲットでヘルスチェックを実行するときにロードバランサーが使用するポート。デフォルトでは、ターゲットがロードバランサーからトラフィックを受信するポートが使用されます。

HealthCheckPath ヘルスチェックのターゲットの送信先である pingパス。デフォルトは / です。

HealthCheckTimeoutSeconds ヘルスチェックを失敗と見なす、ターゲットからレスポンスがない時間 (秒単位)。範囲は 2~60 秒です。デフォルト値は 5 秒です。

HealthCheckIntervalSeconds 個々のターゲットのヘルスチェックの概算間隔 (秒単位)。範囲は 5~300 秒です。デフォルト値は 30秒です。

HealthyThresholdCount 非正常なインスタンスが正常であると見なすまでに必要なヘルスチェックの連続成功回数。範囲は 2~10 です。デフォルトは 5 です。

UnhealthyThresholdCount 非正常なインスタンスが非正常であると見なすまでに必要なヘルスチェックの連続失敗回数。範囲は 2~10 です。デフォルトは 2 です。

マッチャー ターゲットからの正常なレスポンスを確認するために使用する HTTP コード。200 ~ 499 で値または値の範囲を指定できます。デフォルト値は 200です。

45

Page 51: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerターゲットヘルスステータス

ターゲットヘルスステータスロードバランサーがターゲットにヘルスチェックリクエストを送信する前に、ターゲットグループに登録し、リスナールールでターゲットグループを指定して、ターゲットのアベイラビリティーゾーンがロードバランサーに対して有効になっていることを確認する必要があります。ターゲットがロードバランサーからリクエストを受信する前に、最初のヘルスチェックに合格する必要があります。ターゲットが最初のヘルスチェックに合格すると、ステータスは Healthy になります。

次の表は、登録されたターゲットのヘルスステータスの可能値を示しています。

値 説明

initial ロードバランサーは、ターゲットを登録中か、ターゲットで最初のヘルスチェックを実行中です。

healthy ターゲットは正常です。

unhealthy ターゲットはヘルスチェックに応答しなかったか、ヘルスチェックに合格しませんでした。

unused ターゲットがターゲットグループに登録されていないか、ターゲットグループがロードバランサーのリスナールールで使用されていません。または、ロードバランサーに対して有効ではないアベイラビリティーゾーンにターゲットがあります。

draining ターゲットは登録解除中で、Connection Draining中です。

ヘルスチェックの理由コードターゲットのステータスが Healthy 以外の値の場合、API は問題の理由コードと説明を返し、コンソールではツールヒントで同じ説明が表示されます。Elb で始まる理由コードはロードバランサー側で発生し、Target で始まる理由コードはターゲット側で発生します。

理由コード 説明

Elb.InitialHealthChecking 進行中の最初のヘルスチェック

Elb.InternalError 内部エラーのため、ヘルスチェックが失敗しました

Elb.RegistrationInProgress ターゲットの登録中です

Target.DeregistrationInProgress ターゲットの登録解除中です

Target.FailedHealthChecks ヘルスチェックに失敗しました

Target.InvalidState ターゲットが停止状態にあります

ターゲットは終了状態にあります

ターゲットは終了状態か、または停止状態にあります

ターゲットは無効な状態にあります

Target.IpUnusable IP アドレスはロードバランサーによって使用されているので、ターゲットとして使用できません。

46

Page 52: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerターゲットのヘルスステータスをチェックする

理由コード 説明

Target.NotInUse ターゲットグループは、ロードバランサーからトラフィックを受信するように設定されていません

ロードバランサーが有効になっていないアベイラビリティーゾーンにターゲットがあります

Target.NotRegistered ターゲットはターゲットグループに登録されていません

Target.ResponseCodeMismatch 次のコードでヘルスチェックに失敗しました: [code]

Target.Timeout リクエストがタイムアウトしました

ターゲットのヘルスステータスをチェックするターゲットグループに登録されたターゲットのヘルスステータスをチェックできます。

コンソールを使用してターゲットのヘルスステータスをチェックするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Target Groups] を選択します。3. ターゲットグループを選択します。4. [Targets] タブの [Status] 列は、各ターゲットのステータスを示します。5. ステータスの値が Healthy 以外の場合は、詳細についてツールヒントを参照してください。

AWS CLI を使用してターゲットのヘルスステータスをチェックするには

describe-target-health コマンドを使用します。このコマンドの出力先にはターゲットのヘルス状態が含まれ、ステータスの値が Healthy 以外の場合は理由コードが含まれます。

ターゲットグループのヘルスチェック設定を変更するターゲットグループのヘルスチェック設定はいつでも変更できます。

コンソールを使用してターゲットグループのヘルスチェック設定を変更するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Target Groups] を選択します。3. ターゲットグループを選択します。4. [Health checks] タブで、[Edit] を選択します。5. [Edit target group] ページで、必要に応じて設定を変更し、[Save] を選択します。

AWS CLI を使用してターゲットグループのヘルスチェック設定を変更するには

modify-target-group コマンドを使用します。

ターゲットグループへのターゲットの登録ターゲットグループにターゲットを登録します。インスタンス ID または IP アドレスでターゲットを登録できます。詳細については、「Application Load Balancer のターゲットグループ (p. 40)」を参照してください。

47

Page 53: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerターゲットセキュリティグループ

現在登録されているターゲットの需要が上昇した場合、需要に対応するために追加ターゲットを登録できます。ターゲットがリクエストを処理する準備ができたら、ターゲットグループに登録します。登録処理が完了し、ターゲットが最初のヘルスチェックに合格するとすぐに、ロードバランサーはターゲットへのリクエストのルーティングを開始します。

登録済みターゲットの需要が低下した場合や、ターゲットを保守する必要がある場合、ターゲットグループから登録解除できます。登録解除するとすぐに、ロードバランサーはターゲットへのリクエストのルーティングを停止します。ターゲットがリクエストを受信する準備ができたら、ターゲットグループに再度登録することができます。

ターゲットを登録解除すると、ロードバランサーは未処理のリクエストが完了するまで待機します。これは、Connection Drainingと呼ばれます。Connection Drainingの進行中、ターゲットのステータスはdraining です。

IP アドレスで登録されたターゲットを登録解除する場合、同じ IP アドレスを再び登録するには、阿登録解除の遅延が完了するまで待機する必要があります。

インスタンス ID でターゲットを登録する場合は、Auto Scaling グループでロードバランサーを使用できます。Auto Scaling グループにターゲットグループをアタッチし、そのグループがスケールアウトすると、Auto Scaling グループによって起動されたインスタンスが自動的にターゲットグループに登録されます。Auto Scaling グループからターゲットグループをデタッチした場合、インスタンスはターゲットグループから自動的に登録解除されます。詳細については、『Amazon EC2 Auto Scaling ユーザーガイド』の「Auto Scaling グループにロードバランサーをアタッチする」を参照してください。

ターゲットセキュリティグループEC2 インスタンスをターゲットとして登録した場合、インスタンスのセキュリティグループにより、ロードバランサーがリスナーポートとヘルスチェックポートの両方でインスタンスとの通信が許可されるようにする必要があります。

推奨ルール

インバウンド

送信元 ポート範囲 コメント

リリリリリリリリリリリリリリリリリリリ

リリリリリリリリリリ インスタンスリスナーポートでロードバランサーからのトラフィックを許可する

リリリリリリリリリリリリリリリリリリリ

リリリリリリリ ヘルスチェックポートでロードバランサーからのトラフィックを許可する

また、パス MTU 検出をサポートするため、インバウンド ICMP トラフィックを許可することをお勧めします。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「パス MTU 検出」を参照してください。

ターゲットの登録または登録解除ターゲットグループを作成するときに、インスタンス ID または IP アドレスでターゲットを登録する必要があるかどうかを指定します。

タスク• インスタンス ID によるターゲットの登録または登録解除 (p. 49)• IP アドレスによるターゲットの登録または登録解除 (p. 49)• AWS CLI を使用してターゲットを登録または登録解除する (p. 50)

48

Page 54: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerターゲットの登録または登録解除

インスタンス ID によるターゲットの登録または登録解除インスタンスは、ターゲットグループに指定された Virtual Private Cloud (VPC) に存在している必要があります。また、インスタンスの登録時の状態は running である必要があります。

インスタンス ID でターゲットを登録または登録解除するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Target Groups] を選択します。3. ターゲットグループを選択します。4. [Targets] タブで、[Edit] を選択します。5. インスタンスを登録するには、[Instances] で選択し、必要に応じてデフォルトインスタンスポートを

変更して、[Add to registered] を選択します。

6. インスタンスを登録解除するには、[Registered instances] から選択して [Remove] を選択します。

7. [Save] を選択します。

IP アドレスによるターゲットの登録または登録解除登録する IP アドレスは、ターゲットグループの VPC のサブネット、RFC 1918 範囲(10.0.0.0/8、172.16.0.0/12、および 192.168.0.0/16)、および RFC 6598 範囲 (100.64.0.0/10) である必要があります。パブリックにルーティング可能な IP アドレスを登録することはできません。

IP アドレスでターゲットを登録または登録解除するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Target Groups] を選択します。3. ターゲットグループを選択します。4. [Targets] タブで、[Edit] を選択します。5. IP アドレスを登録するには、メニューバーの [Register targets] アイコン (プラス記号) を選択します。

各 IP アドレスに対して、ネットワークを選択して IP アドレスやポートを入力し、[Add to list] を選択します。アドレスの指定が終了したら、[Register] を選択します。

49

Page 55: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerタグの更新

6. IP アドレスを登録解除するには、メニューバーの [Deregister targets] アイコン (マイナス記号) を選択します。登録済みの IP アドレスが多い場合は、フィルタを追加したりソート順を変更したりすると便利です。IP アドレスを選択し、[Deregister] を選択します。

7. この画面から抜けるには、メニューバーの [Back to target group] (戻るボタン) を選択します。

AWS CLI を使用してターゲットを登録または登録解除するターゲットを追加するには register-targets コマンドを使用し、ターゲットを削除するには deregister-targets コマンドを使用します。

ターゲットグループのタグタグを使用すると、ターゲットグループを目的、所有者、環境などさまざまな方法で分類することができます。

各ターゲットグループに対して複数のタグを追加できます。タグキーは、各ターゲットグループで一意である必要があります。すでにターゲットグループに関連付けられているキーを持つタグを追加すると、そのキーの値が更新されます。

不要になったタグは、削除することができます。

制限

• リソースあたりのタグの最大数 – 50• キーの最大長 – 127 文字 (Unicode)• 値の最大長 – 255 文字 (Unicode)

50

Page 56: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerターゲットグループの削除

• タグのキーと値は大文字と小文字が区別されます。使用できる文字は、UTF-8 で表現できる文字、スペース、および数字と、特殊文字 +、-、=、.、_、:、/、@ です。ただし、先頭または末尾にはスペースを使用しないでください。

• タグの名前または値に aws: プレフィックスは使用しないでください。このプレフィックスは AWS 用に予約されています。このプレフィックスが含まれるタグの名前または値は編集または削除できません。このプレフィックスを持つタグは、リソースあたりのタグ数の制限時には計算されません。

コンソールを使用してターゲットグループのタグを更新するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Target Groups] を選択します。3. ターゲットグループを選択します。4. [Tags] タブで、[Add/Edit Tags] を選択し、次のうち 1 つ以上を選択します。

a. タグを更新するには、[Key] と [Value] の値を編集します。b. 新しいタグを追加するには、[Create Tag] を選択し、[Key] と [Value] の値を入力します。c. タグを削除するには、タグの横にある削除アイコン (X) を選択します。

5. タグの更新を完了したら、[Save] を選択します。

AWS CLI を使用してターゲットグループのタグを更新するには

add-tags コマンドと remove-tags コマンドを使用します。

ターゲットグループの削除どのアクションからも参照されていない場合、ターゲットグループを削除できます。ターゲットグループを削除しても、ターゲットグループに登録されたターゲットには影響が及ばない点に注意してください。登録済み EC2 インスタンスが必要なくなった場合は停止または終了できます。

コンソールを使用してターゲットグループを削除するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [LOAD BALANCING] で [Target Groups] を選択します。3. ターゲットグループを選択し、[Actions]、[Delete] を選択します。4. 確認を求めるメッセージが表示されたら、[Yes] を選択します。

AWS CLI を使用してターゲットグループを削除するには

delete-target-group コマンドを使用します。

51

Page 57: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerCloudWatch メトリクス

Application Load Balancer を監視する

次の機能を使用して、ロードバランサーの監視、トラフィックパターンの分析、ロードバランサーとターゲットに関する問題の解決を実行できます。

CloudWatch メトリクス

Amazon CloudWatch を使用して、ロードバランサーとターゲットのデータポイントに関する統計情報を、メトリクスと呼ばれる時系列データの時間順のセットとして取得できます。これらのメトリクスを使用して、システムが正常に実行されていることを確認できます。詳細については、「Application Load Balancer の CloudWatch メトリクス (p. 52)」を参照してください。

アクセスログ

アクセスログを使用して、ロードバランサーに対して行われたリクエストの詳細情報をキャプチャし、Amazon S3 でログファイルとして保存できます。これらのアクセスログを使用して、トラフィックパターンの分析や、ターゲットの問題のトラブルシューティングを行うことができます。詳細については、「Application Load Balancer のアクセスログ (p. 60)」を参照してください。

リクエストのトレース

リクエストのトレースを使用して HTTP リクエストを追跡できます。ロードバランサーは、受け取った各リクエストにトレース識別子を持つヘッダーを追加します。詳細については、「Application LoadBalancer のリクエストのトレース (p. 69)」を参照してください。

CloudTrail ログ

AWS CloudTrail を使用して、Elastic Load Balancing API に対して行われた呼び出しに関する詳細情報をキャプチャし、Amazon S3 でログファイルとして保存できます。これらの CloudTrail ログを使用して、行われた呼び出し、呼び出し元のソース IP アドレス、呼び出し元、呼び出し時間などを判断できます。詳細については、「Application Load Balancer の AWS CloudTrail ログ記録 (p. 70)」を参照してください。

Application Load Balancer の CloudWatch メトリクス

Elastic Load Balancing は、ロードバランサーとターゲットに関するデータポイントを AmazonCloudWatch に発行します。CloudWatch を使用すると、それらのデータポイントについての統計を、順序付けられた時系列データのセット (メトリクスと呼ばれる) として取得できます。メトリクスは監視対象の変数、データポイントは時間の経過と共に変わる変数の値と考えることができます。たとえば、指定した期間中のロードバランサーの正常なターゲットの合計数を監視することができます。各データポイントには、タイムスタンプと、オプションの測定単位が関連付けられています。

メトリクスを使用して、システムが正常に実行されていることを確認できます。たとえば、メトリクスが許容範囲外になる場合、CloudWatch アラームを作成して、指定されたメトリクスを監視し、アクション(E メールアドレスに通知を送信するなど) を開始することができます。

Elastic Load Balancing は、リクエストがロードバランサーを経由する場合のみ、メトリクスをCloudWatch に報告します。ロードバランサーを経由するリクエストがある場合、Elastic Load Balancingは 60 秒間隔でメトリクスを測定し、送信します。ロードバランサーを経由するリクエストがないか、メトリクスのデータがない場合、メトリクスは報告されません。

52

Page 58: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerApplication Load Balancer メトリクス

詳細については、「Amazon CloudWatch ユーザーガイド」を参照してください。

目次• Application Load Balancer メトリクス (p. 53)• Application Load Balancer のメトリクスディメンション (p. 57)• Application Load Balancer メトリクスの統計 (p. 58)• ロードバランサーの CloudWatch メトリクスを表示する (p. 58)

Application Load Balancer メトリクスAWS/ApplicationELB 名前空間には、次のメトリクスが含まれます。

メトリクス 説明

ActiveConnectionCount クライアントからロードバランサーへ、およびロードバランサーからターゲットへの、アクティブな同時 TCP 接続の総数。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。

ディメンション

• LoadBalancer

ClientTLSNegotiationErrorCountクライアントにより開始され、ロードバランサーとのセッションを確立しなかった、TLS 接続の数。暗号化またはプロトコルの不一致が原因である場合があります。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。

ディメンション

• LoadBalancer

• AvailabilityZone, LoadBalancer

ConsumedLCUs ロードバランサーが使用するロードバランサーキャパシティーユニット(LCU) の数です。1 時間当たりで使用する LCU 数の料金をお支払いいただきます。詳細については、「Elastic Load Balancing 料金表」を参照してください。

レポート条件: 常に報告される

統計: All

ディメンション

• LoadBalancer

HealthyHostCount 正常と見なされるターゲットの数。

レポート条件: 常に報告される

統計: 最も有用な統計は Average、Minimum、および Maximum です。

53

Page 59: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerApplication Load Balancer メトリクス

メトリクス 説明

ディメンション

• TargetGroup, LoadBalancer• TargetGroup, AvailabilityZone, LoadBalancer

HTTPCode_ELB_4XX_Count ロードバランサーから送信される HTTP 4XX クライアントエラーコードの数。リクエストの形式が不正な場合、または不完全な場合は、クライアントエラーが生成されます。それらのリクエストはターゲットで受信されません。この数には、ターゲットによって生成される応答コードは含まれません。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。Minimum、Maximum、およびAverage はすべては 1 を返すことに注意してください。

ディメンション

• LoadBalancer

• AvailabilityZone、LoadBalancer

HTTPCode_ELB_5XX_Count ロードバランサーから送信される HTTP 5XX サーバーエラーコードの数。この数には、ターゲットによって生成される応答コードは含まれません。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。Minimum、Maximum、およびAverage はすべては 1 を返すことに注意してください。

ディメンション

• LoadBalancer

• AvailabilityZone、LoadBalancer

HTTPCode_Target_2XX_Count、HTTPCode_Target_3XX_Count、HTTPCode_Target_4XX_Count、HTTPCode_Target_5XX_Countターゲットによって生成された HTTP 応答コードの数。これには、ロードバランサーによって生成される応答コードは含まれません。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。Minimum、Maximum、およびAverage はすべては 1 を返すことに注意してください。

ディメンション

• LoadBalancer

• AvailabilityZone, LoadBalancer• TargetGroup, LoadBalancer• TargetGroup, AvailabilityZone, LoadBalancer

54

Page 60: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerApplication Load Balancer メトリクス

メトリクス 説明

IPv6ProcessedBytes IPv6 を使用したロードバランサーによって処理される総バイト数。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。

ディメンション

• LoadBalancer

IPv6RequestCount ロードバランサーによって受信された IPv6 リクエストの数。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。Minimum、Maximum、およびAverage はすべては 1 を返すことに注意してください。

ディメンション

• LoadBalancer

• AvailabilityZone, LoadBalancer• TargetGroup, LoadBalancer• TargetGroup, AvailabilityZone, LoadBalancer

NewConnectionCount クライアントからロードバランサーへ、およびロードバランサーからターゲットへの、新たに確立された TCP 接続の総数。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。

ディメンション

• LoadBalancer

ProcessedBytes IPv4 および IPv6 を使用したロードバランサーによって処理される総バイト数。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。

ディメンション

• LoadBalancer

RejectedConnectionCountロードバランサーが接続の最大数に達したため、拒否された接続の数。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。

ディメンション

• LoadBalancer

• AvailabilityZone、LoadBalancer

55

Page 61: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerApplication Load Balancer メトリクス

メトリクス 説明

RequestCount IPv4 および IPv6 経由で正常に処理されたリクエストの数。この数には、ロードバランサーのターゲットによって生成されたレスポンスを含むリクエストのみが含まれます。

レポート条件: 常に報告される

統計: 最も有用な統計は Sum です。Minimum、Maximum、およびAverage はすべては 1 を返すことに注意してください。

ディメンション

• LoadBalancer

• AvailabilityZone, LoadBalancer• TargetGroup, LoadBalancer• TargetGroup, AvailabilityZone, LoadBalancer

RequestCountPerTarget ターゲットグループ内の各ターゲットによって受信されたリクエストの平均数。TargetGroup ディメンションを使用してターゲットグループを指定する必要があります。

レポート条件: ゼロ以外の値がある

統計: 有効な唯一の統計は Sum です。これは合計ではなく平均を表すことに注意してください。

ディメンション

• TargetGroup

• TargetGroup、LoadBalancer

RuleEvaluations 1 時間の平均リクエスト頻度に基づいてロードバランサーによって処理されるルールの数。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。

ディメンション

• LoadBalancer

TargetConnectionErrorCountロードバランサーとターゲット間で正常に確立されなかった接続数。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。

ディメンション

• LoadBalancer

• AvailabilityZone, LoadBalancer• TargetGroup, LoadBalancer• TargetGroup, AvailabilityZone, LoadBalancer

56

Page 62: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerApplication Load Balancer のメトリクスディメンション

メトリクス 説明

TargetResponseTime リクエストがロードバランサーから送信され、ターゲットからの応答を受信するまでの経過時間 (秒)。これは、アクセスログのtarget_processing_time フィールドに相当します。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Average および pNN.NN (パーセンタイル) です。

ディメンション

• LoadBalancer

• AvailabilityZone, LoadBalancer• TargetGroup, LoadBalancer• TargetGroup, AvailabilityZone, LoadBalancer

TargetTLSNegotiationErrorCountロードバランサーにより開始され、ターゲットとのセッションを確立しなかった、TLS 接続の数。暗号化またはプロトコルの不一致が原因である場合があります。

レポート条件: ゼロ以外の値がある

統計: 最も有用な統計は Sum です。

ディメンション

• LoadBalancer

• AvailabilityZone, LoadBalancer• TargetGroup, LoadBalancer• TargetGroup, AvailabilityZone, LoadBalancer

UnHealthyHostCount 異常と見なされるターゲットの数。

レポート条件: 常に報告される

統計: 最も有用な統計は Average、Minimum、および Maximum です。

ディメンション

• TargetGroup, LoadBalancer• TargetGroup, AvailabilityZone, LoadBalancer

Application Load Balancer のメトリクスディメンションApplication Load Balancer のメトリクスをフィルタするには、次のディメンションを使用できます。

ディメンション 説明

AvailabilityZone アベイラビリティーゾーン別にメトリクスデータをフィルタリングします。

57

Page 63: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerApplication Load Balancer メトリクスの統計

ディメンション 説明

LoadBalancer ロードバランサーでメトリクスデータをフィルタリングします。ロードバランサーを次のように指定します。app/ロードバランサー名/1234567890123456 (ロードバランサー ARN の最後の部分)。

TargetGroup ターゲットグループでメトリクスデータをフィルタリングします。ターゲットグループを次のように指定します。targetgroup/ターゲットグループ名/1234567890123456 (ターゲットグループ ARN の最後の部分)。

Application Load Balancer メトリクスの統計CloudWatch では、Elastic Load Balancing で発行されたメトリクスのデータポイントに基づいて統計が提供されます。統計とは、メトリクスデータを指定した期間で集約したものです。統計を要求した場合、返されるデータストリームはメトリクス名とディメンションによって識別されます。ディメンションは、メトリクスを一意に識別する名前/値のペアです。たとえば、特定のアベイラビリティーゾーンで起動されたロードバランサーの配下のすべての正常な EC2 インスタンスの統計をリクエストできます。

Minimum 統計と Maximum 統計には、個々のロードバランサーノードによって報告される最小値と最大値が反映されます。たとえば、ロードバランサーノードが 2 つあるとします。一方のノードは、HealthyHostCount の Minimum が 2、Maximum が 10、Average が 6 で、もう一方のノードはHealthyHostCount の Minimum が 1、Maximum が 5、Average が 3 です。このため、ロードバランサーの Minimum は 1、Maximum は 10、Average は約 4 です。

Sum 統計は、すべてのロードバランサーノードにおける集計値です。メトリクスには期間あたり複数のレポートが含まれているため、Sum はすべてのロードバランサーノードで集計されたメトリクスのみに適用されます。

SampleCount 統計は測定されたサンプルの数です。メトリクスはサンプリング間隔とイベントに基づいて集計されるため、通常、この統計は有用ではありません。たとえば、HealthyHostCount のSampleCount は、正常なホストの数ではなく各ロードバランサーノードが報告するサンプル数に基づいています。

パーセンタイルは、データセットにおける値の相対的な位置を示します。小数点以下最大 2 桁を使用して、任意のパーセンタイルを指定できます (p95.45 など)。たとえば、95 パーセンタイルは、95 パーセントのデータがこの値を下回っており、5 パーセントがこの値を上回っていることを意味します。パーセンタイルは、異常を分離するためによく使用されます。たとえば、アプリケーションがほとんどのリクエストをキャッシュから 1 ~ 2 ミリ秒で処理するのに、キャッシュが空の場合は 100 ~ 200 ミリ秒になるとします。最大値は最も速度が遅い場合を反映し、約 200 ミリ秒になります。平均値はデータの分散を示してはいません。パーセンタイルで、アプリケーションのパフォーマンスのより有益なビューが得られます。99 番目のパーセンタイルを Auto Scaling のトリガーあるいは CloudWatch アラームとして使用すると、2 ミリ秒以上の処理時間がかかるリクエストが 1% を超えないようターゲットを設定できます。

ロードバランサーの CloudWatch メトリクスを表示するAmazon EC2 コンソールを使用して、ロードバランサーに関する CloudWatch メトリクスを表示できます。これらのメトリクスは、モニタリング用のグラフのように表示されます。ロードバランサーがアクティブでリクエストを受信しているときにのみ、モニタリング用のグラフにデータポイントが表示されます。

または、CloudWatch コンソールを使用してロードバランサーのメトリクスを表示できます。

Amazon EC2 コンソールを使用してメトリクスを表示するには

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

58

Page 64: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerロードバランサーの CloudWatch メトリクスを表示する

2. ターゲットグループによってフィルタリングされたメトリクスを表示するには、以下の作業を実行します。

a. ナビゲーションペインで、[Target Groups] を選択します。b. ターゲットグループを選択し、[Monitoring] タブを選択します。c. (オプション) 結果を時間でフィルタリングするには、[Showing data for] から時間範囲を選択しま

す。d. 1 つのメトリクスの大きいビューを取得するには、グラフを選択します。

3. ロードバランサーでフィルタリングされたメトリクスを表示するには、以下の操作を実行します。

a. ナビゲーションペインで、[Load Balancers] を選択します。b. ロードバランサーを選択し、[Monitoring] タブを選択します。c. (オプション) 結果を時間でフィルタリングするには、[Showing data for] から時間範囲を選択しま

す。d. 1 つのメトリクスの大きいビューを取得するには、グラフを選択します。

CloudWatch コンソールを使用してメトリクスを表示するには

1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。2. ナビゲーションペインで メトリクスを選択します。3. 名前空間に [ApplicationELB] を選択します。4. (オプション) すべてのディメンションでメトリクスを表示するには、検索フィールドに名称を入力し

ます。5. (オプション) ディメンション別に検索するには、次のいずれかを選択します。

• ロードバランサーにレポートされるメトリクスのみを表示するには、[Per AppELB Metrics] を選択します。1 つのロードバランサーのメトリクスを表示するには、検索フィールドにその名前を入力します。

• ターゲットグループにレポートされるメトリクスのみを表示するには、[Per AppELB, per TGMetrics] を選択します。1 つのターゲットグループのメトリクスを表示するには、検索フィールドにその名前を入力します。

• アベイラビリティーゾーン別に、ロードバランサーにレポートされるメトリクスのみを表示するには、[Per AppELB, per AZ Metrics] を選択します。1 つのロードバランサーのメトリクスを表示するには、検索フィールドにその名前を入力します。1 つのアベイラビリティーゾーンのメトリクスを表示するには、検索フィールドにその名前を入力します。

• アベイラビリティーゾーンとターゲットグループ別にロードバランサーにレポートされるメトリクスのみを表示するには、[Per AppELB, per AZ, per TG Metrics] を選択します。1 つのロードバランサーのメトリクスを表示するには、検索フィールドにその名前を入力します。1 つのターゲットグループのメトリクスを表示するには、検索フィールドにその名前を入力します。1 つのアベイラビリティーゾーンのメトリクスを表示するには、検索フィールドにその名前を入力します。

AWS CLI を使ってメトリクスを表示するには

使用可能なメトリクスを表示するには、次の list-metrics コマンドを使用します。

aws cloudwatch list-metrics --namespace AWS/ApplicationELB

AWS CLI を使用してメトリクスの統計を取得するには

get-metric-statistics コマンドを使用して、指定されたメトリクスとディメンションの統計情報を取得します。 CloudWatch は、ディメンションの一意の組み合わせをそれぞれ別のメトリクスとして扱うことに注意してください。特に発行されていないディメンションの組み合わせを使用した統計を取得することはできません。メトリクス作成時に使用した同じディメンションを指定する必要があります。

59

Page 65: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerアクセスログ

aws cloudwatch get-metric-statistics --namespace AWS/ApplicationELB \--metric-name UnHealthyHostCount --statistics Average --period 3600 \--dimensions Name=LoadBalancer,Value=app/my-load-balancer/50dc6c495c0c9188 \Name=TargetGroup,Value=targetgroup/my-targets/73e2d6bc24d8a067 \--start-time 2016-04-18T00:00:00Z --end-time 2016-04-21T00:00:00Z

出力例を次に示します。

{ "Datapoints": [ { "Timestamp": "2016-04-18T22:00:00Z", "Average": 0.0, "Unit": "Count" }, { "Timestamp": "2016-04-18T04:00:00Z", "Average": 0.0, "Unit": "Count" }, ... ], "Label": "UnHealthyHostCount"}

Application Load Balancer のアクセスログElastic Load Balancing は、ロードバランサーに送信されるリクエストについて、詳細情報を収集するアクセスログを提供します。各ログには、リクエストを受け取った時刻、クライアントの IP アドレス、レイテンシー、リクエストのパス、サーバーレスポンスなどの情報が含まれます。これらのアクセスログを使用して、トラフィックパターンの分析や、問題のトラブルシューティングを行うことができます。

アクセスログの作成は、Elastic Load Balancing のオプション機能であり、デフォルトでは無効化されています。ロードバランサーのアクセスログの作成を有効にすると、Elastic Load Balancing はログをキャプチャし、圧縮ファイルとして指定した Amazon S3 バケット内に保存します。アクセスログの作成はいつでも無効にできます。

Elastic Load Balancing は、Application Load Balancer のアクセスログのサーバー側暗号化をサポートします。これによって、S3 バケットに格納されたログデータが保護され、保管されるデータのコンプライアンス要件が履行されます。各アクセスログファイルは S3 バケットに保存される前に自動的に暗号化され、アクセス時に復号化されます。暗号化あるいは復号化されたログファイルにアクセスする方法に違いがないため、特別なアクションを実行する必要はありません。各ログファイルは、強力な多要素暗号化を使用した一意のキーで暗号化されます。さらにセキュリティを強化するために、キー自体が定期的に更新されたマスターキーで暗号化されます。詳細については、Amazon Simple Storage Service 開発者ガイドの「Amazon S3 で管理された暗号化キー (SSE-S3) によるサーバー側の暗号化を使用したデータの保護」を参照してください。

アクセスログに対する追加料金はありません。Amazon S3 のストレージコストは発生しますが、AmazonS3 にログファイルを送信するために Elastic Load Balancing が使用する帯域については料金は発生しません。ストレージコストの詳細については、Amazon S3 料金表を参照してください。

目次• アクセスログファイル (p. 61)• アクセスログのエントリ (p. 62)• バケットのアクセス許可 (p. 65)• アクセスログの作成の有効化 (p. 67)

60

Page 66: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerアクセスログファイル

• アクセスログの作成の無効化 (p. 68)• アクセスログファイルの処理 (p. 68)

アクセスログファイルElastic Load Balancing は各ロードバランサーノードのログファイルを 5 分ごとに発行します。ログ配信には結果整合性があります。ロードバランサーでは、同じ期間について複数のログが発行されることがあります。これは通常、サイトに高トラフィックがある場合に発生します。

アクセスログのファイル名には次の形式を使用します。

bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_load-balancer-id_end-time_ip-address_random-string.log.gz

bucket

S3 バケットの名前。プレフィックス

バケットのプレフィックス (論理階層)。プレフィックスを指定しない場合、ログはバケットのルートレベルに配置されます。

aws-account-id

所有者の AWS アカウント ID。リージョン

ロードバランサーおよび S3 バケットのリージョン。yyyy/mm/dd

ログが配信された日付。load-balancer-id

ロードバランサーのリソース ID。リソース ID にスラッシュ (/) が含まれている場合、ピリオド (.) に置換されます。

end-time

ログ作成の間隔が終了した日時。たとえば、終了時間 20140215T2340Z には、23:35~23:40 に行われたリクエストのエントリが含まれます。

ip-address

リクエストを処理したロードバランサーノードの IP アドレス。内部ロードバランサーの場合、プライベート IP アドレスです。

random-string

システムによって生成されたランダム文字列。

ログファイル名の例は次のようになります。

s3://my-bucket/prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2016/05/01/123456789012_elasticloadbalancing_us-east-2_my-loadbalancer_20140215T2340Z_172.160.001.192_20sg8hgm.log.gz

必要な場合はログファイルを自身の バケットに保管できますが、ログファイルを自動的にアーカイブまたは削除するように Amazon S3 ライフサイクルルールを定義することもできます。詳細については、Amazon Simple Storage Service 開発者ガイドの「オブジェクトのライフサイクル管理」を参照してください。

61

Page 67: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerアクセスログのエントリ

アクセスログのエントリElastic Load Balancing は、ターゲットに到達しなかったリクエストを含め、ロードバランサーに送信されたリクエストを記録します。たとえば、クライアントが誤った形式のリクエストを送信した場合や、リクエストに応答できる正常に動作しているターゲットがない場合も、そのリクエストは記録されます。Elastic Load Balancing はヘルスチェックリクエストをログに記録しません。

各ログエントリには、ロードバランサーに対して行われた 1 つのリクエスト (または WebSocket の場合は接続) の詳細が含まれます。WebSocket の場合、エントリは接続を閉じた後にのみ書き込まれます。アップグレードされた接続を確立できない場合、エントリは HTTP または HTTPS リクエストと同じです。

Important

Elastic Load Balancing はベストエフォートベースでリクエストを記録します。アクセスログは、すべてのリクエストを完全に報告するためのものではなく、リクエストの本質を把握するものとして使用することをお勧めします。

構文次の表は、アクセスログのエントリのフィールドを順に示しています。すべてのフィールドはスペースで区切られています。新しいフィールドが導入されると、ログエントリの最後に追加されます。予期していなかったログエントリの最後のフィールドは無視する必要があります。

フィールド 説明

type リクエストまたは接続のタイプ。有効な値は次のとおりです (その他の値は無視してください)。

• http — HTTP• https — HTTP over SSL/TLS• h2 — HTTP/2 over SSL/TLS• ws — WebSockets• wss — WebSockets over SSL/TLS

timestamp ロードバランサーがクライアントに対してレスポンスを生成した時刻 (ISO8601 形式)。WebSocket の場合、これは接続を閉じる時間です。

elb ロードバランサーのリソース ID。アクセスログエントリを解析する場合、リソース ID にはスラッシュ (/) を含めることができます。

client:port リクエストを送信したクライアントの IP アドレスとポート。

target:port このリクエストを処理したターゲットの IP アドレスとポート。

クライアントがリクエスト全体を送信しなかった場合、ロードバランサーはターゲットにリクエストをディスパッチできず、この値が - に設定されます。

リクエストが AWS WAF によってブロックされた場合、この値は - に設定され、elb_status_code の値は 403 に設定されます。

request_processing_time ロードバランサーがリクエストを受け取った時点からターゲットに送信するまでの合計経過時間 (秒単位)。

ロードバランサーがリクエストをターゲットにディスパッチできない場合、この値は -1 に設定されます。この状況が発生するのは、ターゲットがアイドルタイムアウト前に接続を閉じた場合か、クライアントが誤った形式のリクエストを送信した場合です。

62

Page 68: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerアクセスログのエントリ

フィールド 説明

target_processing_time ロードバランサーがターゲットにリクエストを送信した時点から、そのターゲットが応答ヘッダーの送信を開始した時点までの合計経過時間 (秒単位)。

ロードバランサーがリクエストをターゲットにディスパッチできない場合、この値は -1 に設定されます。この状況が発生するのは、ターゲットがアイドルタイムアウト前に接続を閉じた場合か、クライアントが誤った形式のリクエストを送信した場合です。

response_processing_timeロードバランサーがターゲットから応答ヘッダーを受け取った時点から、クライアントへの応答の送信を開始した時点までの合計経過時間 (秒単位)。これには、ロードバランサーでの待機時間と、ロードバランサーからクライアントへの接続の取得時間の両方が含まれます。

ロードバランサーがリクエストをターゲットに送信できない場合、この値は-1 に設定されます。この状況が発生するのは、ターゲットがアイドルタイムアウト前に接続を閉じた場合か、クライアントが誤った形式のリクエストを送信した場合です。

elb_status_code ロードバランサーからの応答のステータスコード。

target_status_code ターゲットから応答のステータスコード。この値は、ターゲットへの接続が確立され、ターゲットが応答を送信した場合のみ記録されます。それ以外の場合、値は - に設定されます。

received_bytes クライアント (リクエスタ) から受け取ったリクエストのサイズ(バイト単位)。HTTP リクエストの場合、これにはヘッダーが含まれます。WebSocketの場合、これは接続でクライアントから受信した合計バイト数です。

sent_bytes クライアント (リクエスタ) に返される応答のサイズ(バイト単位)。HTTP リクエストの場合、これにはヘッダーが含まれます。WebSocket の場合、これは接続でクライアントに送信した合計バイト数です。

リクエスト クライアントからのリクエスト行は二重引用符で囲まれており、次の形式を使用してログに記録されます。HTTP メソッド + プロトコル://ホスト:ポート/uri + HTTP バージョン。

user_agent リクエスト元のクライアントを特定する User-Agent 文字列。この文字列は、1 つ以上の製品 ID (製品[/バージョン]) から構成されます。文字列が 8 KBより長い場合は切り捨てられます。

ssl_cipher [HTTPS リスナー] SSL 暗号。正常なネゴシエーションの後に受信 接続が確立した場合にのみ、この値が記録されます。それ以外の場合、値は - に設定されます。

ssl_protocol [HTTPS リスナー] SSL プロトコル。正常なネゴシエーションの後に受信 接続が確立した場合にのみ、この値が記録されます。それ以外の場合、値は -に設定されます。

target_group_arn ターゲットグループの Amazon リソースネーム (ARN)。

trace_id [X-Amzn-Trace-Id] ヘッダーのコンテンツです。

domain_name [HTTPS リスナー] TLS ハンドシェイク中にクライアントから提供される SNIドメイン。クライアントが SNI をサポートしない場合、あるいはドメインが証明書と一致せず、デフォルトの証明書がクライアントに提示された場合、この値は - となります。

chosen_cert_arn [HTTPS リスナー] クライアントに提示される証明書の ARN。

63

Page 69: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerアクセスログのエントリ

フィールド 説明

matched_rule_priority リクエストに一致したルールの優先度の値。ルールが一致した場合、この値は 1~50,000 になります。一致するルールがなく、デフォルトのアクションが実行された場合、値は 0 になります。エラーが発生した場合、値は -1 になります。

例以下にログエントリの例を示します。読みやすくするためだけの目的で、テキストは複数の行に表示されています。

HTTP エントリ例

次の例は、HTTP リスナーのログエントリです (ポート 80 からポート 80)。

http 2016-08-10T22:08:42.945958Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.000 0.001 0.000 200 200 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"Root=1-58337262-36d228ad5d99923122bbe354" - -

HTTPS エントリ例

次の例は、HTTPS リスナーのログエントリです (ポート 443 からポート 80)。

https 2016-08-10T23:39:43.065466Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.086 0.048 0.037 200 200 0 57 "GET https://www.example.com:443/ HTTP/1.1" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"Root=1-58337281-1d84f3d73c47ec4e58577259" www.example.com arn:aws:acm:us-east-2:123456789012:certificate/12345678-1234-1234-1234-123456789012

HTTP/2 エントリ例

HTTP/2 ストリームのログエントリの例を次に示します。

h2 2016-08-10T00:10:33.145057Z app/my-loadbalancer/50dc6c495c0c9188 10.0.1.252:48160 10.0.0.66:9000 0.000 0.002 0.000 200 200 5 257 "GET https://10.0.2.105:773/ HTTP/2.0" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"Root=1-58337327-72bd00b0343d75b906739c42" - -

WebSocket エントリの例

WebSocket 接続のログエントリの例を次に示します。

ws 2016-08-10T00:32:08.923954Z app/my-loadbalancer/50dc6c495c0c9188 10.0.0.140:40914 10.0.1.192:8010 0.001 0.003 0.000 101 101 218 587 "GET http://10.0.0.30:80/ HTTP/1.1" "-" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"Root=1-58337364-23a8c76965a2ef7629b185e3" - -

安全な WebSocket エントリの例

安全な WebSocket 接続のログエントリの例を次に示します。

wss 2016-08-10T00:42:46.423695Z app/my-loadbalancer/50dc6c495c0c9188

64

Page 70: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerバケットのアクセス許可

10.0.0.140:44244 10.0.0.171:8010 0.000 0.001 0.000 101 101 218 786"GET https://10.0.0.30:443/ HTTP/1.1" "-" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067"Root=1-58337364-23a8c76965a2ef7629b185e3" - -

バケットのアクセス許可アクセスログの作成を有効にするときは、アクセスログの S3 バケットを指定する必要があります。このバケットは、ロードバランサーと同じリージョンにある必要があり、バケットにアクセスログを書き込む許可を Elastic Load Balancing に付与するバケットポリシーが必要です。バケットポリシーは、バケットのアクセス許可を定義するためにアクセスポリシー言語で記述された JSON ステートメントのコレクションです。各ステートメントには 1 つのアクセス許可に関する情報が含まれ、一連のエレメントが使用されます。

Important

コンソールを使用してアクセスログの作成を有効にする場合は、「アクセスログの作成の有効化 (p. 67)」に進むことができます。AWS CLI または API を使用してアクセスログの作成を有効にする場合は、バケットが存在していて、必要なバケットポリシーがある必要があります。

アクセスログのバケットを作成する必要がある場合は、次の手順を使用してバケットを作成し、必要なバケットポリシーを追加します。すでにバケットがある場合は、ステップ 4 から開始し、バケットのバケットポリシーを追加または更新します。

必要なアクセス権限を持つ Amazon S3 バケットを作成するには

1. https://console.aws.amazon.com/s3/ にある Amazon S3 コンソールを開きます。2. [Create Bucket] を選択します。3. [Create a Bucket] ダイアログボックスで、以下の作業を行います。

a. [Bucket Name] に、バケットの名前 (例: my-loadbalancer-logs) を入力します。この名前は、Amazon S3 にある既存のすべてのバケット名と異なる必要があります。 リージョンによっては、バケット名にその他の制限があることがあります。詳細は、Amazon Simple StorageService 開発者ガイドの「Bucket Restrictions and Limitations」を参照してください。

b. [Region] で、ロードバランサーを作成したリージョンを選択します。c. [Create] を選択します。

4. バケットを選択し、[Permissions] を選択します。5. [バケットポリシー] を選択します。バケットにポリシーがすでにアタッチされている場合、 必要なス

テートメントを既存のポリシーに追加できます。6. [Policy generator] を選択します。[AWS Policy Generator] ページで、次の操作を実行します。

a. [Select Type of Policy] で、[S3 Bucket Policy] を選択します。b. [Effect] で、[Allow] を選択します。c. [Principal] で、S3 バケットへのアクセス権を Elastic Load Balancing に付与する次のいずれかの

AWS アカウント ID を指定します。ロードバランサーとバケットのリージョンに対応するアカウント ID を使用します。

サービス対象 リージョン名 Elastic Load Balancing アカウント ID

us-east-1 米国東部(バージニア北部)

127311923021

us-east-2 米国東部 (オハイオ) 033677994240

us-west-1 米国西部 (北カリフォルニア)

027434742980

65

Page 71: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerバケットのアクセス許可

サービス対象 リージョン名 Elastic Load Balancing アカウント ID

us-west-2 米国西部 (オレゴン) 797873946194

ca-central-1 カナダ (中部) 985666609251

eu-central-1 欧州 (フランクフルト) 054676820928

eu-west-1 欧州 (アイルランド) 156460612806

eu-west-2 欧州 (ロンドン) 652711504416

eu-west-3 EU (パリ) 009996457667

ap-northeast-1 アジアパシフィック(東京)

582318560864

ap-northeast-2 アジアパシフィック(ソウル)

600734575887

ap-northeast-3 アジアパシフィック(大阪: ローカル)

383597477331

ap-southeast-1 アジアパシフィック(シンガポール)

114774131450

ap-southeast-2 アジアパシフィック(シドニー)

783225319266

ap-south-1 アジアパシフィック(ムンバイ)

718504428378

sa-east-1 南米 (サンパウロ) 507241528517

us-gov-west-1* AWS GovCloud (米国) 048591011584

cn-north-1* 中国 (北京) 638102146993

cn-northwest-1* 中国 (寧夏) 037604701340

* これらのリージョンには個別のアカウントが必要です。詳細については、「AWS GovCloud (米国)」および「中国 (北京)」を参照してください。

d. [Actions] で [PutObject] を選択し、Elastic Load Balancing が S3 バケットにオブジェクトを保存するのを許可します。

e. [Amazon Resource Name (ARN)] に、S3 バケットの ARN を次の形式で入力します。[aws-account-id] に、ロードバランサーを所有している AWS アカウントの ID (たとえば、123456789012) を指定します。

arn:aws:s3:::bucket/prefix/AWSLogs/aws-account-id/*

us-gov-west-1 リージョンを使用している場合は、arn:aws ではなく arn:aws-us-gov のARN 形式を指定することに注意してください。

f. [Add Statement]、[Generate Policy] を選択します。ポリシードキュメントは次の例のようになります。

{ "Id": "Policy1429136655940", "Version": "2012-10-17",

66

Page 72: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerアクセスログの作成の有効化

"Statement": [ { "Sid": "Stmt1429136633762", "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::my-loadbalancer-logs/my-app/AWSLogs/123456789012/*", "Principal": { "AWS": [ "797873946194" ] } } ]}

g. 新しいバケットポリシーを作成する場合は、ポリシードキュメント全体をコピーし、[Close] を選択します。

既存のバケットポリシーを編集する場合は、ポリシードキュメントから新しいステートメント(Statement 要素の [ と ] の間のテキスト) をコピーし、[Close] を選択します。

7. Amazon S3 コンソールに戻り、必要に応じてポリシーをテキストエリアに貼り付けます。8. [Save] を選択します。

アクセスログの作成の有効化ロードバランサーのアクセスログの作成を有効にする場合は、ロードバランサーがログを保存する S3; バケットの名前を指定する必要があります。このバケットは、ロードバランサーと同じリージョンにあり、バケットにアクセスログを書き込む許可を Elastic Load Balancing に付与するバケットポリシーが必要です。バケットは、ロードバランサーを所有するアカウントとは別のアカウントが所有するものでもかまいません。

コンソールを使用してアクセスログの作成を有効にするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Load Balancers] を選択します。3. ロードバランサーを選択します。4. [Description] タブで、[Edit attributes] を選択します。5. [Edit load balancer attributes] ページで、以下を実行します。

a. [Enable access logs] を選択します。b. [S3 location] に、プレフィックスを含めて S3 バケットの名前を入力します (たとえば my-

loadbalancer-logs/my-app)。既存のバケットの名前や新しいバケットの名前を指定できます。既存のバケットを指定する場合は、このバケットを所有していること、および必要なバケットポリシーを設定したことを確認します。

c. (オプション) バケットが存在しない場合は、[Create this location for me] を選択します。AmazonS3 内のすべての既存のバケット名全体で一意な名前を指定し、DNS 命名規則に従う必要があります。詳細については、Amazon Simple Storage Service 開発者ガイドの「バケット命名規則」を参照してください。

d. [Save] を選択します。

AWS CLI を使用してアクセスログの作成を有効にするには

modify-load-balancer-attributes コマンドを使用します。

67

Page 73: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerアクセスログの作成の無効化

Elastic Load Balancing により S3 バケットにテストファイルが作成されたことを確認するには

アクセスログの作成をロードバランサーで有効にすると、Elastic Load Balancing は S3 バケットを検証し、テストファイルを作成して、バケットポリシーが必要なアクセス権限を指定するようにします。Amazon S3 コンソールを使用して、テストファイルが作成されたことを確認できます。テストファイルは実際のアクセスログファイルではなく、レコード例は含まれていません。

1. https://console.aws.amazon.com/s3/ にある Amazon S3 コンソールを開きます。2. [All Buckets] で、S3 バケットを選択します。3. テストログファイルがある場所に移動します。パスは次のようになります。

my-bucket/prefix/AWSLogs/123456789012/ELBAccessLogTestFile

アクセスログの S3 バケットを管理するには

アクセスログを有効にしたら、アクセスログを有効にしたバケットを削除する前に、必ずアクセスログを無効にします。そうしないと、同じ名前を持ち、所有していない AWS アカウントで必要なバケットポリシーが作成された新しいバケットがある場合、Elastic Load Balancing はロードバランサーのアクセスログをその新しいバケットに書き込む可能性があります。

アクセスログの作成の無効化ロードバランサーのアクセスログの作成は、いつでも無効にできます。アクセスログの作成を無効にした後は、削除するまでアクセスログは S3; バケットに残されたままです。詳細については、Amazon SimpleStorage Service コンソールユーザーガイドの「バケットの使用」を参照してください。

コンソールを使用してアクセスログの作成を無効にするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Load Balancers] を選択します。3. ロードバランサーを選択します。4. [Description] タブで、[Edit attributes] を選択します。5. [Edit load balancer attributes] ページで、[Enable access logs] をオフにします。6. [Save] を選択します。

AWS CLI を使用してアクセスログの作成を無効にするには

modify-load-balancer-attributes コマンドを使用します。

アクセスログファイルの処理アクセスログファイルは圧縮されます。Amazon S3 コンソールを使用してファイルを開くと、ファイルは解凍され、情報が表示されます。ファイルをダウンロードする場合、情報を表示するには解凍する必要があります。

ウェブサイトの需要が大きい場合は、ロードバランサーによって数 GB のデータ量のログファイルが生成されることがあります。このような大容量のデータは、行単位で処理できない場合があります。このため、場合によっては、並列処理ソリューションを提供する分析ツールを使用する必要があります。たとえば、次の分析ツールを使用するとアクセスログの分析と処理を行うことができます。

• Amazon Athena は、標準 SQL を使用して Amazon S3 のデータの分析を簡易化するインタラクティブなクエリサービスです。詳細については、Amazon Athena ユーザーガイドの「Application LoadBalancer ログのクエリ」を参照してください。

68

Page 74: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerリクエストのトレース

• Loggly• Splunk• Sumo Logic

Application Load Balancer のリクエストのトレースクライアントからのターゲットまたは他のサービスへの HTTP リクエストを追跡するため、リクエストのトレースを使用できます。ロードバランサーは、クライアントからのリクエストを受信すると、ターゲットにリクエストを送信する前に、[X-Amzn-Trace-Id] ヘッダーを追加、または更新します。ロードバランサーとターゲットとの間のサービスまたはアプリケーションはすべて、このヘッダーの追加、または更新ができます。

アクセスログを有効にすると、[X-Amzn-Trace-Id] ヘッダーの内容が記録されます。詳細については、「Application Load Balancer のアクセスログ (p. 60)」を参照してください。

構文[X-Amzn-Trace-Id] ヘッダーには、次の形式を含むフィールドが含まれます。

Field=version-time-id

フィールド

フィールドの名前。サポートされる値は Root と Self です。

アプリケーションは独自の目的で任意のフィールドを追加できます。ロードバランサーは、これらのフィールドを維持しますが、使用しません。

バージョン

バージョン番号。time

エポック時間 (秒)。id

追跡識別子。

[X-Amzn-Trace-Id] ヘッダーが受信リクエストにない場合、ロードバランサーは、Root フィールドのあるヘッダーを作成し、リクエストを転送します。(例:

X-Amzn-Trace-Id: Root=1-67891233-abcdef012345678912345678

[X-Amzn-Trace-Id] ヘッダーがあり、Root フィールドがある場合、ロードバランサーは Self フィールドを挿入し、リクエストを転送します。(例:

X-Amzn-Trace-Id: Self=1-67891234-12456789abcdef012345678;Root=1-67891233-abcdef012345678912345678

アプリケーションが Root フィールドとカスタムフィールドのあるヘッダーを追加した場合、ロードバランサーは両方のフィールドを保持し、Self フィールドを挿入して、リクエストを転送します。

69

Page 75: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer制約事項

X-Amzn-Trace-Id: Self=1-67891234-12456789abcdef012345678;Root=1-67891233-abcdef012345678912345678;CalledFrom=app

[X-Amzn-Trace-Id] ヘッダーがあり、Self フィールドがある場合、ロードバランサーは Self フィールドの値を更新します。

制約事項• ロードバランサーは、レスポンスを受信するときではなく、受信リクエストを受け取るときにヘッダー

を更新します。• HTTP ヘッダーが 7 KB より大きい場合、ロードバランサーは、[X-Amzn-Trace-Id] ヘッダーを Root

フィールドで書き換えます。• WebSockets では、アップグレードのリクエストが成功するまでの間だけ追跡できます。

Application Load Balancer の AWS CloudTrail ログ記録

Elastic Load Balancing は AWS アカウント、またはAWS アカウント代行によるAWS への API コールをキャプチャする AWS CloudTrail と統合され、指定した Amazon S3 バケットにログファイルを渡します。CloudTrail を使用してもコストは発生しません。ただし、Amazon S3 の標準料金がかかります。

AWS マネジメントコンソールを通じて直接的に使用するか間接的に使用するかにかかわらず、ElasticLoad Balancing API を含めて、CloudTrail ログは AWS API を呼び出します。CloudTrail によって収集された情報を使用して、実行された API コール、使用されたソース IP アドレス、リクエストの実行者、リクエストの実行日時などを判断できます。

CloudTrail の詳細 (設定する方法や有効にする方法など) については、AWS CloudTrail User Guide を参照してください。Elastic Load Balancing API アクションの完全なリストについては、「Elastic LoadBalancing API リファレンスバージョン 2015-12-01」を参照してください。

クライアントがロードバランサーに対してリクエストを作成するときなど、ロードバランサーに対する他のアクションを監視するには、アクセスログを使用します。詳細については、「Application LoadBalancer のアクセスログ (p. 60)」を参照してください。

目次• CloudTrail のイベントログ作成機能の有効化 (p. 70)• CloudTrail ログファイルの Elastic Load Balancing イベントレコード (p. 71)

CloudTrail のイベントログ作成機能の有効化まだ行っていない場合は、次のステップを使用して、アカウントの CloudTrail イベントログの作成機能を有効にします。

CloudTrail イベントログ作成機能を有効にするには

1. https://console.aws.amazon.com/cloudtrail/ にある CloudTrail コンソールを開きます。2. [Get Started Now] を選択します。3. [Trail name] に、証跡の名前を入力します。4. [Apply trail to all regions] を [Yes] のままにします。

70

Page 76: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerCloudTrail ログファイルの ElasticLoad Balancing イベントレコード

5. CloudTrail ログファイル用の既存の S3 バケットを選択するか、新しいバケットを作成します。新しいバケットを作成するには、[S3 bucket] に一意の名前を入力します。既存のバケットを使用するには、[Create a new S3 bucket] を [No] に変更して、[S3 bucket] からバケットを選択します。

6. [Turn on] を選択します。

ログファイルは次の場所の S3 バケットに書き込まれます。

my-bucket/AWSLogs/123456789012/CloudTrail/region/yyyy/mm/dd/

詳細については、AWS CloudTrail User Guide を参照してください。

CloudTrail ログファイルの Elastic Load Balancing イベントレコードCloudTrail からのログファイルには、JSON 形式のイベント情報が含まれます。1 件のイベントレコードは、1 回の AWS API コールを表し、アクションをリクエストしたユーザーやリクエストの日時、リクエストパラメーター、レスポンス要素など、リクエストされたアクションに関する情報を含みます。

このログファイルには、Elastic Load Balancing API 呼び出しだけでなく、ご使用のAWS アカウントに関するすべての AWS API 呼び出しに関するイベントが含まれます。elasticloadbalancing.amazonaws.com の値を使用して eventSource 要素を確認することで、Elastic Load Balancing API に対する呼び出しを見つけることができます。CreateLoadBalancerなどの特定のアクションのレコードを表示するには、アクション名で eventName 要素を確認します。お客様に代わって Elastic Load Balancing によって Amazon EC2 API に対して行われた呼び出しのレコードを表示するには、ec2.amazonaws.com の値を持つ eventSource 要素、およびelasticloadbalancing.amazonaws.com の値を持つ invokedBy 要素でレコードを確認します。たとえば、ロードバランサーがスケールしてトラフィック量の変化に対応する場合、ロードバランサーはAmazon EC2 API を呼び出してネットワークインターフェイスを作成し、削除します。

次の例は、AWS CLI を使用してロードバランサーを作成した後、そのロードバランサーを削除したユーザーの CloudTrail ログレコードを示しています。userAgent 要素を使用して CLI を特定できます。eventName 要素を使用して、リクエストされた API コールを特定できます。ユーザーに関する情報(Alice) は userIdentity 要素で確認できます。CloudTrail ログファイルのさまざまなエレメントと値の詳細については、AWS CloudTrail User Guideの「CloudTrail イベントリファレンス」を参照してください。

{ "Records": [ . . . { "eventVersion: "1.03", "userIdentity": { "type": "IAMUser", "principalId": "123456789012", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "Alice" }, "eventTime": "2016-04-01T15:31:48Z", "eventSource": "elasticloadbalancing.amazonaws.com", "eventName": "CreateLoadBalancer", "awsRegion": "us-west-2", "sourceIPAddress": "198.51.100.1", "userAgent": "aws-cli/1.10.10 Python/2.7.9 Windows/7 botocore/1.4.1", "requestParameters": { "subnets": ["subnet-8360a9e7","subnet-b7d581c0"],

71

Page 77: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerCloudTrail ログファイルの ElasticLoad Balancing イベントレコード

"securityGroups": ["sg-5943793c"], "name": "my-load-balancer", "scheme": "internet-facing" }, "responseElements": { "loadBalancers":[{ "type": "application", "loadBalancerName": "my-load-balancer", "vpcId": "vpc-3ac0fb5f", "securityGroups": ["sg-5943793c"], "state": {"code":"provisioning"}, "availabilityZones": [ {"subnetId":"subnet-8360a9e7","zoneName":"us-west-2a"}, {"subnetId":"subnet-b7d581c0","zoneName":"us-west-2b"} ], "dNSName": "my-load-balancer-1836718677.us-west-2.elb.amazonaws.com", "canonicalHostedZoneId": "Z2P70J7HTTTPLU", "createdTime": "Apr 11, 2016 5:23:50 PM", "loadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/ffcddace1759e1d0", "scheme": "internet-facing" }] }, "requestID": "b9960276-b9b2-11e3-8a13-f1ef1EXAMPLE", "eventID": "6f4ab5bd-2daa-4d00-be14-d92efEXAMPLE", "eventType": "AwsApiCall", "apiVersion": "2015-12-01", "recipientAccountId": "123456789012" }, . . . { "eventVersion: "1.03", "userIdentity": { "type": "IAMUser", "principalId": "123456789012", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "Alice" }, "eventTime": "2016-04-01T15:31:48Z", "eventSource": "elasticloadbalancing.amazonaws.com", "eventName": "DeleteLoadBalancer", "awsRegion": "us-west-2", "sourceIPAddress": "198.51.100.1", "userAgent": "aws-cli/1.10.10 Python/2.7.9 Windows/7 botocore/1.4.1", "requestParameters": { "loadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/ffcddace1759e1d0" }, "responseElements": null, "requestID": "349598b3-000e-11e6-a82b-298133eEXAMPLE", "eventID": "75e81c95-4012-421f-a0cf-babdaEXAMPLE", "eventType": "AwsApiCall", "apiVersion": "2015-12-01", "recipientAccountId": "123456789012" }, . . . ]}

CloudTrail が統合された Amazon パートナーソリューションを使用して、CloudTrail ログファイルの読み取りと分析を実行することもできます。詳細については、AWS CloudTrail パートナーページを参照してください。

72

Page 78: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer登録されたターゲットが実行中でない

Application Load Balancer のトラブルシューティング

以下の情報は、Application Load Balancer の問題のトラブルシューティングに役立ちます。

問題点• 登録されたターゲットが実行中でない (p. 73)• クライアントがインターネット向けロードバランサーに接続できない (p. 74)• ロードバランサーが異常なターゲットにリクエストを送信する (p. 74)• ロードバランサーが HTTP エラーを生成する (p. 74)• ターゲットが HTTP エラーを生成する (p. 76)

登録されたターゲットが実行中でないターゲットが InService 状態になるまでに予想以上に時間がかかっている場合、ヘルスチェックに合格していない可能性があります。ターゲットは、ヘルスチェックに合格するまで実行されません。詳細については、「ターゲットグループのヘルスチェック (p. 44)」を参照してください。

インスタンスがヘルスチェックに合格していないことを確認したら、以下についてチェックします。

セキュリティグループでトラフィックが許可されていない

インスタンスに関連付けられたセキュリティグループでは、ヘルスチェックポートとヘルスチェックプロトコルを使用してロードバランサーからのトラフィックを許可する必要があります。インスタンスセキュリティグループにルールを追加して、ロードバランサーセキュリティグループからのすべてのトラフィックを許可できます。また、ロードバランサーのセキュリティグループは、インスタンスへのトラフィックを許可する必要があります。

ネットワークアクセスコントロールリスト (ACL) ではトラフィックが許可されない

インスタンスのサブネットに関連付けられたネットワーク ACL では、ヘルスチェックポートでインバウンドトラフィックを許可し、一時ポート (1024-65535) でアウトバウンドトラフィックを許可する必要があります。ロードバランサーノードのサブネットに関連付けられたネットワーク ACL では、一時ポートでインバウンドトラフィックを許可し、ヘルスチェックおよび一時ポートでアウトバウンドトラフィックを許可する必要があります。

ping パスが存在しない

ヘルスチェックのターゲットページを作成し、そのパスを ping パスとして指定します。接続がタイムアウトする

最初に、ターゲットのプライベート IP アドレスとヘルスチェックプロトコルを使用して、ネットワーク内から直接ターゲットに接続できることを確認します。接続できない場合は、インスタンスの使用率が高すぎないかどうかを確認し、ビジー状態で応答できない場合はさらにターゲットをターゲットグループに追加します。接続できる場合、ヘルスチェックのタイムアウト時間の前に、ターゲットページが応答していない可能性があります。ヘルスチェック用のよりシンプルなターゲットページを選択するか、ヘルスチェックの設定を調整します。

73

Page 79: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerクライアントがインターネット向

けロードバランサーに接続できない

ターゲットが正常なレスポンスコードを返さなかった

デフォルトの成功コードは 200 ですが、ヘルスチェックを設定するときにオプションで成功コードを追加して指定できます。ロードバランサーで予期される成功コードを確認し、成功時にアプリケーションがそれらのコードを返すよう設定されていることを確認します。

クライアントがインターネット向けロードバランサーに接続できない

ロードバランサーがリクエストに応答しない場合は、以下を確認します。

インターネット向けロードバランサーがプライベートサブネットにアタッチされている

ロードバランサーのパブリックサブネットを指定したことを確認します。パブリックサブネットにはVirtual Private Cloud (VPC) のインターネットゲートウェイへのルートがあります。

セキュリティグループまたはネットワーク ACL でトラフィックが許可されていない

ロードバランサーのセキュリティグループ、およびロードバランサーサブネットのネットワーク ACLで、クライアントからのインバウンドトラフィックとクライアントへのアウトバウンドトラフィックをリスナーポートで許可する必要があります。

ロードバランサーが異常なターゲットにリクエストを送信する

ロードバランサーに対して少なくとも 1 つの正常な登録済みターゲットがある場合、ロードバランサーは正常な登録済みターゲットにのみリクエストをルーティングします。異常な登録済みターゲットのみがある場合、ロードバランサーはすべての登録済みターゲットにリクエストをルーティングします。

ロードバランサーが HTTP エラーを生成する次の HTTP エラーは、ロードバランサーで生成されます。ロードバランサーはクライアントに HTTPコードを送信し、アクセスログにリクエストを保存して、HTTPCode_ELB_4XX_Count またはHTTPCode_ELB_5XX_Count メトリクスを増やします。

エラー• HTTP 400: Bad Request (p. 74)• HTTP 403: Forbidden (p. 75)• HTTP 460 (p. 75)• HTTP 463 (p. 75)• HTTP 502: Bad Gateway (p. 75)• HTTP 503: Service Unavailable (p. 75)• HTTP 504: Gateway Timeout (p. 75)

HTTP 400: Bad Request考えられる原因:

74

Page 80: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load BalancerHTTP 403: Forbidden

• クライアントが HTTP 仕様を満たさない誤った形式のリクエストを送信した。• リクエストヘッダーが、リクエスト行あたり 16K、1 つのヘッダーあたり 16K、またはヘッダー全体に

対して 64K を超えている。

HTTP 403: ForbiddenApplication Load Balancer へのリクエストをモニタリングするよう AWS WAF ウェブアクセスコントロールリスト (ウェブ ACL) を設定し、リクエストがブロックされました。

HTTP 460ロードバランサーはクライアントからリクエストを受信したが、クライアントはアイドルタイムアウトが経過する前に、ロードバランサーとの接続を閉じました。

クライアントのタイムアウト期間がロードバランサーのアイドルタイムアウト期間より長いかどうか確認してください。クライアントのタイムアウト期間が経過する前に、ターゲットがクライアントにレスポンスを返すことを確認するか、クライアントがサポートする場合は、クライアントのタイムアウト期間を増やしてロードバランサーのアイドルタイムアウトに合わせます。

HTTP 463ロードバランサーは 30 以上の IP アドレスを含む X-Forwarded-For リクエストヘッダーを受け取りました。

HTTP 502: Bad Gateway考えられる原因:

• 接続の確立を試みているときに、ロードバランサーがターゲットから TCP RST を受信した。• ロードバランサーにターゲットへの未処理のリクエストがあるときに、ターゲットが TCP RST または

TCP FIN との接続を閉じた。• ターゲットのレスポンス形式が正しくないか、有効でない HTTP ヘッダーが含まれている。• 新しいターゲットグループが使用されたが、最初のヘルスチェックに合格したターゲットがまだない。

ターゲットが正常と見なされるには、1 つのヘルスチェックに合格する必要があります。• ロードバランサーがターゲットに接続するときに、SSL ハンドシェイクエラーまたは SSL ハンドシェイ

クタイムアウト (10 秒) が発生しました。

HTTP 503: Service Unavailableロードバランサーのターゲットグループに登録済みターゲットがありません。

HTTP 504: Gateway Timeout考えられる原因:

• ロードバランサーは、接続タイムアウトが期限切れになる (10 秒) 前にターゲットへの接続の確立に失敗した。

• ロードバランサーはターゲットへの接続を確立したが、アイドルタイムアウト期間が経過する前にターゲットが応答しなかった。

• サブネットのネットワーク ACL で、ターゲットから一時ポート (1024-65535) のロードバランサーノードへのトラフィックが許可されなかった。

75

Page 81: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancerターゲットが HTTP エラーを生成する

• ターゲットがエンティティ本文より大きな Content-Length ヘッダーを返した。ロードバランサーが欠落しているバイトを待機してタイムアウトした。

ターゲットが HTTP エラーを生成するロードバランサーはターゲットからの有効な HTTP レスポンスを、HTTP エラーを含めてクライアントに転送します。ターゲットによって生成された HTTP エラーは、HTTPCode_Target_4XX_Count およびHTTPCode_Target_5XX_Count メトリクスに記録されます。

76

Page 82: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer

Application Load Balancer の制限Application Load Balancer の現在の制限を表示するには、Amazon EC2 コンソールの [Limits] ページ、または describe-account-limits (AWS CLI) コマンドを使用します。制限の緩和をリクエストするには、Elastic Load Balancing の制限フォームを使用します。

AWS アカウントに Application Load Balancer に関連した以下の制限があります。

リージョンの制限

• リージョンあたりのロードバランサーの数: 20 *• リージョンあたりのターゲットグループの数: 3000

ロードバランサーの制限

• ロードバランサーあたりのリスナーの数: 50• ロードバランサーあたりのターゲットの数: 1000• ロードバランサーあたりのアベイラビリティーゾーンあたりのサブネット: 1• ロードバランサーあたりのセキュリティグループ: 5• ロードバランサーあたりのルールの数 (デフォルトのルールはカウントしない) : 100• ロードバランサーあたりの証明書 (デフォルト証明書は含まない): 25• ロードバランサーあたりのターゲットの登録可能回数: 100

ターゲット グループの制限

• ターゲットグループあたりのロードバランサーの数: 1• ターゲットグループあたりのターゲットの数: 1000

ルールの制限

• ルールあたりの条件の数: 2 (1 つのホスト条件、1 つのパス条件)• ルールあたりのアクションの数: 1• アクションあたりのターゲットグループの数: 1

* この制限には、Application Load Balancer および Classic Load Balancer の両方が含まれます。

77

Page 83: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer

Application Load Balancer のドキュメント履歴

次の表は、Application Load Balancerのドキュメントへの重要な追加項目をまとめたものです。

• API バージョン: 2015-12-01

変更 説明 日付

SNI サポート このリリースでは、Server NameIndication (SNI) へのサポートを追加しています。詳細については、「SSL 証明書 (p. 31)」を参照してください。

2017 年 10 月 10 日

IP アドレスをターゲットに設定 このリリースでは、IP アドレスをターゲットとして登録する機能のサポートが追加されます。詳細については、「ターゲットの種類 (p. 41)」を参照してください。

2017 年 8 月 31 日

ホストベースのルーティング このリリースでは、ホストヘッダーのホスト名に基づいてリクエストをルーティングするサポートが追加されました。詳細については、「ホストの条件 (p. 28)」を参照してください。

2017 年 4 月 5 日

TLS 1.1 および TLS 1.2 のセキュリティポリシー

このリリースでは、TLS 1.1 とTLS 1.2 のセキュリティポリシーのサポートが追加されます。詳細については、「セキュリティポリシー (p. 31)」を参照してください。

2017 年 2 月 6 日

IPv6 サポート このリリースでは、IPv6 アドレスのサポートが追加されます。詳細については、「IP アドレスタイプ (p. 17)」を参照してください。

2017 年 1 月 25 日

リクエストのトレース このリリースでは、リクエストのトレースのサポートを追加します。詳細については、「Application Load Balancer のリクエストのトレース (p. 69)」を参照してください。

2016 年 11 月 22 日

78

Page 84: Elastic Load Balancing - AWS Documentation Load Balancing Application Load Balancer Table of Contents Application Load Balancer とは 1 Application Load Balancer コンポーネント

Elastic Load Balancing Application Load Balancer

変更 説明 日付

パーセンタイルのTargetResponseTime メトリクスのサポート

このリリースでは、AmazonCloudWatch によりサポートされている新しいパーセンタイル統計のサポートを追加します。詳細については、「ApplicationLoad Balancer メトリクスの統計 (p. 58)」を参照してください。

2016 年 11 月 17 日

新しい種類のロードバランサー Elastic Load Balancing の今回のリリースではApplication LoadBalancerが導入されています。

2016 年 8 月 11 日

79