Akamai Diversity

Akamai Japan ブログ

DATASTREAM - リアルタイムロギングの実社会における利点

近年CDNの領域でも、システム全体の安定運用のためにリアルタイムなログの収集および分析が重要になっています。
そこで今回はAkamaiのリアルタイムロギングソリューションであるData Streamとその活用方法についてご紹介いたします。
※ この記事は2019.3.4に執筆されたThe Akamai Blogの記事を翻訳した内容を元に作成しています。

datastream-thumb-500xauto-8633.png
2008年の夏季オリンピック北京大会 - 私はマイケル・フェルプスが100mのバタフライで7回目の金メダルを獲得するために壁に触れるのを見た際の緊張を覚えています。それは50.58の記録的なタイムでした、しかし、ここでの勝ち負けを分けたのはわずか100分の1秒だったため、誰もが爪を噛んではらはらしたものです。

既にこれはスポーツだけには当てはまりません。今日のデジタルビジネスでは、適切なことを適切なタイミングで知ることによって勝敗が決しています。それは数秒の出来事でもあります。

黎明期の1年に1,2回ではなく、1日に複数回コードをプッシュするハイスループットの開発体制へと進化していることからも、リアルタイムのログデータにプログラムでアクセスし、高速で合理的な開発および運用ワークフローを実現することが最も重要になります。

企業はネットワークの「境界」で何が起こっているのかをリアルタイムに把握し、それらの情報を自社サイト全体の総合的なシステムヘルスモニタリングポータルビューにまとめて、スタックの他の層からの統合的なログフィードと共に提供する必要があります。このような可視性と制御は、私たちがコンテンツやアプリケーション・ロジックをオリジンサーバからエッジへと遠ざけていくにつれて、ますます不可欠となっています。

次のセクションでは、組織がリアルタイムロギングを実装する際の3つの手法を取り上げます。

リアルタイムの全体的なサイトヘルスビューとして

収益だけでなくブランドの観点からもダウンタイムによる影響が大きい場合、組織は常時運用上の健全性を監視するためのシステムとなるツールに投資します。

HTTPレイヤーでのエンドツーエンドの可視性のために、多くの組織はサーバー側のアプリケーション・パフォーマンス監視ツール、ブラウザ側のリアルユーザー・モニタリングと顧客分析に加えて、CDNによるミドルマイルの健全性と有効性を確認するためのリアルタイムなログに投資します。

これらのツールは、組織が次のような質問に答えるのに役立ちます。
エンドユーザーのブラウザアクティビティに対して、バックエンドシステムがどのように応答したか?
オリジン、エッジ、エンドユーザー間の平均遅延時間は?エッジのキャッシュから提供されるリクエスト数と配信量、およびオリジンへの転送リクエスト数
何がオフロード設定のチューニングやキャッシュ利用率の最適化対象となるか?

これらのデータストリームは、SumologicやDatadogなどのロギングツール、またはGrafanaやGoogle BigQueryなどのオープンソースツールにストリーミングすることで、カスタマイズされたダッシュボードに変換することができます。

ダッシュボードは、変更の展開直後、または予期される季節的なトラフィックの急増中に、トラフィックを把握し、サイト全体の状態とパフォーマンスの全体的な変化を把握するのに役立ちます。これらは障害が予測される状況であり、あなたは即時の改善に向けてリアルタイムな可視性と制御を必要とします。

ここに引用するべきとても適切なエピソードがあります。あるコンテンツ発行者がリアルタイム・ログによって問題の証拠に素早くたどり着いた話です。ほとんどのコンテンツ発行者は通常、数時間ごとに読者へ新しいコンテンツをプッシュします。更新の一環として、エッジキャッシュを頻繁にパージする必要があります。Akamai CLI for Purgeを利用して、URLによるコンテンツのパージを簡単かつインテリジェントに自動化することができます。 理想的なケースでは、パージが完了し、エッジキャッシュに新しいコンテンツが追加され、パフォーマンスメトリックは数分以内に安定します。しかしあるケースでは、DataStreamによるリアルタイム・ログストリームが長期間にわたって高いCache Miss率(Cache Miss=キャッシュにヒットしなかった)を示し続けました。運用チームはすぐにパージログを調べ、すぐに発見されなかった場合に重大なダウンストリームの問題を引き起こすであろうマイナーな構文エラーを見つけるために行動を起こしました。

 

プロアクティブなアラートシステムとして

要求/応答サイクルごとにログをストリーミング、保存、および処理することは、高コストになることは言うまでもありませんが、膨大になる可能性があります。すべてがうまく機能している間は、ログにお金と時間を投資することにも意味はありません。意味のあるメトリックで集計することに大きなメリットがあります。

多くの組織は、集約されたメトリクスのために自動APIによるプッシュをセットし、それらをSIEMまたはログ分析エンジンのいずれかに渡します。SumologicまたはDatadogは、HTTPエラーコードの数が定義されたしきい値を超えた場合などに、リアルタイムで異常アラートを発砲します。運用担当者は情報が知らされるのを待ち、即座に対処することができます。

当社のあるお客様では、変更の展開によって内部リンクが切断され、エンドユーザーや検索エンジンのクローラーに影響を及ぼしました。404エラーの数が急増し、2xxのリクエストが減少しました。この早期アラートシステムにより、彼らは直ちにアラートに応じて対処することができました。

アラートがあると、開発者は生ログを取得して原因を特定し、異常が発生する前または発生するまでの間のスタックの他のレイヤのデータと関連付けることができます。より高度なユースケースにはしきい値超過アラートだけでなく、異常スコアリングパターン検出も含まれ、過去の期間と比較して異常なパターンのエラーを見つけることができます。

生ログを自分自身でストリーミング、保存、集約する必要があるお客様の場合は、Push APIを使用することでサーバがデータを永久にポーリングする必要がない、低コストでスケーラブルなサーバレスアーキテクチャで運用できます。生ログのストリームを処理パイプラインにプッシュするDataStreamによってログの収集は自動的かつ定期的に実行されます。またDataStreamはログフィールドをカスタマイズし、個別にストリームをON/OFFするといった必要な機能を備えています。

プッシュ型とプル型のアーキテクチャを選択可能で、ログの送信元でログをカスタマイズおよび集約することができ、ローカルに保存する必要なしに生ログ(過去24時間まで)にアクセスできるという柔軟性は、リアルタイムロギングAPIを見渡してもあまり見当たらない素晴らしい特徴です。

 

チーム間での仕事を助けるために

大規模な組織では、断片化された開発チームがコードを構築し、それらをつなぎ合わせる必要があるケースがよくあります。多くの場合、開発チームは運用チームが実施している作業と同じようにシステム全体の運用の可視性を持っていません。ゴールは、運用チームと開発チーム双方が、特定のURLパターンまたはUser Agentによって、彼らによって開発されている個々の部分がより大きなエコシステムでエラー率(4xxおよび5xx)などのメトリクスに変換される様子を同じように見えるようにすることです。コードの所有権までさかのぼるこの単一の視点は、DevOpsの機敏さを加速させます。

User Analyticsエンジンは、有用な修飾子を付けることで、生のログ・ストリームに対して詳細な集計を行うことを可能にします。URL Pattern IDまたはUser Agentなどの修飾子は、開発チーム内のそれぞれのコード所有者にパイプで転送され、適切な担当者に意味のあるアラートを作成できるように、ページグループ(製品ページ、検索ページ、カテゴリページなど)でログを分類するのに役立ちます。

結局のところ、すべてのデジタルビジネスは、差別化されたアプリやサービスをより迅速に構築してユーザーに提供するという共通かつ高度な課題を抱えています。とても簡単に聞こえますか?そうではありません。このゴールを実現するシステムには、いくつかの可動部分があります。ITチームは、配信経路にクラウドベースのソリューションを追加することで可視性と制御性が失われることにしばしば悩まされています。アカマイはそのコントロールをあなたの手に取り戻し、あなたのCI/CDワークフローに適合するように継続的な努力を重ねています。

カスタマイズされたデータログとCDNの健全性、遅延時間、オフロード、エラー、およびイベントに関する集約されたメトリックを通じてほぼリアルタイムなミドルマイルの可視性を提供するAkamai DataStreamは、この方針への大きな一歩です。

勝利と敗北を分けるのは秒間の出来事であり、アカマイはお客様が 'Winning Edge'を手にすることを応援しています。

詳細はAkamai DataStreamのDemoをご覧ください。

Leave a comment