CloudFrontのVPC Origin機能の裏側

# 背景
### アップデート
2024/11/20、CloudFrontのVPC Origin機能が発表されました。
CloudFrontのオリジンをプライベートサブネットに配置できるようになりました。
従来のパブリックサブネットにオリジンを配置する構成と比較すると、セキュリティ対策が容易になります。

https://aws.amazon.com/jp/blogs/news/introducing-amazon-cloudfront-vpc-origins-enhanced-security-and-streamlined-operations-for-your-applications/#:~:text=CloudFront%20VPC,%E3%82%AA%E3%83%AA%E3%82%B8%E3%83%B3%E3%81%AF%E3%80%81CloudFront%20%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%8C%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88%E3%82%B5%E3%83%96%E3%83%8D%E3%83%83%E3%83%88%E5%86%85%E3%81%A7%E3%83%9B%E3%82%B9%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%8B%E3%82%89%E7%9B%B4%E6%8E%A5%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%82%92%E6%8F%90%E4%BE%9B%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%80%81%E7%B5%84%E7%B9%94%E3%81%8C%E5%AE%89%E5%85%A8%E3%81%A7%E9%AB%98%E6%80%A7%E8%83%BD%E3%81%AA%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E9%85%8D%E4%BF%A1%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E6%96%B0%E3%81%97%E3%81%84%E6%96%B9%E6%B3%95%E3%82%92%E6%8F%90%E4%BE%9B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%E3%81%93%E3%82%8C%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%AE%89%E5%85%A8%E3%81%AB%E4%BF%9D%E3%81%A1%E3%81%AA%E3%81%8C%E3%82%89%E3%80%81%E5%85%AC%E9%96%8B%E3%82%AA%E3%83%AA%E3%82%B8%E3%83%B3%E3%82%92%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B%E8%A4%87%E9%9B%91%E3%81%95%E3%81%A8%E3%82%B3%E3%82%B9%E3%83%88%E3%81%8C%E8%BB%BD%E6%B8%9B%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82

### re:Invent参加で気になったこと
12/2~12/6にかけてre:Inventに参加してきました。
EXPOというブース型で企業展示やAWS展示が行われている大きな会場があります。
そこのAWSのネットワークブースでこのようなスライドを目にしました。

![409E9500-8397-4291-BDB3-60D297707C79.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3933595/34b03e86-1be7-c316-2463-d1ad7ae6f78a.jpeg)

ここで気になるのはVPC to VPC NATと書いてあるコンポーネントです。

# CloudFrontのVPC Origin機能の裏側

### 聞いてみた
ということで、そのブースに立っていたAWSの担当者の方に聞いてみました。
（※一部脚色しています）

私：「VPC to VPC NATとは何？新しいサービスなの？」
担：「新しいサービスではないよ。あれは内部のネットワークを示している。
　　　VPC Lambdaと同じ構成だよ。」

どういうことか。

話の流れの中で消されてしまって写真を撮れていませんが、
下記のような図をホワイトボードに描いて話をしました。

![lambda.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3933595/0f7bf93d-5c04-1b17-e52a-eb3084a85ee0.png)


VPC Lambdaに関してまとめると
- VPC LambdaはLambdaの計算リソースの実体はAWSの管理しているVPCにある
- Lambdaの実体と利用者のVPCのENIとが通信することで、Lambdaが利用者のVPC上で動いているように見えている
- その際のAWS管理VPCと利用者VPCとのネットワークのことをVPC to VPC NATと書いている

※実際にAWS管理VPCなるものが存在するかは不明ですが、AWSが管理しているリソースの海ととらえています。

今回のCloudFrontに当てはめると確かにスライドのような図になります。

![CloudFront.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3933595/567cc31a-868b-22e4-ae4c-5c1518a60f80.png)



### 結論

以上を踏まえると、CloudFrontのVPC Origin機能はVPC Lambdaのネットワークの仕組みをCloudFrontにも応用したことで可能になったと考えられそうです。

![CloudFront_all.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3933595/8740203e-009a-0735-471a-57da1710b2e2.png)
※図ではALBやELBは省略しました。




# 追記
### 参考
後で少し調べたところ、AWSさんのLambdaの記事にもVPC to VPC NATという記載がありました。

https://aws.amazon.com/jp/blogs/news/announcing-improved-vpc-networking-for-aws-lambda-functions/