API Gateway で HTTP API のプライベート統合を作成する - Amazon API Gateway

API Gateway で HTTP API のプライベート統合を作成する

プライベート統合を使用すると、Application Load Balancer や Amazon ECS コンテナベースのアプリケーションなど、VPC 内のプライベートリソースと API 統合を作成できます。

プライベート統合を使用して、VPC 外のクライアントがアクセスできるように VPC 内のリソースを公開できます。API Gateway がサポートする認証方法より 、API へのアクセスを制御できます。

プライベート統合を作成するには、まず VPC リンクを作成する必要があります。VPC リンクの詳細については、「API Gateway で HTTP API の VPC リンクを設定する」を参照してください。

VPC リンクを作成したら、Application Load Balancer、Network Load Balancer、または AWS Cloud Map サービスに登録されたリソースに接続するプライベート統合を設定できます。

プライベート統合を作成するには、すべてのリソースが同じ AWS アカウント (ロードバランサーまたは AWS Cloud Map サービス、VPC リンク、および HTTP API を含む) によって所有されている必要があります。

デフォルトでは、プライベート統合トラフィックは HTTP プロトコルを使用します。HTTPS を使用するためにプライベート統合トラフィックが必要な場合は、tlsConfig を指定できます。AWS Management Console を使用してこれを行うには、プライベート統合を作成するときに、[詳細設定] を選択し、安全なサーバー名を入力します。

注記

プライベート統合では、API Gateway はバックエンドリソースへのリクエストに API エンドポイントのステージ部分を含めます。例えば、API の test ステージへのリクエストには、プライベート統合へのリクエストに test/route-path が含まれます。バックエンドリソースへのリクエストからステージ名を削除するには、パラメータのマッピングを使用して、リクエストパスを $request.path にオーバーライドします。

Application Load Balancer または Network Load Balancer を使用したプライベート統合の作成

プライベート統合を作成する前に、VPC リンクを作成する必要があります。VPC リンクの詳細については、「API Gateway で HTTP API の VPC リンクを設定する」を参照してください。

Application Load Balancer または Network Load Balancer とのプライベート統合を作成するには、HTTP プロキシ統合を作成し、使用する VPC リンクを指定して、ロードバランサーのリスナー ARN を指定します。

VPC リンクを使用してロードバランサーに接続するプライベート統合を作成するには、次のコマンドを使用します。

aws apigatewayv2 create-integration --api-id api-id --integration-type HTTP_PROXY \ --integration-method GET --connection-type VPC_LINK \ --connection-id VPC-link-ID \ --integration-uri arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/0467ef3c8400ae65 --payload-format-version 1.0

AWS Cloud Map サービス検出を使用したプライベート統合の作成

プライベート統合を作成する前に、VPC リンクを作成する必要があります。VPC リンクの詳細については、「API Gateway で HTTP API の VPC リンクを設定する」を参照してください。

AWS Cloud Map との統合のために、API Gateway は DiscoverInstances を使用してリソースを識別します。クエリパラメータを使用して、特定のリソースをターゲットにすることができます。登録されたリソースの属性には、IP アドレスとポートを含める必要があります。API Gateway は、DiscoverInstances から返される正常なリソース間にリクエストを分散します。詳細については、AWS Cloud Map API リファレンスの「DiscoverInstances」を参照してください。

注記

Amazon ECS を使用して AWS Cloud Map にエントリを入力する場合は、Amazon ECS サービス検出で SRV レコードを使用するように Amazon ECS タスクを設定するか、Amazon ECS Service Connect を有効にする必要があります。詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「相互接続サービス」を参照してください。

AWS Cloud Map とのプライベート統合を作成するには、HTTP プロキシ統合を作成し、使用する VPC リンクを指定して、AWS Cloud Map サービスの ARN を指定します。

AWS Cloud Map サービス検出を使用してリソースを識別するプライベート統合を作成するには、次のコマンドを使用します。

aws apigatewayv2 create-integration --api-id api-id --integration-type HTTP_PROXY \ --integration-method GET --connection-type VPC_LINK \ --connection-id VPC-link-ID \ --integration-uri arn:aws:servicediscovery:us-east-2:123456789012:service/srv-id?stage=prod&deployment=green_deployment --payload-format-version 1.0