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を用意
そういえばPython3.8が実装されてましたね...
VPC エンドポイントを用意
VPC エンドポイントは今回のアップデートの効果を確かめるためにプライベート DNS 名が無効のものを用意。
(有効だと今回のアップデートに関係なく普通にプライベートAPIを呼び出せます。)
プライベートAPIを用意
先ほど作成したデフォルトのLambdaを実行するだけのプライベートAPIを作成。
テストなのでリソースポリシーは全開けでセキュリティガバガバにしました。
動作確認
今回のVPCエンドポイントにアクセスできるEC2インスタンスから作成したプライベートAPIにアクセスしてみます。
普通にアクセスしてみる。
curl https://{rest-api-id}.execute-api.ap-northeast-1.amazonaws.com/{stage}/
DNS名が有効ならこれでアクセス可能ですが...
このままではアクセスできません。予定通り。
URLにVPCエンドポイントIDを付け足してアクセス
アップデートの内容通り、VPCエンドポイントIDを付け足してアクセスしてみます。
https://{rest-api-id}-{vpce-id}.execute-api.{region}.amazonaws.com/{stage}
アクセスできました!
おわりに
このアップデートによってプライベートDNSが無効のVPCエンドポイントでも簡単にプライベートAPIにアクセスすることが可能になりました。
自分もヘッダーに色々付けるのがめんどくさいなぁ...と思っていましたが結構そう思ってる企業様がいて、対応したって感じなんでしょうかね?
でも、このアップデートによりますますプライベートDNSは有効より無効の方がメリットがある気がしてきました。
ドキュメントでは有効が推奨ってなってましたが、このアップデートで変わってるんじゃなかろうか...?
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-private-apis.html
_(┐「ε:)_ズコー
このアップデートが入ってもまだプライベートDNSは有効が推奨なんですね...
まぁAWSさんが推奨って言ってるから~とか言ってよく読まずに障害起こしちゃうのは私だけでしょうから問題ないっす!
以上