プライベート API の呼び出し
プライベート API は VPC 内から VPC エンドポイントを使用してのみ呼び出すことができます。プライベート API には、特定の VPC や VPC エンドポイントに API の呼び出しを許可するリソースポリシーが必要です。
プライベート API は、以下の方法で呼び出すことができます。
-
Route53 エイリアスを使用して API を呼び出します。これは、VPC エンドポイントを API に関連付けている場合にのみ使用できます。詳細については、「(オプション) VPC エンドポイントとプライベート API の関連付けまたは関連付けの解除」を参照してください。
プライベート DNS を使用して API を呼び出します。これは、VPC のプライベート DNS を有効にしている場合にのみ使用できます。
AWS Direct Connect を使用して API を呼び出します。
エンドポイント固有のパブリック DNS ホスト名を使用して API を呼び出します。
DNS 名を使用してプライベート API を呼び出すには、API の DNS 名を特定する必要があります。次の手順は、DNS 名を検索する方法を示しています。
Route53 エイリアスを使用したプライベート API の呼び出し
VPC エンドポイントとプライベート API を関連付けたり、関連付けを解除したりできます。詳細については、「(オプション) VPC エンドポイントとプライベート API の関連付けまたは関連付けの解除」を参照してください。
VPC エンドポイントをプライベート API に関連付けると、次のベース URL を使用して API を呼び出すことができます。
https://
{rest-api-id}
-{vpce-id}
.execute-api.{region}
.amazonaws.com/{stage}
例えば、test
ステージで GET /pets
メソッドを設定し、REST API ID が 01234567ab
、VPC エンドポイント ID が vpce-01234567abcdef012
、リージョンが us-west-2
である場合は、次のように API を呼び出すことができます。
curl -v https://01234567ab-vpce-01234567abcdef012.execute-api.us-west-2.amazonaws.com/test/pets
プライベート DNS 名を使用してプライベート API を呼び出す
プライベート DNS を有効にしている場合は、次のプライベート DNS 名を使用してプライベート API にアクセスできます。
{restapi-id}
.execute-api.{region}
.amazonaws.com
API を呼び出すためのベース URL は次の形式です。
https://
{restapi-id}
.execute-api.{region}
.amazonaws.com/{stage}
例えば、test
ステージで GET /pets
メソッドをセットアップし、REST API ID が 01234567ab
、リージョンが us-west-2
である場合は、ブラウザに次の URL を入力してプライベート API を呼び出すことができます。
https://01234567ab.execute-api.us-west-2.amazonaws.com/test/pets
または、次の cURL コマンドを使用してプライベート API を呼び出すこともできます。
curl -X GET https://01234567ab.execute-api.us-west-2.amazonaws.com/test/pets
警告
VPC エンドポイントのプライベート DNS を有効にすると、パブリック API のデフォルトエンドポイントにアクセスできなくなります。詳細については、「API Gateway VPC エンドポイントからパブリック API に接続できないのはなぜですか?
AWS Direct Connect を使用してプライベート API を呼び出す
AWS Direct Connect を使用して、オンプレミスネットワークから Amazon VPC への専用のプライベート接続を確立し、この接続経由でパブリック DNS 名を使用してプライベート API エンドポイントにアクセスできます。
プライベート DNS 名を使用すると、Amazon Route 53 Resolver インバウンドエンドポイントを設定してリモートネットワークからプライベート DNS のすべての DNS クエリを転送することによって、オンプレミスネットワークからプライベート API にアクセスすることもできます。詳細については、Amazon Route 53 デベロッパーガイドの「VPC へのインバウンド DNS クエリの転送」を参照してください。
エンドポイント固有のパブリック DNS ホスト名を使用してプライベート API を呼び出す
エンドポイント固有のパブリック DNS ホスト名を使用してたプライベート API にアクセスできます。これらは、プライベート API 用の VPC エンドポイント ID または API ID を含むパブリック DNS ホスト名です。
生成されたベース URL は次の形式になります。
https://
{public-dns-hostname}
.execute-api.{region}
.vpce.amazonaws.com/{stage}
例えば、test
ステージで GET /pets
メソッドを設定し、REST API ID が abc1234
、パブリック DNS ホスト名が vpce-def-01234567
、リージョンが us-west-2
である場合、cURL コマンドの Host
ヘッダーで VPCe ID を使用してプライベート API を呼び出すことができます。
curl -v https://vpce-def-01234567.execute-api.us-west-2.vpce.amazonaws.com/test/pets -H 'Host: abc1234.execute-api.us-west-2.amazonaws.com'
または、cURL コマンドで x-apigw-api-id
ヘッダーを次の形式で使用し、API ID を経由してプライベート API を呼び出すことができます。
curl -v https://
{public-dns-hostname}
.execute-api.{region}
.vpce.amazonaws.com/{stage}
-H 'x-apigw-api-id:{api-id}
'