こんにちは。
AWS re:Invent 2024 には行けない勢なのですが、予選落ち?のアップデート機能がぞくぞく発表されています。
その中から、CloudFront VPC origins について確認してみました。
CloudFrontを経由して、プライベートサブネット内のALB、NLB、EC2などのリソース(オリジン)からコンテンツ配信が可能となりました。
これまでCloudFrontを利用する場合は、パブリックサブネットにリソース(オリジン)を配置する必要がありましたが、CloudFront VPC origins を利用することで、最小限の作業で下記が実現できます。
・パブリックIP、パブリックサブネット不要で、プライベートサブネットからインターネットにコンテンツが配信できる
・プライベートサブネット内のリソース(オリジン)へのアクセスは、CloudFront経由のみに制限できる
これまでの構成
まず、これまでの構成を確認してみます。
CloudFrontからVPCへのアクセスは、IGWを経由して、パブリックサブネットのリソースを経由する必要がありました。パブリックサブネットですので、IGWへのルーティングも必要です。
CloudFront VPC origins を使うとどうなるのか
VPC originsを作成してみました。作成手順は下記をご確認ください。
いきなり結論
・VPC originsを作成すると、CloudFrontマネージドのENIがオリジンのプライベートサブネットに作成される
・ENIにアタッチされる、CloudFrontマネージドのSecurityGroupも合わせて作成される
CloudFront VPC origins の構成
CloudFrontとオリジンは、このCloudFrontが作成したプライベートサブネット内のENIを経由して通信する経路となります。
プライベートサブネットには、このENIが利用するため、少なくとも1つの使用可能なIPアドレスが必要です。プライベートIPとなるため、追加コストはかかりません。
なお、パブリックサブネットは不要となります。
VPCにインターネットゲートウェイ(IGW)は必要
プライベートサブネットから直接インターネットに通信することはありませんが、VPCにIGWが不要になるわけではありません。
VPCがインターネットからトラフィックを受信できるようにするため、IGWは必要となります。
なお、IGWはプライベートサブネット内のリソース(オリジン)へのトラフィックのルーティングには使用されないため、IGWへのルーティングを設定する必要はありません。
オリジンとなるALBのSecurityGroupのインバウンドルールでは、CloudFrontマネージドのプレフィックスリストを設定するか、ENIにアタッチされたCloudFrontマネージドのSecurityGroupを設定する必要があります。後者が、より制限されているベストプラクティスとなるでしょう。
最後に
CloudFront VPC Origins を利用することで、パブリックサブネットを作成することなく、CloudFrontを経由したインターネットへのプライベートサブネットからのコンテンツ提供が可能となりました。
本記事の執筆時点では、CloudFrontとオリジンは同一アカウントである必要がありますが、近い将来アカウントを跨いだ利用も可能となるようです。
他のアップデートも期待して待ちましょう!