ユーザーエクスペリエンスの向上を実現させたGoDaddyのMachine Learning活用術
本記事はElastic{ON} 2018での事例紹介セッションの要約です。Elastic{ON} 2018のトークはアーカイブで多数公開中です。また、お近くの都市で開催されるElastic{ON} Tourのスケジュールもご覧ください。
スーパーボウルのスポンサーとしても近年広く認知されている米企業のGoDaddyは、Webホスティングとドメイン管理のサービスを提供しています。同社は1,700万に上る顧客に7,500万のドメインと1,000万のサイトをホスティングしており、ビッグデータのスペシャリストでもあります。サイト運営を円滑に保つには、バーチャルサーバーのパッチレベルからネットワーク障害、悪意のある攻撃まで、インフラのあらゆる側面に目を光らせておく必要があります。毎秒20万ものメッセージ(DNSクエリ、システムログ、ビジネスイベント等)を受信する状況下でこれを実行するのは簡単ではありません。そこで同社は、スピードとスケール性に優れたElastic Stackを採用しています。
GoDaddyがElastic Stackを導入する過程は、オープンソースソフトウェアを使用する大多数の企業と同じでした。はじめに社内のさまざまなチームが各自のニーズに応じて独自のクラスターを設定し、現場単位の業務はうまく進んでいました。しかしデプロイ全体の管理は行われておらず、全社的に見れば数百ものクラスターがバラバラに設定され、異なるバージョンのElasticsearchがサイロ化されたデータを各所で分析しているだけでした。より優れた方法があると判明したのが2014年のことです。同社にElasticsearchのデプロイを管理する専任のチームが結成されました。現在このチームは700以上のDockerコンテナーと、社内の全チームからのフィードに対応する60以上のElasticsearchクラスターを管理しており、270 TBを超える容量のデータを自社のHDFS環境に置いています。
このElasticsearch専任チームが発足して間もなく取り組んだ課題に、社内のエコシステム全体に適合するパッチ管理の問題がありました。2014年にはまだBeatsが開発されていなかったことから、GoDaddyではシステムデータをElasticsearchに送るためにWindowsとLinuxのエージェント(AuditbeatとWinlogbeatに類似したもの)を開発しました。これらのエージェントをオンプレミスの物理サーバーと仮想サーバーを含む全サーバーにインストールしたことで、パッチレベルの貴重なインサイトを獲得しつつインフラ全体に適合させることが可能になりました。またKibanaを使用したさまざまな種類のダッシュボードと可視化の活用も進みました。管理者やエンジニアには高精度なパッチ情報を簡単に提供し、経営陣には高度な事業報告書を提示することができます。いずれも一元化された同じデータにアクセスして生成されるため、全員で同一のデータを共有することが可能です。
読み込みの遅いWebサイトからはビジターが去ってしまうため、サイトトラフィックをスムーズに保つことはユーザーの維持に役立ちます。そしてサイトトラフィックを高速に保つ上で重要となるのが、サーバーパッチレベルの保守管理です。膨大な顧客へのサービス経験に基づき、GoDaddyの社内ではデータセンターのパフォーマンスと、そのパフォーマンスがサイトビジターに与える影響を追跡する必要性が認識されていました。システムの全コンポーネントが生成するログなど必要なデータはすでに揃っていましたが、求められていたのは、これらのデータを包括的に表示する技術でした。
一元化されたログでMachine Learningを使い、異常を検知
パフォーマンスやエンゲージメントに関する多様なデータセットの一元化と分析に乗り出したGoDaddyで採用されたプロダクトが、Elastic Stackです。Netflowデータ、sFlow data、リアルユーザーマネジメント(RUM)、ピアリングリレーションシップ、さらにルーティングデータをElasticsearchに入れると、ユーザーエクスペリエンスとシステムパフォーマンスの詳細な状況が判明しました。異なるソースからのデータを同時に分析することではじめて明らかとなる内容を、詳細なレベルで表示できるようになったのです。さらにGoDaddyではこれらのデータの分析に、有償オプションのElastic Machine Learningを活用する取り組みを開始しました。
システムデータの山に、一元的にアクセスできるというのは嬉しいことです。しかし、そこで問題を追跡することは簡単ではありません。GoDaddyはすべてのユーザークリックとWebサイトインタラクションを追跡しています。しかし、世界中で運用する数百万ページ分のデータを、人力で厳密に調査することは不可能です。そこで注目されたのが、異常検知タスクをシンプルにするElasticのMachine Learningです。ElasticのMachine Learningエキスパートの協力を得て、GoDaddyはRUMにフォーカスし、異常を検知を簡単にするMachine Learningジョブを実装しました。
「労力を考えれば、Elasticチームの支援を受けるのが正解です。これ以上ないというほど親身になってくれます。 緊密な関係を築くことができ、会議もひんぱんにしました。コミュニケーションの窓口はいつでもオープンで、アップデートや問題が生じたときにすぐ頼ることができました。 その点が、Elasticチームの特長だと思います」 - GoDaddyプリンシパルアーキテクト、フェリックス・ゴロディシュター
GoDaddyのチームはページ読み込み時間とページトラフィックに関する各種パラメーターに閾値を設定し、ElasticのMachine Learningに何が"通常"で、何が"以上"かを学習するジョブを実行させました。これにより、問題が生じたときすぐに通知を受け取ることができます。Machine learningでノイズを除去できるようになったことで、チームは重要なタスクに一層集中できるようになりました。
同社でホスティングサイトのパフォーマンス監視にElasticのMachine Learningを活用する方法についてさらに詳しくは、Elastic{ON} 2018の動画Stories from the Trenches at GoDaddy:How Big Data Insights Equal Big Money(GoDaddy社活用事例:ビッグデータインサイトを収益に変える方法)をご視聴ください。動画では、同社がMachine Learningを製品採用関連のビジネスKPIの監視に活用している方法や、Elastic Stack導入のインサイトも紹介されています。