Amazon API Gateway でプライベートAPIの呼び出しが簡単にできるようになった

はじめに

最近、API Gateway のコンソール変わったな~
なんかいい感じのアップデートがあったんだろうか...と思って調べてみたところ、タイトルのアップデートがありました。
Amazon API Gateway で Private API の呼び出しを簡素化
内容はプライベートDNSが無効でも下記のURLでプライベートAPIにアクセスが可能になったということらしいです。
https://{rest-api-id}-{vpce-id}.execute-api.{region}.amazonaws.com/{stage}
Amazon API Gateway
このアップデートは以前記事にした内容と関係してて気になったので確かめてみました。
rioner2525.hatenablog.com

動作確認準備

デフォルトのLambdaを用意

f:id:rioner2525:20191127135401j:plain
そういえばPython3.8が実装されてましたね...

VPC エンドポイントを用意

VPC エンドポイントは今回のアップデートの効果を確かめるためにプライベート DNS 名が無効のものを用意。
(有効だと今回のアップデートに関係なく普通にプライベートAPIを呼び出せます。)
f:id:rioner2525:20191127114807j:plain

プライベートAPIを用意

先ほど作成したデフォルトのLambdaを実行するだけのプライベートAPIを作成。
テストなのでリソースポリシーは全開けでセキュリティガバガバにしました。
f:id:rioner2525:20191127131710j:plain

動作確認

今回のVPCエンドポイントにアクセスできるEC2インスタンスから作成したプライベートAPIにアクセスしてみます。

普通にアクセスしてみる。

curl https://{rest-api-id}.execute-api.ap-northeast-1.amazonaws.com/{stage}/
DNS名が有効ならこれでアクセス可能ですが...
f:id:rioner2525:20191127133145j:plain
このままではアクセスできません。予定通り。

URLにVPCエンドポイントIDを付け足してアクセス

アップデートの内容通り、VPCエンドポイントIDを付け足してアクセスしてみます。
https://{rest-api-id}-{vpce-id}.execute-api.{region}.amazonaws.com/{stage}
f:id:rioner2525:20191127133734j:plain
アクセスできました!

おわりに

このアップデートによってプライベートDNSが無効のVPCエンドポイントでも簡単にプライベートAPIにアクセスすることが可能になりました。
自分もヘッダーに色々付けるのがめんどくさいなぁ...と思っていましたが結構そう思ってる企業様がいて、対応したって感じなんでしょうかね?

でも、このアップデートによりますますプライベートDNSは有効より無効の方がメリットがある気がしてきました。
ドキュメントでは有効が推奨ってなってましたが、このアップデートで変わってるんじゃなかろうか...?
f:id:rioner2525:20191127134650j:plain
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-private-apis.html
_(┐「ε:)_ズコー
このアップデートが入ってもまだプライベートDNSは有効が推奨なんですね...
まぁAWSさんが推奨って言ってるから~とか言ってよく読まずに障害起こしちゃうのは私だけでしょうから問題ないっす!
以上