

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# HTTPS リスナーを使用する Classic Load Balancer の作成
<a name="elb-create-https-ssl-load-balancer"></a>

ロードバランサーは、クライアントからリクエストを受信し、ロードバランサーに登録されている EC2 インスタンスに分散します。

HTTP (80) ポートおよび HTTPS (443) ポートの両方でリッスンするロードバランサーを作成できます。HTTPS リスナーがポート 80 でインスタンスにリクエストを送信する方法を指定すると、ロードバランサーはリクエストを終了し、ロードバランサーからインスタンスへの通信は暗号化されません。HTTPS リスナーがポート 443 でインスタンスにリクエストを送信する場合は、ロードバランサーからインスタンスへの通信は暗号化されます。

ロードバランサーがインスタンスとの通信に暗号化された接続を使用する場合、オプションでインスタンスでの認証を有効にできます。これにより、パブリックキーとロードバランサーにこのために指定したキーが一致した場合に限り、ロードバランサーがインスタンスと通信できます。

既存のロードバランサーに HTTPS リスナーを追加する方法については、「[Classic Load Balancer の HTTPS リスナーの設定](elb-add-or-delete-listeners.md)」を参照してください。

**Topics**
+ [前提条件](#elb-https-ssl-prerequisites)
+ [コンソールを使用した HTTPS ロードバランサーの作成](#create-https-lb-console)
+ [を使用して HTTPS ロードバランサーを作成する AWS CLI](#create-https-lb-clt)

## 前提条件
<a name="elb-https-ssl-prerequisites"></a>

始める前に、以下の前提条件を満たしていることを確認してください。
+ 「[VPC の推奨事項](elb-backend-instances.md#set-up-ec2)」の各ステップを実行します。
+ ロードバランサーに登録する EC2 インスタンスを起動します。これらのインスタンスのセキュリティグループは、ロードバランサーからのトラフィックを許可する必要があります。
+ EC2 インスタンスは、ヘルスチェックの対象に対して、HTTP ステータスコード 200 で応答する必要があります。詳細については、「[Classic Load Balancer のインスタンスのヘルスチェック](elb-healthchecks.md)」を参照してください。
+ EC2 インスタンスでキープアライブのオプションを有効にする場合は、キープアライブの設定値をロードバランサーのアイドルタイムアウトの設定値以上に設定をすることをお勧めします。ロードバランサーがインスタンスへの接続を確実に閉じるようにする場合は、キープアライブ時間のインスタンスに設定された値が、ロードバランサーのアイドルタイムアウトの設定値より大きいことを確認します。詳細については、「[Classic Load Balancer でのアイドル接続のタイムアウト設定](config-idle-timeout.md)」を参照してください。
+ セキュアリスナーを作成する場合、ロードバランサーに SSL サーバー証明書をデプロイする必要があります。インスタンスにリクエストを送信する前に、ロードバランサーは証明書を使用してリクエストを終了し、次にリクエストを復号します。SSL 証明書がない場合は作成します。詳細については、「[Classic Load Balancer 用の SSL/TLS 証明書](ssl-server-cert.md)」を参照してください。

## コンソールを使用した HTTPS ロードバランサーの作成
<a name="create-https-lb-console"></a>

この例では、ロードバランサー用の 2 つのリスナーを設定します。最初のリスナーは、ポート 80 で HTTP リクエストを受け取り、HTTP を使用してポート 80 でインスタンスにそれらのリクエストを送信します。2 番目のリスナーは、ポート 443 で HTTPS リクエストを受け取り、HTTP を使用してポート 80 で (バックエンド認証を設定する場合は HTTPS を使用してポート 443 で) インスタンスにそれらのリクエストを送信します。

*リスナー*とは接続リクエストをチェックするプロセスです。リスナーは、フロントエンド (クライアントからロードバランサー) 接続用のプロトコルとポート、およびバックエンド (ロードバランサーからインスタンス) 接続用のプロトコルとポートを使用して設定します。Elastic Load Balancing でサポートされるポート、プロトコル、およびリスナー設定の詳細については、「[Classic Load Balancer のリスナー](elb-listener-config.md)」を参照してください。

**コンソールを使用してセキュアな Classic Load Balancer を作成するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. ナビゲーションペインの [**ロードバランシング**] で [**ロードバランサー**] を選択します。

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

1. **[Classic Load Balancer]** セクションを展開し、**[作成]** を選択します。

1. **基本的な設定**

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

      この Classic Load Balancer の名前は、リージョン内にある Classic Load Balancer の中で一意にする必要があります。使用可能なのは最大 32 文字で、英数字とハイフンのみ使用できます。また、先頭と末尾にハイフンを使用することはできません。

   1. **[スキーム]** で、**[インターネットに接続]** を選択します。

1. **ネットワークマッピング**

   1. **[VPC]** で、インスタンス用に選択したのと同じ VPC を選択します。

   1. **マッピング**の場合、最初にアベイラビリティーゾーンを選択し、次に利用可能なサブネットからパブリックサブネットを選択します。アベイラビリティーゾーンごとに選択できるサブネットは 1 つだけです。ロードバランサーの可用性を高めるには、複数のアベイラビリティーゾーンからサブネットを選択します。

1. **セキュリティグループ**

   1. **[セキュリティグループ]** では、ポート 80 で必要な HTTP トラフィックとポート 443 での HTTPS トラフィックを許可するように設定された既存のセキュリティグループを選択します。

     セキュリティグループが存在しない場合は、必要なルールを含む新しいセキュリティグループを作成できます。

1. **リスナーとルーティング**

   1. デフォルトのリスナーをデフォルト設定のままにし、**[リスナーを追加]** を選択します。

   1. 新しいリスナーの **Listener** で、プロトコルとして `HTTPS` を選択すると、ポートが `443` に更新されます。デフォルトでは、**インスタンス** はポート `HTTP` で `80` プロトコルを使用します。

   1. バックエンド認証が必要な場合は、**インスタンス**プロトコルを `HTTPS` に変更します。これにより、**インスタンス**ポートも `443` に更新されます。

1. **セキュアリスナー設定**

   フロントエンドリスナーに HTTPS または SSL を使用するとき、ロードバランサーに SSL 証明書をデプロイする必要があります。インスタンスにリクエストを送信する前に、ロードバランサーはこの証明書を使用して接続を終了し、クライアントからのリクエストを復号します。また、セキュリティポリシーも指定する必要があります。Elastic Load Balancing には、SSL ネゴシエーション設定が事前定義されたセキュリティポリシーが用意されています。または、独自のカスタムセキュリティポリシーを作成することも可能です。バックエンド接続に HTTPS/SSL を設定した場合は、インスタンスの認証を有効にできます。

   1. **[セキュリティポリシー]**には、常に最新の事前定義されたセキュリティポリシーを使用するか、カスタムポリシーを作成することをお勧めします。「[SSL ネゴシエーション設定の更新](ssl-config-update.md#ssl-config-update-console)」を参照してください。

   1. **[デフォルトの SSL/TLS 証明書]** では、次のオプションが利用可能です。
      + を使用して証明書を作成またはインポートした場合は AWS Certificate Manager、**ACM から** を選択し、証明書**の選択から証明書**を選択します。
      + IAM を使用して証明書をすでにインポートしている場合は、**[IAM から]** を選択し、**[証明書の選択]** から対象の証明書を選択します。
      + インポートする証明書はあるが、リージョンで ACM を利用できない場合は、**[インポート]** を選択し、次に **[IAM へ]** を選択します。**[証明書名]** フィールドに証明書の名前を入力します。**[証明書のプライベートキー]** に、PEM エンコードされたプライベートキーファイルの内容をコピーして貼り付けます。**[証明書本文]** に、PEM エンコードされたパブリックキー証明書ファイルの内容をコピーして貼り付けます。自己署名証明書を使用しておらず、ブラウザが暗黙的に証明書を受け入れることが重要である場合に限り、[**Certificate Chain**] に、PEM エンコードされた証明書チェーンファイルの内容をコピーして貼り付けます。

   1. (オプション) HTTPS リスナーを、暗号化された接続を使用してインスタンスと通信するように設定する場合は、オプションで **[バックエンド認証証明書]** でインスタンスの認証を設定できます。
**注記**  
**[バックエンド認証証明書]** セクションが表示されない場合は、**[リスナーとルーティング]**に戻り、**[インスタンス]**のプロトコルとして `HTTPS` を選択します。

      1. [**Certificate name**] にパブリックキー証明書の名前を入力します。

      1. **[証明書本文 (PEM エンコード)]** に証明書の内容をコピーして貼り付けます。パブリックキーがこのキーと一致した場合のみ、ロードバランサーはインスタンスと通信します。

      1. 他の証明書を追加するには、**[別のバックエンド証明書の追加]** を選択します。上限は 5 つです。

1. **ヘルスチェック**

   1. **[Ping ターゲット]** セクションで、**[Pingプロトコル]** と **[Ping ポート]** を選択します。EC2 インスタンスでは、指定された ping ポートでトラフィックを受け入れる必要があります。

   1. **Ping ポート**の場合は、ポートが `80` であることを確認してください。

   1. **[Ping パス]** の場合、デフォルト値を半角のスラッシュ (`/`) で置き換えます。これにより Elastic Load Balancing は、ヘルスチェックリクエストを、ウェブサーバーのデフォルトのホームページ (`index.html` など) に送信します。

   1. **ヘルスチェックの詳細設定**には、デフォルト値を使用します。

1. **インスタンス**

   1. **[インスタンスの追加]** を選択して、インスタンスの選択画面を表示します。

   1. **[利用可能なインスタンス]** で、前に選択したネットワーク設定に基づいて、ロードバランサーで利用可能な現在のインスタンスから選択できます。

   1. 選択内容に問題がなければ、**[確認]** を選択して、ロードバランサーに登録するインスタンスを追加します。

1. **属性**

   1. **[クロスゾーン負荷分散の有効化]**、**[Connection Draining の有効化]**、および **[タイムアウト (ドレーニング間隔)]** はデフォルト値のままにします。

1. **ロードバランサータグ (オプション)**

   1. **[キー]** フィールドは必須です。

   1. **[値]** フィールドはオプションです。

   1. 別のタグを追加するには、**[新しいタグを追加]**]を選択し、**[キー]** フィールドに値を入力し、オプションで **[値]** フィールドに値を入力します。

   1. 既存のタグを削除するには、削除したいタグの横にある **[削除]** を選択します。

1. **概要と作成**

   1. 設定を変更する必要がある場合は、変更する必要がある設定の横にある **[編集]** を選択します。

   1. 概要に表示されているすべての設定に問題がなければ、**[ロードバランサーの作成]** を選択してロードバランサーの作成を開始します。

   1. 最後の作成ページで、**[ロードバランサーを表示]** を選択して、Amazon EC2 コンソールでロードバランサーを表示します。

1. **検証**

   1. 新しいロードバランサーを選択します。

   1. **[ターゲットインスタンス]** タブで、**[ヘルスステータス]** 列を確認します。少なくとも 1 つの EC2 インスタンスの状態が**稼動中**であれば、ロードバランサーをテストできます。

   1. **[詳細]** セクションで、ロードバランサー **DNS 名** をコピーします。これは `my-load-balancer-1234567890.us-east-1.elb.amazonaws.com` のようになります。

   1. ロード バランサの **DNS 名**を、パブリック インターネットに接続されたウェブブラウザのアドレスフィールドに貼り付けます。ロードバランサーが正しく機能している場合は、 サーバーのデフォルトページが表示されます。

1. **削除 (オプション)**

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

   1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

   1. ロードバランサーを選択します。

   1. [**アクション**] 、[**ロードバランサーを削除**] の順に選択します。

   1. 確認を求められたら、「`confirm`」と入力し、**[削除]** を選択します。

   1. ロードバランサーを削除しても、そのロードバランサーに登録された EC2 インスタンスは引き続き実行されます。実行が継続される分単位または時間単位でお支払いただきます。EC2 インスタンスが必要なくなった場合は、追加料金が発生しないように停止または終了できます。

## を使用して HTTPS ロードバランサーを作成する AWS CLI
<a name="create-https-lb-clt"></a>

 AWS CLIを使用して HTTPS/SSL ロードバランサーを作成するには、次の手順を実行します。

**Topics**
+ [ステップ 1: リスナーを設定する](#configuring_listener_clt)
+ [ステップ 2: SSL セキュリティポリシーを設定する](#configure_ciphers_clt)
+ [ステップ 3: バックエンドインスタンス認証を設定する (オプション)](#configure_backendauth_clt)
+ [ステップ 4: ヘルスチェックを設定する (オプション)](#configure_healthcheck_clt)
+ [ステップ 5: EC2 インスタンスを登録する](#add_ec2instances_clt)
+ [ステップ 6: インスタンスを検証する](#verify-ec2instances-clt)
+ [ステップ 7: ロードバランサーを削除する (オプション)](#us-tearing-lb-cli)

### ステップ 1: リスナーを設定する
<a name="configuring_listener_clt"></a>

*リスナー*とは接続リクエストをチェックするプロセスです。リスナーは、フロントエンド (クライアントからロードバランサー) 接続用のプロトコルとポート、およびバックエンド (ロードバランサーからインスタンス) 接続用のプロトコルとポートを使用して設定します。Elastic Load Balancing でサポートされるポート、プロトコル、およびリスナー設定の詳細については、「[Classic Load Balancer のリスナー](elb-listener-config.md)」を参照してください。

この例では、ポートおよびプロトコルをフロントエンド接続とバックエンド接続に使用するように指定することで、ロードバランサーに 2 つのリスナーを設定します。最初のリスナーは、ポート 80 で HTTP リクエストを受け取り、HTTP を使用してポート 80 でインスタンスにそれらのリクエストを送信します。2 つ目のリスナーは、ポート 443 で HTTPS リクエストを受け取り、HTTP を使用してポート 80 でインスタンスにリクエストを送信します。

2 番目のリスナーがフロントエンド接続に HTTPS を使用するため、SSL サーバー証明書をロードバランサーにデプロイする必要があります。インスタンスにリクエストを送信する前に、ロードバランサーは証明書を使用してリクエストを終了し、次にリクエストを復号します。

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

1. SSL 証明書の Amazon リソースネーム (ARN) を取得します。以下に例を示します。

   **ACM**

   ```
   arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
   ```

   **IAM**

   ```
   arn:aws:iam::123456789012:server-certificate/my-server-certificate
   ```

1. 次の [create-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer.html) コマンドを使用して、ロードバランサーに 2 つのリスナーを構成します。

   ```
   aws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=http,LoadBalancerPort=80,InstanceProtocol=http,InstancePort=80" "Protocol=https,LoadBalancerPort=443,InstanceProtocol=http,InstancePort=80,SSLCertificateId="ARN" --availability-zones us-west-2a
   ```

   以下に、応答の例を示します。

   ```
   {
     "DNSName": "my-loadbalancer-012345678.us-west-2.elb.amazonaws.com"
   }
   ```

1. (オプション) 次の [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) コマンドを使用して、ロードバランサーの詳細を表示します。

   ```
   aws elb describe-load-balancers --load-balancer-name my-load-balancer
   ```

### ステップ 2: SSL セキュリティポリシーを設定する
<a name="configure_ciphers_clt"></a>

事前定義されたセキュリティポリシーのいずれかを選択するか、独自のカスタムセキュリティポリシーを作成できます。それ以外の場合、Elastic Load Balancing は、事前定義されたデフォルトのセキュリティポリシー `ELBSecurityPolicy-2016-08` を使用してロードバランサーを構成します。詳細については、「[Classic Load Balancers での SSL ネゴシエーション設定](elb-ssl-security-policy.md)」を参照してください。

**ロードバランサーにデフォルトのセキュリティポリシーが関連付けられていることを確認するには**  
次の [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) コマンドを使用します。

```
aws elb describe-load-balancers --load-balancer-name my-loadbalancer
```

以下に、応答の例を示します。`ELBSecurityPolicy-2016-08` がポート 443 でロードバランサーに関連付けられることに注意してください。

```
{
    "LoadBalancerDescriptions": [
        {
            ...
            "ListenerDescriptions": [
                {
                    "Listener": {
                        "InstancePort": 80, 
                        "SSLCertificateId": "ARN", 
                        "LoadBalancerPort": 443, 
                        "Protocol": "HTTPS", 
                        "InstanceProtocol": "HTTP"
                    }, 
                    "PolicyNames": [
                        "ELBSecurityPolicy-2016-08"
                    ]
                }, 
                {
                    "Listener": {
                        "InstancePort": 80, 
                        "LoadBalancerPort": 80, 
                        "Protocol": "HTTP", 
                        "InstanceProtocol": "HTTP"
                    }, 
                    "PolicyNames": []
                }
            ],
            ...
        }
    ]
}
```

必要に応じて、デフォルトのセキュリティポリシーを使用せずにロードバランサーの SSL セキュリティポリシーを設定できます。

**(オプション) 事前定義された SSL セキュリティポリシーを使用するには**

1. 次の [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) コマンドを使用して、事前定義されたセキュリティポリシーの名前を一覧表示します。

   ```
   aws elb describe-load-balancer-policies
   ```

   事前定義されたセキュリティポリシーの設定については、「[Classic Load Balancer 用の事前定義済み SSL セキュリティポリシー](elb-security-policy-table.md)」を参照してください。

1. 次の [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) コマンドを使用して、前のステップで一覧表示した事前定義済みセキュリティポリシーのいずれかを利用する、SSL ネゴシエーションのポリシーを作成します。

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer
   --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType 
   --policy-attributes AttributeName=Reference-Security-Policy,AttributeValue=predefined-policy
   ```

1. (オプション) 次の [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) コマンドを使用して、ポリシーが作成されたことを確認します。

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   応答には、ポリシーの説明が含まれます。

1. 次の [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) コマンドを使用して、ポリシーをロードバランサーのポート 443 で有効にします。

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**注記**  
`set-load-balancer-policies-of-listener` コマンドは、指定されたロードバランサーのポートの現在のポリシーのセットを、指定されたポリシーのセットで上書きします。`--policy-names` リストには、有効にするすべてのポリシーを含める必要があります。現在有効なポリシーを省略すると、そのポリシーは無効になります。

1. (オプション) 次の [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) コマンドを使用して、ポリシーが有効化されていることを確認します。

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   ポリシーがポート 443 で有効になっていることを示す応答の例を、次に示します。

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ....
               "ListenerDescriptions": [
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "SSLCertificateId": "ARN", 
                           "LoadBalancerPort": 443, 
                           "Protocol": "HTTPS", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": [
                           "my-SSLNegotiation-policy"
                       ]
                   }, 
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "LoadBalancerPort": 80, 
                           "Protocol": "HTTP", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": []
                   }
               ],
               ...
           }
       ]
   }
   ```

カスタムセキュリティポリシーを作成するとき、プロトコルと暗号を少なくとも 1 つずつ有効にする必要があります。DSA および RSA の暗号は署名アルゴリズムに固有であり、SSL 証明書を作成するために使用されます。すでに SSL 証明書がある場合は、証明書を作成するときに使用された暗号を有効にします。カスタムポリシーの名前は、`ELBSecurityPolicy-` や `ELBSample-` で始めないでください。これらの プレフィックスは、事前定義されたセキュリティポリシーの名前用に予約されているためです。

**(オプション) カスタム SSL セキュリティポリシーを使用するには**

1. [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) コマンドを使用して、カスタムセキュリティポリシーを利用する SSL ネゴシエーションポリシーを作成します。以下に例を示します。

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer 
    --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType 
    --policy-attributes AttributeName=Protocol-TLSv1.2,AttributeValue=true 
    AttributeName=Protocol-TLSv1.1,AttributeValue=true 
    AttributeName=DHE-RSA-AES256-SHA256,AttributeValue=true 
    AttributeName=Server-Defined-Cipher-Order,AttributeValue=true
   ```

1. (オプション) 次の [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) コマンドを使用して、ポリシーが作成されたことを確認します。

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   応答には、ポリシーの説明が含まれます。

1. 次の [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) コマンドを使用して、ポリシーをロードバランサーのポート 443 で有効にします。

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**注記**  
`set-load-balancer-policies-of-listener` コマンドは、指定されたロードバランサーのポートの現在のポリシーのセットを、指定されたポリシーのセットで上書きします。`--policy-names` リストには、有効にするすべてのポリシーを含める必要があります。現在有効なポリシーを省略すると、そのポリシーは無効になります。

1. (オプション) 次の [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) コマンドを使用して、ポリシーが有効化されていることを確認します。

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   ポリシーがポート 443 で有効になっていることを示す応答の例を、次に示します。

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ....
               "ListenerDescriptions": [
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "SSLCertificateId": "ARN", 
                           "LoadBalancerPort": 443, 
                           "Protocol": "HTTPS", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": [
                           "my-SSLNegotiation-policy"
                       ]
                   }, 
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "LoadBalancerPort": 80, 
                           "Protocol": "HTTP", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": []
                   }
               ],
               ...
           }
       ]
   }
   ```

### ステップ 3: バックエンドインスタンス認証を設定する (オプション)
<a name="configure_backendauth_clt"></a>

バックエンド接続に HTTPS/SSL をセットアップした場合、オプションでインスタンスの認証を設定できます。

バックエンドインスタンス認証をセットアップする際、パブリックキーポリシーを作成します。次に、このパブリックキーポリシーを使用して、バックエンドインスタンス認証ポリシーを作成します。最後に、HTTPS プロトコルのインスタンスポートでバックエンドインスタンス認証ポリシーを設定します。

ロードバランサーは、インスタンスがロードバランサーに提示するパブリックキーがロードバランサーの認証ポリシーのパフリックキーと一致する場合のみ、インスタンスと通信します。

**バックエンドインスタンス認証を設定するには**

1. 次のコマンドを使用してパブリックキーを取得します。

   ```
   openssl x509 -in your X509 certificate PublicKey -pubkey -noout
   ```

1. 次の [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) コマンドを使用して、パブリックキーポリシーを作成します。

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-PublicKey-policy \
   --policy-type-name PublicKeyPolicyType --policy-attributes AttributeName=PublicKey,AttributeValue=MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   ```
**注記**  
`--policy-attributes` にパブリックキーの値を指定するには、パブリックキーの先頭の行と末尾の行 (「`-----BEGIN PUBLIC KEY-----`」を含む行と「`-----END PUBLIC KEY-----`」を含む行) を削除します。 AWS CLI では、空白文字は使用できません`--policy-attributes`。

1. 次の [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) コマンドを使用し、`my-PublicKey-policy` によりバックエンドインスタンス認証ポリシーを作成します。

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-authentication-policy --policy-type-name BackendServerAuthenticationPolicyType --policy-attributes AttributeName=PublicKeyPolicyName,AttributeValue=my-PublicKey-policy
   ```

   オプションで複数のパブリックキーポリシーを仕様できます。ロードバランサーはすべてのキーを 1 つずつ試して認証を行います。インスタンスが提示するパブリックキーがこれらのパブリックキーのいずれか 1 つに一致すれば、インスタンスは認証されます。

1. 次の [set-load-balancer-policies-for-backend-server](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-for-backend-server.html) コマンドを使用して、`my-authentication-policy` を HTTPS のインスタンスポートに設定します。この例では、インスタンスポートはポート 443 です。

   ```
   aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 443 --policy-names my-authentication-policy
   ```

1. (オプション) 次の [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) コマンドを使用して、ロードバランサーのすべてのポリシーを一覧表示します。

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer
   ```

1. (オプション) 次の [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) コマンドを使用して、ポリシーの詳細を表示します。

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-names my-authentication-policy
   ```

### ステップ 4: ヘルスチェックを設定する (オプション)
<a name="configure_healthcheck_clt"></a>

Elastic Load Balancing は、ユーザーが作成したヘルスチェック設定に基づいて、登録されている各 EC2 インスタンスの状態を定期的にチェックします。Elastic Load Balancing で 問題のあるインスタンスが検出されると、そのインスタンスへのトラフィックの送信は停止され、正常なインスタンスにトラフィックがルーティングされます。詳細については、「[Classic Load Balancer のインスタンスのヘルスチェック](elb-healthchecks.md)」を参照してください。

ロードバランサーの作成時、Elastic Load Balancing のヘルスチェックにはデフォルト設定が使用されます。デフォルト設定を使用する代わりに、必要に応じて、ロードバランサーのヘルスチェック設定を変更できます。

**インスタンスのヘルスチェックを設定するには**  
次の [configure-health-check](https://docs.aws.amazon.com/cli/latest/reference/elb/configure-health-check.html) コマンドを使用します。

```
aws elb configure-health-check --load-balancer-name my-loadbalancer --health-check Target=HTTP:80/ping,Interval=30,UnhealthyThreshold=2,HealthyThreshold=2,Timeout=3
```

以下に、応答の例を示します。

```
{
    "HealthCheck": {
        "HealthyThreshold": 2,
        "Interval": 30,
        "Target": "HTTP:80/ping",
        "Timeout": 3,
        "UnhealthyThreshold": 2
    }
}
```

### ステップ 5: EC2 インスタンスを登録する
<a name="add_ec2instances_clt"></a>

ロードバランサーを作成したら、そのロードバランサーに EC2 インスタンスを登録する必要があります。同じリージョン内の 1 つまたは複数のアベイラビリティーゾーンにある EC2 インスタンスをロードバランサーとして選択できます。詳細については、「[Classic Load Balancer の登録済みインスタンス](elb-backend-instances.md)」を参照してください。

[register-instances-with-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/register-instances-with-load-balancer.html) コマンドを次のように使用します。

```
aws elb register-instances-with-load-balancer --load-balancer-name my-loadbalancer --instances i-4f8cf126 i-0bb7ca62
```

以下に、応答の例を示します。

```
{
    "Instances": [
        {
            "InstanceId": "i-4f8cf126"
        },
        {
            "InstanceId": "i-0bb7ca62"
        }
    ]
}
```

### ステップ 6: インスタンスを検証する
<a name="verify-ec2instances-clt"></a>

登録したインスタンスのいずれかが `InService` 状態になると、ロードバランサーを使用できるようになります。

新しく登録した EC2 インスタンスの状態を確認するには、次の [describe-instance-health](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-instance-health.html) コマンドを使用します。

```
aws elb describe-instance-health  --load-balancer-name my-loadbalancer --instances i-4f8cf126 i-0bb7ca62
```

以下に、応答の例を示します。

```
{
    "InstanceStates": [
        {
            "InstanceId": "i-4f8cf126", 
            "ReasonCode": "N/A", 
            "State": "InService", 
            "Description": "N/A"
        }, 
        {
            "InstanceId": "i-0bb7ca62", 
            "ReasonCode": "Instance", 
            "State": "OutOfService", 
            "Description": "Instance registration is still in progress"
        }
    ]
}
```

インスタンスの `State` フィールドが `OutOfService` である場合は、インスタンスがまだ登録中の可能性があります。詳細については、「[Classic Load Balancer のトラブルシューティング: インスタンスの登録](ts-elb-register-instance.md)」を参照してください。

少なくとも 1 つのインスタンスの状態が `InService` であれば、ロードバランサーをテストできます。ロードバランサーをテストするには、ロードバランサーの DNS 名をコピーして、インターネットに接続されているウェブブラウザのアドレスフィールドに貼り付けます。ロードバランサーが実行中の場合は、HTTP サーバーのデフォルトページが表示されます。

### ステップ 7: ロードバランサーを削除する (オプション)
<a name="us-tearing-lb-cli"></a>

ロードバランサーを削除すると、関連する EC2 インスタンスが自動的に登録解除されます。ロードバランサーが削除されると、ロードバランサーの課金も停止されます。ただし、EC2 インスタンスは引き続き実行され、利用料金も継続して発生します。

ロードバランサーを削除するには、次の [delete-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/delete-load-balancer.html) コマンドを使用します。

```
aws elb delete-load-balancer --load-balancer-name my-loadbalancer
```

EC2 インスタンスを停止するには、[stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) コマンドを使用します。EC2 インスタンスを終了するには、[terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) コマンドを使用します。