2022/02/14
https://docs.aws.amazon.com/apprunner/latest/relnotes/release-2022-02-08-vpc.html
** ただ、昨日までは欠点があり、VPCをマネージドで管理してくれるので、VPCを使うサービス、例えはRDSなどに対してのアクセスができない/経路が無いという問題がありました。**
今日のアップデートでApp Runnerに対しカスタムVPCが設定できるようになったので、この問題が解消されたのです。
仕様としては、AWS App Runnerを使用してVPCからVPCを介してサービスのアウトバウンドトラフィックをルーティングできるようになりました。
主な利点の1つは、その為サービスがプライベートVPCでホストされている他のアプリケーションまたはAWSのサービスと通信できるようになったということです。
設定方法は、VPCをサービスに関連付けるだけでよく、VPCサブネットとセキュリティグループを指定すると、App RunnerがVPCへの必要な接続を自動的にプロビジョニングおよび管理してくれます。
こちらのやってみよう1の検証は、クラスメソッドさんの検証を参考に行っています。
検証としては、特定のセキュリティグループからアクセスできるEC2に対し、App RunnerからPingを送るという内容です。
下記のEC2のIPに対しpingを送ります。
ping -c 3 192.168.3.194
App Runner側は下記の画面でカスタムVPVの設定をすることができます。
今回、App Runnerで利用したdocker fileはこんな感じですね。
FROM node:14-alpine CMD ping -c 3 192.168.3.194
まずは、ローカルからEC2に対してping投げてみると、まあエラーになりますよね。
ちゃんとVPCリソース内のEC2に対してアクセスできてますね。
さてさて、やってみよう1の検証はあくまで、今回のアップデートの確認のためやったのですが、次はこのアップデートでApp Runnerでこういうのもできるんじゃないかというのを検証してみたというものです。
じゃあどうするのか
https://dev.classmethod.jp/articles/amazon-cloudfront-managed-prefix-list/
このアップデートは、何をしているのかというとCloudFrontを経由しないアクセスのブロックを簡単にできるようになったというものです。
今までは、CloudFrontでカスタムヘッダを付与して、それをALBやWebサーバで検証する方法をしないといけなかったのですが、このアップデートにより特定のVPCのセキュリティグループのインバウンドルールにCloudFrontのManaged Prefix Listsを設定するだけで解決しちゃうというものです。
設定は簡単で、App Runnerに設定したVPCのインバウンドルールにこの設定を入れることで、CloudFront以外からのアクセスを禁止できます。
Cloudfrontの設定ができれば、Wafを噛ませることができるので、全ての問題が解決という話です。
ただ、やってみたが、想定の動きにならない。。
VPCコネクタはApp Runnerからのアウトバウンドトラフィック用であり、インバウンドトラフィックには利用できな>い(イン>バウンドトラフィックは従来どおりパブリックドメイン名からの経路)