こんにちは、tommyです。
今回はCloudFrontに関する内容となり、忘れないよう記事に残します。
背景
CloudFrontについて業務で触れたことがなかったことと、先日BlackBeltで基礎編が更新されていたこともあり、ハンズオンをして解像度を深めようと思い立ちました。
ハンズオンの前に
前述の通り、(作業時の)10日ほど前にBlackBeltにて基礎編が更新されていたこともあり、以下を視聴しました。
概要レベルであり、細かな部分は別のBlackBeltを参照する必要がありますが、ひとまず本内容のみ視聴しました。
◆動画
https://youtu.be/QNylm0CktHA?si=6Jg5uLD-wSrmMCK_
細かな特徴であったり、図などもあるので詳細は是非ともBlackBeltを参照していただきたいのですが、
ハンズオンの前に重要な用語や仕組みを簡単に整理をしておきたいと思います。
Content Delivery Network (CDN)
クライアントに地理的に近いエッジロケーションから、速く・効率的にコンテンツ配信を行うネットワークを提供するサービス。
インターネットは様々なネットワークを経由するので安定が保証されていないため、その一部を高速かつ安定しているNWで通信するといった仕組み。
エッジロケーション
世界中で分散して配置され、クライアントがCloudFrontへ接続する際の接続ポイント。
クライアントに最も近い場所からコンテンツが配信されるため、低レイテンシーを実現できる。
また、キャッシュサーバとしても機能する。
なお、Point of Presence(POP)とも呼ばれる。
リージョン別エッジキャッシュ (REC)
クライアントに近接して世界各地にデプロイされるCloudFrontロケーションであり、エッジロケーションとオリジン間に配置されるキャッシュ。
オリジン
オリジナルのコンテンツを保持するソース。
CloudFront のキャッシュにヒットしなかった時にオリジンへのアクセスが発生する。
また、オリジンは AWS リソースだけでなくオンプレミスサーバーも利用可能。
AWSの代表どころで言うとEC2やELB、S3等が該当する。
ビューワー
CloudFrontにアクセスするユーザー/クライアント/Webブラウザを指す。
ディストリビューション
コンテンツデリバリーの設定単位。
CloudFrontドメイン名もしくは代替ドメイン名毎に作成する。
ビヘイビア
CloudFrontの振る舞い設定であり、URLパスパターン毎に作成する。
私はALBでいうところのパスパターンのリスナールールみたいなものとざっくり認識しました。
Origin Shield
指定したリージョン別エッジキャッシュにアクセスを集約してオリジンへの負荷を更に軽減できる。
キャッシュヒット率の向上や、リクエスト数やデータ転送量削減に伴い、オリジンのコスト最適化が可能。
Origin Access Control (OAC)
CloudFrontディストリビューション経由でのみビューワーがAWSオリジンのコンテンツにアクセスできる仕組み。
IAM Service Principalを使用してオリジンと認証を行う。
認定試験によく出るでおなじみOACですね。
署名付き URL / 署名付き Cookie
プライベートコンテンツの配信やクライアントへの一時的なアクセス権限の付与が可能
CloudFront Functions
ビューワーに近い "エッジロケーション" でコードを実行し、より高速にレスポンスを返したり、オリジンへ転送前に前裁きをすることが可能なサービス。
Lambda@Edge
ビューワーに近い "リージョン別エッジキャッシュ" でコードを実行し、より高速にレスポンスを返したり、オリジンへ転送前に前裁きをすることが可能なサービス。
地理的(GEO) 制限
ディストリビューション全体に適用される地域指定によるアクセス制御機能であり、クライアントIPアドレスの地域情報を元に、エッジロケーションでアクセス判定する。
また、許可リストまたはブロックリストで指定可能。
なお、制限されたアクセスには403を応答する。
後続のハンズオンでも出てくるので後から気になって調べましたが、本機能は無料のようです。
便利ですね。
また、AWS WAFにも地理的一致ルールステートメントという機能がありますが、そちらとの違いや使い分けは以下記事を参考にさせていただきました。
https://iret.media/148031
カスタムエラーレスポンス
オリジンサーバからエラーを受信したときにレスポンスをカスタマイズできる機能。
4xx および5xx ステータスコードそれぞれに対して、エラーレスポンスおよびレスポンスステータスコードのカスタマイズが可能。
なお、カスタムエラーレスポンスのコンテンツにもキャッシュが効く。
ハンズオン
今回は以下のワークショップを実施しました。
ディストリビューションやビヘイビア、オリジンの作成・設定等から実施でき、初学者でも取っつき易い内容となっておりました。
その他にも、パフォーマンスの確認であったりOACや地理的制限などによるセキュリティ部分や、フェールオーバやカスタムエラーページといった信頼性、キャッシュコントロール、レポートやログ等のモニタリングといった広い範囲を、一通り触れることができるようになっています。
まとめ
今までは名前や概要レベルをなんとなく知っているレベルでしたが、BlackBeltでの基礎部分の学習に加え、なにより実際に操作したことにより、実施前よりかなり解像度は上がったと思います。
私と同じようにあまり触れたことがない方や、復習したい方にもお勧めできるハンズオンなので、ご興味がありましたら是非やってみてはいかがでしょうか。
それでは。