cloudpackにおけるLookerの活用事例
アイレット株式会社 / Kento Yamada
メンバー / バックエンドエンジニア / 従業員規模: 1,001〜5,000名 / エンジニア組織: 11名〜50名
利用プラン | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
Developer,Viewer | 11名〜50名 | 2022年5月 | B to B |
利用プラン | Developer,Viewer |
---|---|
ツールの利用規模 | 11名〜50名 |
ツールの利用開始時期 | 2022年5月 |
事業形態 | B to B |
アーキテクチャ
アーキテクチャの意図・工夫
※MSP開発セクション: cloudpackを運用するための社内サービスを開発するセクション(筆者の所属するセクション)
※MSPセクション: cloudpackの運用に携わるセクション
運用データの分析プラットフォームとしてECSでRedashをホストし、データベースにRDS、キャッシュにElastiCache、前段にLoadBalancerを置く構成にしていました。 マネージドサービスを活用し、保守コストを下げていましたが、これらをLookerに置き換え保守コストをさらに下げるようにしました。
現在のアーキテクチャでは運用すべきAWSのコンポーネントを可能な限り減らすことにより、より運用負荷を軽減できるようになりました。
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
弊社ではMSPとして24時間365日稼働するクラウド環境のサポートサービス、cloudpackというサービスを提供しています。サービスを運用していくうえで品質向上のため日常的に応対速度や発生した障害の原因などを継続的にモニタリングしています。
(参考:クラウド導入実績 国内トップレベルのcloudpack【クラウドパック】)
cloudpackでは1万台以上のサーバ環境をモニタリングしており、24時間365日発生する障害情報をPagerDutyに集約して管理し、分析用にAmazon S3にも蓄積しています。 蓄積したデータはデータカタログとしてAmazon Athenaで検索できるようになっており、障害情報の分析が可能となっています。
※なお、具体的なcloudpackの運用についてはFindy株式会社様のオフィスで開かれたPagerDuty Japan Community Meetup Vol.4にて、弊社MSPのメンバーが説明しています。
モニタリングのために弊社では分析環境としてECS Fargate(AWS)にセルフホストしたRedashを採用しており、MSP開発セクションがRedashでダッシュボードを作成、MSPセクションがダッシュボードを閲覧するという体制をとっていました。その過程で多くの課題を抱えていました。主な課題としては下記のとおりです。
運用面
- Redash環境で定期的に障害が発生していたため、使いたい時に利用できないことがあった
- 分析環境はできるだけマネージドが良い(運用コストへの削減)
開発面
- MSP開発セクションで分析ダッシュボードを作成し、MSPセクションに提供している状態
- 分析環境の仕様を知っている人ならクエリを作成できるような状態(属人的)
- Redashで実行しているクエリはバージョン管理がされていないため、過去の修正を追跡できない
どのような状態を目指していたか
分析環境のための運用を極力減らし、MSP開発セクション以外のメンバーでも分析ができるような状態を目指しました。
比較検討したサービス
- Redash
- Databricks
- BigQuery
比較した軸
MSPセクションからの依頼をベースにMSP開発セクションが分析ダッシュボードを作成して提供するスタイルからのチェンジ、cloudpackの運用者目線でダッシュボードを作り、個々人が運用状況を把握できるような環境の構築を念頭に置いて移行を検討しました。
Redashのセルフホストを移行する先としてはDatabricksを採用することが多いですが、分析規模が大きい場合においてフィットする場合が多く、オーバースペックだと判断したため今回は採用を見送りました。 ※Databricksで扱える分析はRedash互換であり、昨今ではMLとの連携もしやすいため、運用までのビジョンが見えるのであれば、とてもオススメできます。
データ分析基盤としてBigQueryについても導入の検討を進めましたが、データ移行がネックとなり採用を見送りました。※ただし、データ移行の目処があるようであれば採用をオススメします。
ゆえに今回はLookerで小さく始めて分析するように検討を進めました。
選定理由
選定理由の決め手になったポイントとしては下記のとおりです。
- 分析環境の運用保守
- クエリのバージョン管理
- LookMLによるクエリ管理
従来の大きな課題としては分析環境の障害対応と実行クエリのバージョン管理です。 まず、たびたび発生している障害について、エラー情報からどのように対応すれば良いかの資料を作成して対応していましたが、障害のたびに未知のエラーに遭遇することが多く、対応に苦慮していました。 (エラーの多くは記録済みのエラーであり、既知のエラーとして対応できることもありました。)
つぎにRedashではバージョン管理の仕組みがありません。GitHubから自動デプロイしてRedashにクエリを共有するなどの仕組みを構築することも可能でしたが、すでにいくつかのクエリがAmazon RDSに保存されているため、GitHubから自動デプロイするような方法で開発環境をマイグレーションすることは難しいと判断しました。
また、Redashの場合はクエリそれぞれにコメントを残すなどの工夫とドキュメントをしっかり書く必要がありました。Lookerの場合はLookMLを使うことでデータをモデリングすることが可能になり、定義だけでなく、データソース内にある各項目の説明も兼ねることができました。
導入の成果
改善したかった課題はどれくらい解決されたか
クエリ作成の属人化を除いてほぼすべて改善されました。クエリ作成の属人化についてはLooker Studioで可視化するような対応にしました。なお、一番大きな改善としては下記のとおりです。
移行後に一度も障害で落ちることなくそして運用することなく分析環境が利用できるようになりました。
どのような成果が得られたか
主な成果としては以下のとおりです。
- (クエリの追加・修正/ダッシュボードの操作を除いて)分析環境の運用がなくなりました
- 実行クエリをGitベースでバージョン管理ができるようになりました
- LookMLを使うことによってクエリの再利用性が向上し、開発効率が上がりました
また、課題の解決とは別に以下の2点についても成果がありました。具体的な内容については活用方法
に記載しています。
- SlackとLooker APIを連携した内製ツールの開発(notify-looker-reportの開発)
- MSPセクション内で気軽に相談できるチャンネルの作成
導入時の苦労・悩み
データソースに関すること
弊社の運用分析ではAWSをメインとしているため、データソースへのクエリはAmazon Athenaを採用しています。多くのケースにおいてLookerのデータソースはBigQueryにすることが一般的かもしれませんが、長年蓄積してきたデータをBigQueryに移行しながら今回の課題を解決するのは難しいと判断したため、既存の資産(Amazon Athenaのクエリ)を使いながらマネージドに実行する必要がありました。
現在はAWSのIAMからアクセスキーを発行し、Lookerに接続するようにしています。 具体的な手順は弊社のメディア、iret.mediaに記載がありますのでご興味のある方は参照していただけますと幸いです。
LookerとAmazon Athenaを接続してみた - iret.media
LookMLモデルの設計
クエリを実行する際、LookerではデータソースをLookMLモデルに落とし込む必要があります。 このLookMLモデルを作成する際にどのようなViewを作成すべきかまた、Lookerに最適化するにはどのようにモデルを構築すべきかがとても難易度の高いところでした。
LookMLとは何かについてはiret.mediaにブログを投稿していますので詳細については以下のブログを参照いただけたらと思います。
導入に向けた社内への説明
上長・チームへの説明
上長への説明は最小限
私より上長や意思決定する者がLookerに詳しいため、Lookerの使い方に関する細かい説明をすることはありませんでした。説明するうえでMSPの運用分析においてLookerの機能がどこまで活用できるか
をアピールする必要がありました。
有用性のアピール
最初はスモールスタートとして特定のメンバのみに限定してViewerロールを配布しました。 限られたメンバー内でダッシュボードのレビューを実施、要望を聞きながら修正を加えていきました。 また、アピールする機会としてFutureStack Tokyo 2023にてクラウドをより高度に分析して運用していることをアピールしました。
結果、定性的な評価としてはcloudpackの運用チームが主体となって分析できるようになったこととダッシュボードの構築や変更を容易に行えるようになりました。
定量的な評価としてはFutureStack Tokyo 2023にて100名近くの方にLookerで作成した運用分析ダッシュボードについて興味を持っていただきました。
活用方法
Looker上で集積した障害の対応状況をLooker API経由で取得しSlackに定期配信しており、cloudpackで発生している個別の障害に対して細かく対応しています。具体的には以下の取り組みに対応しています。
- MSPセクション内で気軽に相談できるチャンネルの作成
- SlackとLooker APIを連携した内製ツールの開発(notify-looker-reportの開発)
まずは分析が容易になったことにより個別のインシデントに対してより簡単に分析ができるようになりました。そのため、運用メンバー同士で相談ができる個別のSlackチャンネル作成の動機につながりました。
その過程でLookerのViewerライセンスを6個から20個に引き上げ、閲覧できるメンバーを増員しました。 また、Looker Studio ConnectorをLookerと連携することによってLooker Studioからデータを閲覧できるような環境になりました。
さらに、Lookerのライセンスを持っていない人向けにnotify-looker-reportというSlackアプリケーションを開発し、定期的に障害の対応件数やcloudpackで定めているSLOを算出してSlackに通知するようにしました。
詳細については「Google Apps Script(GAS)でLooker APIの実行結果をSlackに通知してみた | iret.media」を参照していただけたらと思います。
※LookerAPIの使い方を知りたい方は以下のブログをオススメします。
よく使う機能
- LookML
- Explorer
- Looker API
ツールの良い点
- LookMLによってデータをモデリングできること
- Lookerは分析のためプラットフォームのため、分析作業に集中できること
ツールの課題点
- 多機能であるがゆえに使いこなすのには時間がかかること
- ライセンス費用
ツールを検討されている方へ
これから導入を検討されている場合については先々のデータ移行についても検討をした上で導入したほうが良いと思います。ただし、トライアルの段階であれば、最小限のライセンスを購入して試してみるのもありです。Lookerはデータを保存しないプラットフォームであるため、Amazon Athenaのように互換性のあるサービスととりあえず連携して利用できるかどうかを検討してみると良いです。
今後の展望
今後の展望としてはLookerユーザの増員とGoogle Cloudのサービスと密に連携、生成AIを活用した新しい分析を検討しています。具体的には以下のとおりです。
- Lookerライセンスを増やし、ダッシュボードの参照ができるユーザを増やすこと
- LookerAPIを活用した取り組みを増やすこと
- Lookerと生成AIを組みわせた活用を布教していくこと(Looker Explorer Assistantの導入すること)
- BigQueryの活用、一部のデータを移行して検証すること
アイレット株式会社 / Kento Yamada
メンバー / バックエンドエンジニア / 従業員規模: 1,001〜5,000名 / エンジニア組織: 11名〜50名
Multi Cloud (MSP) Developer | Google Cloud Partner Top Engineer 2025 | Microsoft MVP | LINE API Expert
よく見られているレビュー
アイレット株式会社 / Kento Yamada
メンバー / バックエンドエンジニア / 従業員規模: 1,001〜5,000名 / エンジニア組織: 11名〜50名
Multi Cloud (MSP) De...
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法