HTTP API のプライベート統合の使用 - Amazon API Gateway

HTTP API のプライベート統合の使用

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

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

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

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

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

デフォルトでは、プライベート統合トラフィックは HTTP プロトコルを使用します。HTTPS を使用するためにプライベート統合トラフィックが必要な場合は、tlsConfig を指定できます。

注記

プライベート統合では、API Gateway はバックエンドリソースへのリクエストに API エンドポイントのステージ部分を含めます。例えば、API の test ステージへのリクエストには、プライベート統合へのリクエストに test/route-path が含まれます。

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

プライベート統合を作成する前に、VPC リンクを作成する必要があります。VPC リンクの詳細については、「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 リンクの詳細については、「HTTP API の VPC リンクの使用」を参照してください。

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

注記

Amazon ECS を使用して AWS Cloud Map にエントリを入力する場合は、SRV レコードを使用するように Amazon ECS タスクを設定する必要があります。「A」レコードはサポートされていません。詳細については、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