- コラボレーター
- 加留部 有哉
【2016年版】新人エンジニアが知っておくべきサービス4選・番外編
全4回の新人エンジニア向け連載、最後となりました。最終回、実はまとまったネタが無く(!)、番外編としてSELECKの開発で使っているツール・サービスの紹介をします。ということで今回は、fluentd・Google BigQuery・Re:dash・Elastic Cloudについて解説します。
過去の連載はこちら
ログ転送ツール:fluentd
fluentdはログ転送ツールです。ログ転送、なんだそれはと思うかもしれませんが、主な目的は負荷分散された複数のサーバーから、1箇所にログを集めることです。
fluentdはプラグインが豊富に揃っていて、ログの転送先をElasticsearchにしたり、BigQueryにしたりということが簡単にできます。fluentd自体がTreasure Data社の提供するサービスなので、大量のログをビッグデータとして解析するようなサービスとの親和性が高いです。
SELECKでは、アプリケーションのアクセスログをBigQueryに転送する用途で使っています。
株式会社オールアバウトの事例は、fluentd・Elasticsearch・Kibanaの構成です。こちらも参考になるでしょう!
fluentdの導入前は、自前でスクリプトを書いてログを転送していました。ただこの場合、失敗した時の再送処理など、正確に動かすためには配慮しなければならない点が多いんです。その面倒な部分を、簡単な設定をするだけで担ってくれるのがfluentdなんですね。
ビッグデータ解析サービス:Google BigQuery
Google BigQueryは、なんと「データを保存しておくだけなら殆ど無料」という特徴を持つ、ビッグデータ解析用データベースです。そのため、とりあえずデータを保存しておく、という荒い使い方ができます。
SELECKでは、fluentdが収集したアクセスログをBigQueryに転送しています。それに加えて、マスタデータを定期的にBigQueryに同期しています。BigQueryはSQLライクな構文でRDBのように扱えるので、マスタデータとアクセスログを組み合わせて数字を見たりしています。
株式会社スマートエデュケーションでもBigQueryにGoogle Spreadsheetを連携して、サービスの数字を可視化しています。Spreadsheetから簡単にクエリを発行できるのは、結構便利です。
BigQueryは、本当にGoogleさんの持っている中でも最強のサービスだと思いますね!本当に、これ以上スケールできるものは他にはありません。弊社では今、大体50本分のアプリプラットフォームのアクセスログを入れていますが、これだけ突っ込んでもレスポンス速度は変わらない。
ダッシュボードツール:Re:dash
Re:dashは数あるデータソースを元に、簡単にダッシュボードを作成できるOSSです。これが本当に良すぎて、取材に行った次の日に導入しました。そして導入方法の記事まで書きました。
ダッシュボードツール「Re:dash」とは?インストール方法から使い方まで解説!【初級編】
SELECKではBigQueryに接続して、そこから全体の数字を可視化しています。また、Re:dashはURLにパラメータを指定するとクエリにパラメータを渡せるので、それを使って記事個別のパフォーマンスも確認しています。
以下の株式会社マナボの取材直後に、SELECKではRe:dashを導入しました。
エンジニアがプログラムを使って数値をとっていた時間が大幅に短縮され、データ取得までの時間も、肌感覚としてそれまで10分かかっていたものが10秒でできるようになった感じですね。
全文探索データベース:Elastic Cloud(Found)
最後は実はまだ導入をしていなくて(!)、AWS Elasticsearch Serviceから乗り換えようと考えているElastic Cloudです。どちらもElasticsearchという全文探索エンジンのSaaSで、自前で環境を構築せずに簡単に使用できます。ElasticsearchはRESTベースの簡単なAPIで、全文探索に限らず、文書の類似度チェックや「もしかして 〇〇」のような検索も実現できます。
SELECKでは検索機能のためにAWS Elasticsearch Serviceを入れたのですが、実はこれが辞書登録ができず…社名やツール名を引っ掛けるのがなかなか難しいので、辞書が使えるElastic Cloudへの乗り換えを検討しているところです(2016/4/27現在)。
こちらは同じく全文検索機能のためにElastic Cloudを導入した、株式会社クラウドワークスの事例です。取材時はFoundというサービス名でした。
MySQLからFoundに乗り換えて、費用を抑えつつ、検索速度を格段に上げることが出来ました。酷い時だと30秒くらいかかっていた検索クエリが、Foundだと1秒かからずに結果が返ってくるようになり、平均で10倍ほど速度が改善しています。
常に新しい情報を
今回紹介したサービス、Re:dashやBigQueryは、ここ1〜2年で流行りだしたものです。技術の進歩は早く、たった1年でより高性能なサービスが生まれてくる時代です。2016年はどういったツール・サービスが出てきて、今回まとめたものを置き換えて行くのでしょうか。楽しみですね!