【レポート】リアルタイムにインターネットを計測する – CloudFrontチームのAWSサービス活用事例 #reinvent #CTD406
re:Invent 2017のセッション「CTD406 - Measuring the Internet in Real Time」を聴講したレポートです。
スピーカーはJorge Vasquez(Sr. Software Development Engineer, Amazon Web Services)です。
本セッションは、Amazon CloudFrontの開発チームが日々のトラフィックをAWSサービスを駆使して解析する事例を紹介します。
CFチームによるトラフィックの計測と管理
- なぜ計測が必要か
- ファイバーの光のスピード
- 帯域
- CloudFrontのユースケース
- パフォーマンス
- 静的コンテンツ、動的コンテンツのキャッシュ
- ニュースサイトとか
- 短いTTLによるキャッシュ
- エッジとのTCPハンドシェイクとキープアライブ
- AmazonのショッピングカートやSlackなどWeb APIのキャッシュとしても有効
- 可用性
- 多くのPOP、経路による分散構成
- DDoS耐性
- コンテンツの保持性。オリジンがダウンしてもキャッシュを保持してクライアントに返せる
- セキュリティ
- WAF(XSS、SQLiなど)
- Field Level EncryptionNEW!!
- コンプライアンス準拠
- リクエストのライフサイクル
- フィードバックループ
- RTTの計測
リアルタイムフィードバックなシステムのデザインパターン
以下のデザインパターンを基本として採用した。
- たくさんのエンドポイントからの情報をKinesis Streamで一箇所に集約
- StreamのコンシューマとしてEC2でKCL(Kinesis Client Library)を実行
- 集計結果はS3に保存
これを様々な用途に当てはめていく
- POPのヘルス状態の計測に適用こちらはCloudWatchメトリクスからアラームを設定してダッシュボードと状態監視
- POPのキャパシティ計算こちらはCloudWatch APIに投入したメトリクスを別のEC2から取得、集計結果をS3に格納するパターン
- デザインパターンとして他のデータにも適用している
- リンク数
- 負荷
- アーキテクチャ図
- デザインパターンとしては複数のフィードバックループを入れ子で回すこと、整形済みのデータを複数AWSリージョンに保存すること
- ルーターの輻輳制御
- デザインパターンのまとめ
所感
CloudFrontの内部でAWSサービスを駆使している、貴重なDog Foodingの事例が聞けました。リアルタイムなストリーム処理向けの標準的なAWSアーキテクチャに沿いつつCloudFrontの実際の運用に活かされている様子がよくわかりました。