18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[アップデート]CloudFront VPC origins とは

Last updated at Posted at 2024-11-21

こんにちは。
AWS re:Invent 2024 には行けない勢なのですが、予選落ち?のアップデート機能がぞくぞく発表されています。

その中から、CloudFront VPC origins について確認してみました。

CloudFrontを経由して、プライベートサブネット内のALB、NLB、EC2などのリソース(オリジン)からコンテンツ配信が可能となりました。

これまでCloudFrontを利用する場合は、パブリックサブネットにリソース(オリジン)を配置する必要がありましたが、CloudFront VPC origins を利用することで、最小限の作業で下記が実現できます。

・パブリックIP、パブリックサブネット不要で、プライベートサブネットからインターネットにコンテンツが配信できる
・プライベートサブネット内のリソース(オリジン)へのアクセスは、CloudFront経由のみに制限できる

これまでの構成

まず、これまでの構成を確認してみます。
CloudFrontからVPCへのアクセスは、IGWを経由して、パブリックサブネットのリソースを経由する必要がありました。パブリックサブネットですので、IGWへのルーティングも必要です。

image.png

CloudFront VPC origins を使うとどうなるのか

VPC originsを作成してみました。作成手順は下記をご確認ください。

いきなり結論

・VPC originsを作成すると、CloudFrontマネージドのENIがオリジンのプライベートサブネットに作成される
・ENIにアタッチされる、CloudFrontマネージドのSecurityGroupも合わせて作成される

image.png

CloudFront VPC origins の構成

CloudFrontとオリジンは、このCloudFrontが作成したプライベートサブネット内のENIを経由して通信する経路となります。
プライベートサブネットには、このENIが利用するため、少なくとも1つの使用可能なIPアドレスが必要です。プライベートIPとなるため、追加コストはかかりません。
なお、パブリックサブネットは不要となります。

image.png

VPCにインターネットゲートウェイ(IGW)は必要

プライベートサブネットから直接インターネットに通信することはありませんが、VPCにIGWが不要になるわけではありません。
VPCがインターネットからトラフィックを受信できるようにするため、IGWは必要となります。
なお、IGWはプライベートサブネット内のリソース(オリジン)へのトラフィックのルーティングには使用されないため、IGWへのルーティングを設定する必要はありません。

オリジンとなるALBのSecurityGroupのインバウンドルールでは、CloudFrontマネージドのプレフィックスリストを設定するか、ENIにアタッチされたCloudFrontマネージドのSecurityGroupを設定する必要があります。後者が、より制限されているベストプラクティスとなるでしょう。

最後に

CloudFront VPC Origins を利用することで、パブリックサブネットを作成することなく、CloudFrontを経由したインターネットへのプライベートサブネットからのコンテンツ提供が可能となりました。

本記事の執筆時点では、CloudFrontとオリジンは同一アカウントである必要がありますが、近い将来アカウントを跨いだ利用も可能となるようです。

他のアップデートも期待して待ちましょう!

18
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?