インターネットに接続された Elastic Load Balancing (ELB) ロードバランサーを使用しています。プライベートサブネットに置かれたバックエンド Amazon Elastic Compute Cloud (Amazon EC2) インスタンスをアタッチしたいです。
簡単な説明
プライベートサブネットでバックエンド Amazon EC2 インスタンスをアタッチするには、同じアベイラビリティーゾーンにパブリックサブネットを作成します。次に、それらのパブリックサブネットをロードバランサーに関連付けます。
注: ロードバランサーはターゲットとの接続を非公開状態で確立します。インターネットからソフトウェアパッチまたはセキュリティパッチをダウンロードするには、ターゲットインスタンスのルートテーブルで NAT ゲートウェイルールを使用してインターネットアクセスを許可します。
解決策
始める前に、ロードバランサーに登録する予定の各 EC2 インスタンスのアベイラビリティーゾーンを特定します。
EC2 バックエンドインスタンス用のパブリックサブネットを作成する
EC2 バックエンドインスタンス用のパブリックサブネットを作成するには、次の手順を実行します。
- バックエンドインスタンスがある各アベイラビリティーゾーンにパブリックサブネットを作成します。同じアベイラビリティーゾーンに複数のプライベートサブネットがある場合は、そのアベイラビリティーゾーンにパブリックサブネットを 1 つだけ作成します。
- 各パブリックサブネットに、ビットマスクが /27 以上 (たとえば、10.0.0.0/27) の CIDR ブロックがあることを確認します。
- 各サブネットに 8 個以上の空き IP アドレスがあることを確認します。
たとえば、パブリックサブネット (Application Load Balancer のサブネット) には、ビットマスクが /27 以上の CIDR ブロックが必要です。
アベイラビリティーゾーン A のパブリックサブネット: 10.0.0.0/24
アベイラビリティーゾーン A のプライベートサブネット: 10.1.0.0/24
アベイラビリティーゾーン B のパブリックサブネット: 10.2.0.0/24
アベイラビリティーゾーン B のプライベートサブネット: 10.3.0.0/24
ロードバランサーを設定する
ロードバランサーを設定するには、次の手順を実行します。
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインの [ロードバランシング] で [ロードバランサー] を選択します。次に、該当するロードバランサーを選択します。
- パブリックサブネットをロードバランサーに関連付けます。詳細については、以下を参照してください。
ロードバランサーとリスナーを設定する (Application Load Balancer)
ロードバランサーとリスナーを設定する (Network Load Balancer)
Classic Load Balancer 用のサブネットを設定する (Classic Load Balancer)
- バックエンドインスタンスをロードバランサーに登録します。詳細については、以下を参照してください。
Application Load Balancer にターゲットを登録する
Network Load Balancer にターゲットを登録する
Classic Load Balancer にインスタンスを登録する
ロードバランサーのセキュリティグループとネットワーク ACL を設定する
Application Load Balancer または Classic Load Balancer のセキュリティグループ設定を確認します。次のことを確認します。
- ロードバランサーには、ポートへのアクセスを許可するオープンリスナーポートとセキュリティグループがある。
- インスタンスのセキュリティグループで、ロードバランサーからのインスタンスリスナーポートとヘルスチェックポートへのトラフィックが許可されている。
- ロードバランサーセキュリティグループで、クライアントからのインバウンドトラフィックが許可されている。
- ロードバランサーセキュリティグループで、インスタンスとヘルスチェックポートへのアウトバウンドトラフィックが許可されている。
インスタンスセキュリティグループにルールを追加して、ロードバランサーに割り当てられたセキュリティグループからのトラフィックを許可します。たとえば、パラメータは次のように設定します。
- ロードバランサーのセキュリティグループ: sg-1234567a
- イングレスルール: HTTP TCP 80 0.0.0.0/0
- インスタンスのセキュリティグループ: sg-a7654321
- イングレスルール: HTTP TCP 80 sg-1234567a
この例では、ルールは次のようになります。
- タイプ: HTTP
- プロトコル: TCP
- ポート範囲: 80
- ソース: sg-1234567a
ロードバランサーが使用するサブネットに関連付けられているネットワークアクセスコントロールリスト (ACL) のルールをレビューします。このルールは、Application Load Balancer と Classic Load Balancer の両方に適用されます。
Network Load Balancer を使用する場合は、設定の詳細については「Network Load Balancer のトラブルシューティング」および「ターゲットのセキュリティグループ」を参照してください。バックエンドインスタンスのセキュリティグループで、次のいずれかからのターゲットグループのポートへのトラフィックを許可していることを確認します。
- クライアント IP アドレス (ターゲットがインスタンス ID で指定されている場合)
- ロードバランサーノード (ターゲットが IP アドレスで指定されている場合)
関連情報
Elastic Load Balancing の仕組み
EC2 インスタンス用の Amazon EC2 セキュリティグループ