AWS の中では比較的歴史も古く2008年からある CDN サービスの CloudFront です。
セッション
Amazon CloudFront
講師:アマゾン ウェブ サービス ジャパン、シニアエバンジェリスト 亀田氏
エッジサービス
- CloudFront はエッジロケーションから提供されるサービス
- それ以外にも Route53, GlobalAccelerator, WAF, Shield, L@E など
- インターネット間のルーティング(利用区間)をなるべく短くする
- AWS global network を長めにしてより安定感をだす
CloudFront
- ユーザーに近いエッジロケーションで配信を高速化
- エッジサーバーでキャッシングを行いオリジンの負荷をオフロード
- キャッシュは必須じゃないが基本はキャッシュして高速化する
- 用語集
リージョン別エッジキャッシュ(REC)
CloudFront 設定
- Distribution
- Distribution 関連
- Custom Error Responses : 500 を 200 にとか
- Restrictions : 特定国のIPを弾く
- Invalidation : キャッシュ削除
- WAF 連携
- Origin
- Custom origin
- S3
- Origin Group
- Behavior
- Cache Policy, Origin Request Policy
- Realtime Log config, : Kineesis Data Streams 経由で取得
- Key groups
レポート
- マネージメントコンソール
- CloudWatch (数分ディレイ)
- S3
- Realtime Log (New! )
- Kinesis Data Stremas で1分以内のログ処理が可能
Origin Shield
- リージョナルエッジキャッシュが多段化されるイメージ
- オリジンの付加をより下げることができる
カスタムオリジンのタイムアウト
- デフォルトは30秒
- 4-60秒で設定可能
- ブラウザは60秒がデフォルトなのでそれより短い
オリジンカスタムヘッダー
- Shared-Secret 利用で、CF からのアクセスと判断など
- S3 へのアクセスを制限する場合は OAI を利用する
- CF を利用することで脆弱性対策(直接オリジンに攻撃させない)にもなる
Origin Group によるオリジンフェイルオーバー
- オリジンが500を返したときにフェイルオーバーさせる
Behavior : キャッシュコントロール
Behavior, Cache Policy : エッジでの Gzip, Brotli 圧縮
- エッジで圧縮して、ブラウザで復元
- ブラウザでの復元のオーバーヘッドより通信のコストのほうが大きいので効果あり
Lambda@Edge
- バージニアリージョンで作成
- 数秒で使えるようになるが各リージョンへの伝搬はもう少し時間がかかる
- キャッシュされるエッジ側(Regional edge caches)で実行される
CloudFront Functions
- (L@Eより)超軽量処理向け
- エッジサーバー(Edge locations)で処理される
所感
CloudFront はよく使うので知っている機能は多いかなと思いながら聞いてましたが、「Egional edge caches」というのは把握してませんでした。
2016年の re:Invent で発表された機能です。
いつものクラスメソッドさんブログ記事の解説がわかりやすく解説しております。
一言で言うと「エッジロケーションとオリジンの間にもう一段キャッシュサーバ郡を組み込んだもの」と理解してよいと思います。
知っているつもりでも、新機能(といっても4年以上たちます)が追いきれてなくて、新たな勉強になって助かりました。
それ以外にも Amazon のエラー画像の犬の写真のエピソードも聞けました。
アメリカのオフィスは犬を連れていけて、社員証を発行されるのでその写真を利用しているとのこと。
プライムセール中なので、比較的エラーには遭遇しやすい時期ですね。