導入
コンテンツをユーザーに近い場所から配信できれば、速くなるだけでなくオリジンの負荷も減ります。この仕組みを担うのが CloudFront です。
説明
Amazon CloudFront は、AWSのCDN(コンテンツデリバリーネットワーク)です。世界中のエッジロケーションにコンテンツをキャッシュし、ユーザーに最も近い拠点から配信することで、レイテンシーを削減します。
- オリジン:配信元となるS3バケットやALBなど
- キャッシュ動作:パスパターンごとにキャッシュ時間(TTL)や転送するヘッダー・Cookieを設定できる
- OAC(Origin Access Control):S3をオリジンにする際、S3バケット自体を非公開のままにし、CloudFront経由のアクセスだけを許可する仕組み。S3を直接インターネットに公開せずに済むため、セキュリティ設計の定番
コンテンツへのアクセスを制限したい場合は、署名付きURL や 署名付きCookie を使います。有効期限付きのトークンを発行し、正規のリンクを持つユーザーだけがコンテンツを取得できるようにします(動画配信の限定公開、有料コンテンツなど)。署名付きURLは1つのファイル向け、署名付きCookieは複数ファイル(動画のセグメント群など)へのアクセス制御に向きます。
flowchart LR
User["世界中のユーザー"] --> Edge["CloudFront<br/>エッジロケーション"]
Edge -->|"キャッシュヒット"| User
Edge -->|"キャッシュミス時のみ"| Origin["オリジン (S3 / ALB)"]
Edge -.->|"OACで直接公開を防止"| Origin
具体例
動画教育サービスの配信設計で、CloudFrontの機能が組み合わさります。
- 無料の紹介動画・画像をグローバルに高速配信 → CloudFront。世界中のエッジにキャッシュし、遠い国のユーザーにも近い拠点から届ける。オリジン(S3)の負荷も下がる。
- オリジンのS3は直接公開したくない → OAC。S3バケットを非公開のままにし、「CloudFront経由のアクセスだけ許可」する。ユーザーがS3のURLを直叩きしても弾かれる。「S3を公開せず、CloudFrontの後ろに隠す」はセキュリティ設計の定番。
- 有料の講座動画は、購入者だけに見せたい → 署名付きURL/Cookie。有効期限付きトークンを発行し、正規リンクを持つ人だけが視聴できる。単一ファイルなら署名付きURL、動画のセグメント群など複数ファイルなら署名付きCookie。
「グローバル高速配信=CloudFront、S3を隠す=OAC、限定公開=署名付きURL/Cookie」。CloudFrontはS3だけでなくALB/EC2をオリジンにした動的コンテンツの高速化にも使えます。
読んでみよう
「S3を直接公開せず保護したい」→ OAC。「グローバルなユーザーへの配信を高速化したい」→ CloudFront。「限定公開のコンテンツへのアクセスを制御したい」→ 署名付きURL/Cookie。CloudFrontはS3の前段だけでなく、ALB・EC2をオリジンにした動的コンテンツの配信高速化にも使える点も押さえておきましょう。