こんにちは!HALです。
少し前ですが、2014年04月30日 に『LINEゲームの躍進を支えるゲームプラットフォームの概要とEsper CEPの活用例』
という記事が公開されておりました。
こちらの記事は、LINEを開発されたエンジニアの方がどのような技術、サービスを使ってLINEを運営されているかといったことが記載されており、非常に興味深い記事でした。
この記事内で具体的にリアルタイム分析をLINEアプリではどのように活用されているか、ということが、少しですが記載されておりますので、ご紹介したいと思います。
まず、タイトルにあるEsper CEPですが、Esperは複合イベント処理(CEP:Complex Event Processing)のJavaベースのオープンソースです。
そして、CEPは、時々刻々と発生するデータを、リアルタイムに処理するための技術で、ストリームコンピューティングとも呼ばれます。
具体的には、データに対する処理条件や分析シナリオを、あらかじめCEPエンジンに設定しておき、データがその条件に合致すると、即座に決められたアクションを実行する仕組みになります。
さて、具体的に記事内のことに入りますが、こちらの記事では以下のことが実行されているようです。
① リアルタイムモニタリング
CPU、メモリ、ディスク、ロードアベレージ、ネットワーク、プロセスなどのモニタリング情報をリアルタイムで検知し、障害につながりそうな予兆を早期に発見し、障害を取り除く施策を実施。
② アプリモニタリング
アプリログや、クライアントから送られてきたクラッシュログを時間ごとに検索できるようにし、APIごとに接続状態と応答時間をリアルタイムに検索して、APIヘルスチェックを実施。
③ 異常値の検知
同時アクセス数をリアルタイムに検知し、予測できない減少が発生していた場合、なんらかの異常が発生したと想定。
こちらの記事では、複数のイベントログの収集、解析を行って、同時アクセスの減少が発生したタイミングでメールアプリに異常が発生していることを検知していました。
④ 不正行為のリアルタイムに監視
こちらは今後の応用ということで記載されておりましたが、ゲーム利用者によるスコア改ざんのような不正行為などをリアルタイムに監視するということが想定として挙げられております。
いかがでしたでしょうか。
有名アプリの実際の活用例は非常に参考になりましたので、紹介させていただきました。AWSのKinesisや、他のサービスを組み合わせれば、これらリアルタイムの分析、処理が低コストで拡張性が高く実現することができます。
次回もお楽しみに!!