翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用した Gateway Load Balancer の開始方法 AWS CLI
Gateway Load Balancer を使用すると、セキュリティアプライアンスなどのサードパーティー仮想アプライアンスを簡単にデプロイ、スケーリング、管理できます。
このチュートリアルでは、Gateway Load Balancer と Gateway Load Balancer エンドポイントを使用して検査システムを実装します。
内容
概要
Gateway Load Balancer エンドポイントは、サービスプロバイダー VPC 内の仮想アプライアンスとサービスコンシューマー VPC 内のアプリケーションサーバー間のプライベート接続を提供する VPC エンドポイントです。Gateway Load Balancer は、仮想アプライアンスと同じ VPC にデプロイされます。これらのアプライアンスは、Gateway Load Balancer のターゲットグループに登録されます。
アプリケーションサーバーはサービスコンシューマー VPC の 1 つのサブネット (宛先サブネット) で実行されますが、Gateway Load Balancer エンドポイントは同じ VPC の別のサブネットにあります。インターネットゲートウェイを経由してサービスコンシューマー VPC に入るすべてのトラフィックは、まず、Gateway Load Balancer エンドポイントにルーティングされ、その後、送信先サブネットにルーティングされます。
同様に、アプリケーションサーバー (送信先サブネット) から出るすべてのトラフィックは、Gateway Load Balancer エンドポイントにルーティングされてから、インターネットにルーティングされます。次のネットワークの図は、Gateway Load Balancer エンドポイントがエンドポイントサービスへのアクセスにどのように使用されるのかを視覚的に示したものです。
![Gateway Load Balancer エンドポイントを使用してエンドポイントサービスにアクセスする](images/vpc-endpoint-service-gwlbe-new.png)
下の番号付きの項目で、上記の図に示されている各要素がわかりやすく説明されています。
インターネットからアプリケーションへのトラフィック (青い矢印):
-
トラフィックは、インターネットゲートウェイを介してサービスコンシューマー VPC に入ります。
-
トラフィックは、入力ルーティングの結果として Gateway Load Balancer エンドポイントに送信されます。
-
Gateway Load Balancer に送信されたトラフィックは、セキュリティアプライアンスの 1 つに分散されます。
-
セキュリティアプライアンスによって検査されたトラフィックは Gateway Load Balancer エンドポイントに戻されます。
-
トラフィックはアプリケーションサーバー (宛先サブネット) に送信されます。
アプリケーションからインターネットへのトラフィック (オレンジの矢印):
-
トラフィックは、アプリケーションサーバーのサブネットで設定されたデフォルトルートの結果として、Gateway Load Balancer エンドポイントに送信されます。
-
Gateway Load Balancer に送信されたトラフィックは、セキュリティアプライアンスの 1 つに分散されます。
-
セキュリティアプライアンスによって検査されたトラフィックは Gateway Load Balancer エンドポイントに戻されます。
-
トラフィックは、ルートテーブルの設定に基づいてインターネットゲートウェイに送信されます。
-
トラフィックはインターネットにルーティングされます。
ルーティング
インターネットゲートウェイのルートテーブルには、アプリケーションサーバー宛てのトラフィックを Gateway Load Balancer エンドポイントにルーティングするエントリが必要です。Gateway Load Balancer エンドポイントを指定するには、VPC エンドポイントの ID を使用します。次の例は、デュアルスタック設定のルートを示します。
デスティネーション | ターゲット |
---|---|
VPC IPv4 CIDR |
ローカル |
VPC IPv6 CIDR |
ローカル |
サブネット 1 IPv4 CIDR |
vpc-endpoint-id |
サブネット 1 IPv6 CIDR |
vpc-endpoint-id |
アプリケーションサーバーがあるサブネットのルートテーブルには、アプリケーションサーバーからのすべてのトラフィックを Gateway Load Balancer エンドポイントにルーティングするエントリが必要です。
デスティネーション | ターゲット |
---|---|
VPC IPv4 CIDR |
ローカル |
VPC IPv6 CIDR |
ローカル |
0.0.0.0/0 | vpc-endpoint-id |
::/0 | vpc-endpoint-id |
Gateway Load Balancer エンドポイントがあるサブネットのルートテーブルは、検査から返されるトラフィックを最終的な送信先にルーティングする必要があります。インターネットを起点とするトラフィックについては、ローカルルートによって、アプリケーションサーバーに確実に到達します。アプリケーションサーバーを起点とするトラフィックに対して、すべてのトラフィックをインターネットゲートウェイにルーティングするエントリを追加します。
デスティネーション | ターゲット |
---|---|
VPC IPv4 CIDR |
ローカル |
VPC IPv6 CIDR |
ローカル |
0.0.0.0/0 | internet-gateway-id |
::/0 | internet-gateway-id |
前提条件
-
Gateway Load Balancer をサポートしていないバージョンを使用している場合 AWS CLI は、 をインストールする AWS CLI か、 の最新バージョンに更新します。詳細については、AWS CLIユーザーガイドのAWS Command Line Interface のインストールを参照してください。
-
サービスコンシューマー VPC に、アプリケーションサーバーを含むアベイラビリティーゾーンごとに少なくとも 2 つのサブネットがあることを確認します。1 つのサブネットは Gateway Load Balancer エンドポイント用で、もう 1 つはアプリケーションサーバー用です。
-
サービスプロバイダー VPC に、セキュリティアプライアンスインスタンスを含むアベイラビリティーゾーンごとに少なくとも 2 つのサブネットがあることを確認します。1 つのサブネットは Gateway Load Balancer 用で、もう 1 つはインスタンス用です。
-
サービスプロバイダー VPC 内の各セキュリティアプライアンスサブネットで、少なくとも 1 つのセキュリティアプライアンスインスタンスを起動します。これらのインスタンスのセキュリティグループは、ポート 6081 で UDP トラフィックを許可する必要があります。
ステップ 1: Gateway Load Balancer を作成し、ターゲットを登録する
次の手順に従って、ロードバランサー、リスナー、およびターゲットグループを作成し、セキュリティアプライアンスインスタンスをターゲットとして登録します。
Gateway Load Balancer を作成し、ターゲットを登録するには
-
create-load-balancer コマンドを使用して、
gateway
タイプのロードバランサーを作成します。セキュリティアプライアンスインスタンスを起動したアベイラビリティーゾーンごとに 1 つのサブネットを指定できます。aws elbv2 create-load-balancer --name
my-load-balancer
--type gateway --subnetsprovider-subnet-id
デフォルトでは、IPv4 アドレスのみがサポートされます。IPv4 と IPv6 の両方のアドレスをサポートするには、
--ip-address-type dualstack
オプションを追加します。出力には、次の例に示されている形式でロードバランサーの Amazon リソースネーム (ARN) が含まれます。
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:loadbalancer/gwy/my-load-balancer
/1234567890123456
-
create-target-group コマンドを使用して、インスタンスを起動したサービスプロバイダー VPC を指定し、ターゲットグループを作成します。
aws elbv2 create-target-group --name
my-targets
--protocol GENEVE --port 6081 --vpc-idprovider-vpc-id
出力には、次の形式でターゲットグループの ARN が含まれます。
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:targetgroup/my-targets
/0123456789012345
-
インスタンスをターゲットグループに登録するには、register-targets コマンドを使用します。
aws elbv2 register-targets --target-group-arn
targetgroup-arn
--targets Id=i-1234567890abcdef0
Id=i-0abcdef1234567890
-
create-listener コマンドを使用して、ターゲットグループにリクエストを転送するデフォルトルールを持つロードバランサーのリスナーを作成します。
aws elbv2 create-listener --load-balancer-arn
loadbalancer-arn
--default-actions Type=forward,TargetGroupArn=targetgroup-arn
出力には、次の形式のリスナーの ARN が含まれます。
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:listener/gwy/my-load-balancer
/1234567890123456
/abc1234567890123
-
(オプション) 次の describe-target-health コマンドを使用してターゲットグループの登録されたターゲットのヘルスステータスを確認できます。
aws elbv2 describe-target-health --target-group-arn
targetgroup-arn
ステップ 2: Gateway Load Balancer エンドポイントを作成する
次の手順に従って、Gateway Load Balancer エンドポイントを作成します。Gateway Load Balancer エンドポイントにはゾーンが適用されます。ゾーンごとに Gateway Load Balancer エンドポイントを 1 つ作成することをお勧めします。詳細については、「AWS PrivateLinkを通じて仮想アプライアンスにアクセスする」を参照してください。
Gateway Load Balancer エンドポイントを作成するには
-
create-vpc-endpoint-service-configuration コマンドを使用して、Gateway Load Balancer を使用するエンドポイントサービス設定を作成します。
aws ec2 create-vpc-endpoint-service-configuration --gateway-load-balancer-arns
loadbalancer-arn
--no-acceptance-requiredIPv4 と IPv6 の両方のアドレスをサポートするには、
--supported-ip-address-types ipv4 ipv6
オプションを追加します。出力には、サービス ID (例: vpce-svc-12345678901234567)、およびサービス名 (例: com.amazonaws.vpce.us-east-2.vpce-svc-12345678901234567) が含まれます。
-
modify-vpc-endpoint-service-permissions コマンドを使用して、サービスコンシューマーがサービスへのエンドポイントを作成できるようにします。サービスコンシューマーは、ユーザー、IAM ロール、または AWS アカウントです。次の の例では、指定された のアクセス許可を追加します AWS アカウント。
aws ec2 modify-vpc-endpoint-service-permissions --service-id
vpce-svc-12345678901234567
--add-allowed-principalsarn:aws:iam::123456789012:root
-
create-vpc-endpoint コマンドを使用して、サービス用の Gateway Load Balancer エンドポイントを作成します。
aws ec2 create-vpc-endpoint --vpc-endpoint-type GatewayLoadBalancer --service-name
com.amazonaws.vpce.us-east-2.vpce-svc-12345678901234567
--vpc-idconsumer-vpc-id
--subnet-idsconsumer-subnet-id
IPv4 と IPv6 の両方のアドレスをサポートするには、
--ip-address-type dualstack
オプションを追加します。出力には、Gateway Load Balancer エンドポイントの ID (例: vpce-01234567890abcdef) が含まれます。
ステップ 3: ルーティングを設定する
次のようにして、サービスコンシューマー VPC のルートテーブルを設定します。これにより、セキュリティアプライアンスは、アプリケーションサーバー宛てのインバウンドトラフィックに対してセキュリティ検査を実行できます。
ルーティングを設定するには
-
create-route コマンドを使用して、アプリケーションサーバー宛てのトラフィックを Gateway Load Balancer エンドポイントにルーティングするエントリをインターネットゲートウェイのルートテーブルに追加します。
aws ec2 create-route --route-table-id
gateway-rtb
--destination-cidr-blockSubnet 1 IPv4 CIDR
--vpc-endpoint-idvpce-01234567890abcdef
IPv6 をサポートするには、次のルートを追加します。
aws ec2 create-route --route-table-id
gateway-rtb
--destination-cidr-blockSubnet 1 IPv6 CIDR
--vpc-endpoint-idvpce-01234567890abcdef
-
create-route コマンドを使用して、アプリケーションサーバーから Gateway Load Balancer エンドポイントにすべてのトラフィックをルーティングするエントリを、アプリケーションサーバーを持つサブネットのルートテーブルに追加します。
aws ec2 create-route --route-table-id
application-rtb
--destination-cidr-block 0.0.0.0/0 --vpc-endpoint-idvpce-01234567890abcdef
IPv6 をサポートするには、次のルートを追加します。
aws ec2 create-route --route-table-id
application-rtb
--destination-cidr-block ::/0 --vpc-endpoint-idvpce-01234567890abcdef
-
create-route コマンドを使用して、アプリケーションサーバーを起点とするすべてのトラフィックをインターネットゲートウェイにルーティングするエントリを、Gateway Load Balancer エンドポイントを持つサブネットのルートテーブルに追加します。
aws ec2 create-route --route-table-id
endpoint-rtb
--destination-cidr-block 0.0.0.0/0 --gateway-idigw-01234567890abcdef
IPv6 をサポートするには、次のルートを追加します。
aws ec2 create-route --route-table-id
endpoint-rtb
--destination-cidr-block ::/0 --gateway-idigw-01234567890abcdef
-
各ゾーン内のアプリケーションサブネットのルートテーブルごとに繰り返します。