AWS入門者がCloudFrontのウェビナーを受けてみた!

Pocket

IT未経験、前職はトラック運転手として日々配達をしていたDreamです。

業界未経験からナレコムに入社し1か月が経ち、わかる用語も増えてきました。
前回に引き続き、AWSのオンラインセミナーでCloudFrontについて勉強した際のメモをまとめていきます!

はじめに

今回受講したウェビナーはCloudFrontです。
ウェビナーをみていると普段利用しているWebサイトなどにもこういったサービスが使われており、ユーザの利便性が高まっているのだなと改めて実感しています。

ウェビナー受講メモ

自分が受講したウェビナーは以下になります。

https://connect.awswebcasts.com/p4ddxz3dqi2/※Flashの導入が必要になります。

■CDN(Contents Delivery Network)とは
・エッジのキャパシティを活用して効率的かつ高速にコンテンツ配信が可能なサービス
・ユーザに最も近いエッジサーバへ誘導し配信を高速化
・オリジン(オリジナルサーバ)に負荷をかけずに効率的に配信

■CloudFrontの特徴
・世界102か所にエッジサーバがある(ウェビナーでは84か所でしたが2018/2/9時点では増えてました!)
・簡単にサイトの高速化と予想以上のアクセスにも対応できる
・動的コンテンツへの対応も可能
・高いセキュリティ機能
・レポート機能でアクセス傾向分析も可能
・完全従量課金制(スポット利用も可能)

■エッジロケーション
・5大陸50都市を含むグローバルな拠点
・エッジロケーションとAWSリージョン間は冗長化されていて高速な通信を実現している

■リージョナルエッジキャッシュ
・オリジンサーバとエッジロケーションの間にリージョナルエッジキャッシュをおくことで効率よくオリジンサーバを利用できる
・オリジンサーバのレスポンス向上と負荷軽減


■CloudFront Distribution
①Distribution
・ドメインごとに割り当てられるCloudFrontの設定
・WebもしくはRTMP Distributionを選択可能
・Distributionあたりの使用量が最大40Gbpsもしくは100000RPSを超えるような場合は緩和申請が必要
・HTTP/1.0、HTTP/1.1、HTTP/2に対応している
・IPv6にも対応

②Web Distribution
・HTTP、HTTPSに対応している
・オリジンへのアクセスはインターネット経由であることが必要になっている

■エッジでのGzip圧縮機能
・CloudFrontエッジでコンテンツをGzip圧縮することでより高速にコンテンツを配信できる
・Gzip圧縮をサポートしていないS3などで使用するとよい

■キャッシュコントロール
・キャッシュヒット率を向上させることがCDN導入におけるポイント
・フォワードオプション機能による動的ページの配信が可能
・単一ファイルサイズのキャッシングは最大20GBまで
・URLおよび有効かしたフォワードオプション機能のパラメータ値の完全一致でキャッシュが再利用される

■キャッシュコントロールヘッダー
・オブジェクトキャッシングによってキャッシュ時間のコントロールが可能になっている
・オリジン側のほうにHTTPキャッシュコントロール

■キャッシュの無効化
・コンテンツ内の無効化のパス指定が可能
・ワルドカードを使用した無効化パスの指定が可能
(※無効化にかかる時間は最大10~15分かかる)

■ダイナミックコンテンツ機能
・オリジンサーバに対してヘッダー、Cookie、クエリ文字列パラメータ値情報をフォワードすることで動的ページの配信にも対応している
・URLパスやWhitelistを利用して必要最低限のパラメータのみをフォワードすることでキャッシュを有効活用することが大事
・キャッシュを使用しないコンテンツでもオリジンとの通信の最適化により配信の高速化を実現している

■ダイナミックキャッシング
・URLパスを活用することで複数のマルチオリジンおよびキャッシュコントロールの個別設定が可能

■カスタムエラーページ
・4××系はCloudFront側ですべてをハンドリングしていない上クライアント要求のエラーのため
オリジン側で対処する
・5××系はオリジン側のエラーのためCloudFront側で対処

■カスタムオリジンのタイムアウト
①オリジンの読み取りのタイムアウト
 ・CloudFrontがオリジンからの応答を待つ時間を指定
(4~60秒の範囲で設定可能)
②キープアライブのタイムアウト
 ・接続を閉じる前にCloudFrontがオリジンサーバとの接続を維持する最大時間を指定
(1~60秒の範囲で設定可能)

■セキュリティ
・HTTPS対応
・SSL署名
→CloudFront.netのドメインのSSL証明書は標準で利用可能になっている
→独自SSL証明書、SNI SSL証明書もサポートしている
→専用IPアドレスSSL証明書は申請が必要(※別途課金発生)
・オリジン暗号化通信
→CloudFrontエッジとオリジン間の通信方式を制御
・オリジンカスタムヘッダー
→オリジンサーバへの通信でカスタムHTTPヘッダーの追加および上書きが可能
・GEOリストリクション
→地域を指定してアクセスを制限できる(指定された地域以外からのアクセスには403を応答)
・署名付きURL/Cookie
→プライベートコンテンツの配信に利用。署名のないアクセスをブロックできる
・AWS WAF連携
→WAFで定義したWeb ACLをCloudFrontDistributionに適用できる
・AWSShieldによるDDoS攻撃対策
→Amazonのノウハウを詰め込んだDDoS攻撃を緩和するサービス(デフォルトで有効になっている)

■レポート&ロギング機能
・CloudFront Reports & Analytics
①CloudFrontの利用状況における傾向分析として利用
・直近60日間のグラフが参照可能
・1時間単位もしくは日単位でのグラフ表示
・グラフへの反映までには3時間程度かかる
・CSVへのエクスポートも可能
・フィルタリング

②Monitoring and Alarmingはアクセス状況のリアルタイム監視として利用
・数分の遅延で利用状況を把握できる
・Cloudwatchのアラート機能を利用し、突発的なアクセスやエラーレートの上昇の検知/通知が可能

・Cache Statistics(キャッシュの利用状況)
・Monitoring and Alarming(リアルタイムモニタリングと通知)
・Popular Objects(人気コンテンツの統計情報)
・Top Referrers(リファラーの統計情報)
・Usage(リクエスト数およびデータ転送量)
・Viewers(クライアントデバイスの統計情報)

■CloudFront アクセスログ
・任意のS3バケットに出力可能
・赤生セスログの出力はタイムラグがある

■Cloudwatch Alarmの活用
・Requestメトリックス
・上限値アラーム設定による突発的なアクセス検知
・下限値アラーム設定によるアクセス障害検知
・TotalErrorRateメトリックス
・上限値アラーム設定によるオリジンエラー障害検知

■Amazon S3オリジン自動キャッシュの無効化
①Lambdaを活用した自動キャッシュの無効化
 ・S3への最新コンテンツのアップロードに連動してCloudFrontから対象コンテンツの無効化を自動発行
②対象コンテンツの無効化を自動発行
 ・S3のイベントおよびLambdaを利用しCloudFrontの無効化APIをよびだす

おわりに

今回はCloudFrontについて本記事を作成しました。
個人的に一番驚いた点はやはり、規模の大きさでしょうか。リージョナルエッジキャッシュ、ロケーションエッジの拠点数はすごいですよね!

本記事が自分のようにこれからAWSの勉強を開始される方の参考になれば何よりです。
次回もお楽しみに!