この記事はSRA Advent Calendar 2025の1日目の記事です。
こんにちは! SRA関西事業部の佐々木です。
本記事はAWSのAPI Gateway、特にプライベートAPIを使用する時に疑問に思ったことを検証したのでその結果を共有したいと思います。
API Gateway x ノ x リョウキン
AWSの公式にはAPI Gatewayの料金について以下のような説明があります(一部抜粋)
Amazon API Gateway では、お客様の API が使用されている分のみお支払いいただきます。最低料金や前払いの義務はありません。HTTP API および REST API に関しては、受信した API コール数と、転送データ量に対してのみ料金が発生します。プライベート API のデータ転送に料金は発生しません。
これを読むとAPI Gatewayにかかる料金は
- APIコール数
- 転送データ量
に料金がかかることがわかります。
さらに プライベートAPIのデータ転送に料金は発生しません と書かれています。
「それじゃあ、データ転送料金のかからないプライベートにしよう!」と思えるかもしれませんが、そうはいきません。
さきほどのAWS公式は以下のように続きます。
ただし、AWS PrivateLink の料金は、API Gateway でプライベート API を使用するときに適用されます。
これはどういうことでしょうか?
API GatewayプライベートAPI x ノ x セイヤク
まず、API GatewayでプライベートAPI(REST API プライベート)を作ろうとすると以下のような注意書きに出くわします。

プライベート API には、API ゲートウェイの VPC エンドポイントからのみアクセスできます。
つまり、VPCエンドポイントがないとアクセスできないので、VPCエンドポイント経由でアクセスしてくださいということです。
ギモン x ト x ケンショウ
ここで疑問に思ったのは、プライベートAPIを作ったら勝手に必要なVPCエンドポイントが作られるのかな? と思いました。よくよく考えてみると、どのVPCからアクセスされるかなんてAPI Gatewayは知らないのでそんなはずはありませんでした。
しかし当初はVPCエンドポイントが作られるかどうか実際にプライベートAPIを作って検証してみました。当然VPCエンドポイントは作られなかったのですが、この状態であるVPCのLambdaからこのAPIをコールしてみましたが、つながりませんでした。(リソースポリシーでこのVPCからのアクセスは許可しています)
そして、このVPCにVPCエンドポイント(Private Link)を作成して再びLambdaからAPIをコールしてみました。すると今度はAPIを呼ぶことに成功しました。(なぜかVPCエンドポイント作成後しばらく時間が経ったら成功するようになりました)
チュウイ x ノ x シュウチ
そしてここで注意しないといけないことは、 VPCエンドポイントにはデータ転送の料金がかかる ということです。冒頭で
プライベート API のデータ転送に料金は発生しません
ということを述べましたが、API Gatewayとしての料金が発生しないだけでVPCエンドポイントには料金が加算されます。また、元々VPCエンドポイントを作っていた場合、知らないうちにそのVPCエンドポイントの料金が膨らんでいるということにもなりかねません。
API Gatewayのリクエストとレスポンスの容量が小さいのであればそれほど問題にはならないでしょうが、大容量のデータをやりとるするようなAPIの場合、気を付けた方がいいでしょう。
ジロン x ノ x ケツロン
AWSの料金システムは良くできています。穴をついて安く済ませるということは難しく、ある程度コストのことを考えたサービス構成の場合、似たような料金になりがちです。