4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

re:Invent近辺のAWSアップデートを試してみる!Advent Calendar 2024

Day 1

CloudFrontのVPC Origin機能を試してみる!

Last updated at Posted at 2024-12-01

こんにちは、ふくちです。

当記事は、re:Invent近辺のAWSアップデートを試してみる! Advent Calendar 2024の1日目記事となっております!

アップデート概要

2024年11月21日、Amazon CloudFrontがVPCオリジンに対応したのと発表がありました!

これによって、CloudFront経由でのみアクセスできるプライベートサブネット内に、ALB, NLB, EC2を配置できるようになりました!

要するに、これまではこんな感じの構成にしていたのを↓
image.png

こんな感じにできるということですね!↓
image.png

これによるメリットは、大きく2つあると考えています。

  1. コスト削減
    →ALBやEC2がパブリックIPを持つ必要がなくなるので、お財布に優しくなります
  2. セキュリティ
    →パブリックIPを持たないので、よりセキュアな環境を保つことができる

これからのスタンダードな構成になりそうな機能なので、しっかり触っておくことにしました!

やってみた

実際に作るのは、先程の構成図と同じものです。
image.png

以下の新規ドキュメントを参考に、作業を進めます。

前提条件

VPC, ALB, EC2を作成し、アクティブステータスにしておきます。

また、注意点としては、

  • マルチアカウントには非対応(2024/12/01時点)なので、VPCとCloudFrontは同じリージョンに作成する必要がある
  • インターネットゲートウェイが必要(サブネットへのルーティングには使用しないが、VPCがインターネットからのトラフィックを受信するために必要)
  • プライベートサブネットにはIPv4アドレスが必要
  • VPCプライベートオリジンのセキュリティグループにおいて、CloudFrontマネージドプレフィックスリストを明示的に許可
    →どうやら、ALBのセキュリティグループにはCloudFrontが作成するPrivate Origin用のENIを設定すれば良いみたいです!

などが挙げられます。
インターネットゲートウェイなんかは、知っておかないと躓いてしまいそうなポイントなので要注意ですね。

VPC作成

VPC内にはプライベートサブネットのみ作成し、インターネットゲートウェイもアタッチだけしてみました。
image.png

EC2作成

ApatcheだけインストールしたEC2へアクセスします。CloudFront経由で下記にアクセスできたら成功です。
image.png

ALB作成

内部向けに作成します。
image.png

ALBにアタッチするセキュリティグループはこんな感じで。
image.png

CloudFrontの設定

画面左の一覧から、VPCオリジンを選択。
image.png

作成へと進み、オリジンARNには先ほど作成したALBを指定。
image.png

これでVPCオリジンの作成が完了しました!
image.png

続いて、ディストリビューションの作成を実施。
image.png

オリジン選択のところで、先程作成したVPCオリジンを選択しましょう!
※ALBを選択しないように注意!(一敗)
image.png

そして払い出されたディストリビューションドメイン名にアクセスします。
image.png

これで接続できる!…と思いきや504エラー。
image.png

ALBのリソースマップを確認するとリクエストがタイムアウトしているとのこと。
image.png

これは私が完全に勘違いしていたことなのですが、先ほど作成したセキュリティグループ(CloudFrontのプレフィックスリストを明示的に追加したもの)をEC2にアタッチしてしまっていたんですよね。。。

ALBからのアクセスを受け付ける必要があるのだから、それ用にセキュリティグループを変更してあげました。
image.png

これで無事アクセス成功しました!
image.png


※VPCオリジンにEC2を選択した場合の注意点
ディストリビューション作成時や、ディストリビューションに追加でオリジンを設定する場合、VPC origin domainのところに、EC2のプライベートIP DNS名を手動でコピペする必要があります。
image.png

image.png

ALBは自動で出てくれるのですが、EC2だけ「なに設定すればいいんだっけ?」とならないように注意が必要です。


試しに、パブリックサブネットにあるALBに対してもVPCオリジンが設定できるのか試してみました。
image.png

image.png

image.png

デプロイ出来ましたね…

ディストリビューションでももちろん設定可能。
image.png

image.png

これ、普通にALBをオリジンとするのとはなにか違うんでしょうかね…ちょっとそこまでは調べきれませんでした。

また時間があれば調べてみようと思います!

まとめ

VPCオリジン自体は簡単に作成できました!

ただ、それ以外の部分(EC2やらALBやら)で躓いてしまうことが多かったので、もっと環境触らないといけないなとなりました…

皆さんも是非試してみてください!

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?