18.3K Views
December 15, 22
スライド概要
Qiita Night~AWS~で発表した資料です
本資料では、CloudWatch LogsからGrafana Lokiへのログ基盤変遷の概要とLokiを利用したログ検索の紹介を行っています
当日のイベントはconnpassを御覧ください
https://increments.connpass.com/event/266692/
LIFULL HOME'Sを運営する株式会社LIFULLのアカウントです。 LIFULLが主催するエンジニア向けイベント「Ltech」等で公開されたスライド等をこちらで共有しております。
CloudWatch LogsからGrafana Lokiに ログ基盤を移行 株式会社LIFULL 川合 拓央
自己紹介 LIFULLについて 移行に至った背景 移行後の状態 目次 まとめ 2
自己紹介 川合 拓央 @hir00 ソフトウェアエンジニア @LIFULL Kubernetesをベースとした内製 PaaS 「KEEL」を開発・運用 このPaaSを活用するためのプラクティスを導入するEnabling SREとして活動 https://www.lifull.blog/archive/category/KEEL 「Istioを本番環境に導入するまで」 「LIFULLが主要サービスの(ほぼ)全てをKubernetesに移行するまで」 「GitHub Actions Self-hosted runnes on Kubernetesによる自動化」 3
LIFULLについて あらゆる「LIFE」を「FULL」に。 「したい暮らしに、出会おう。」をコンセプトに掲げ、簡単で便利な住まい探しをお手伝いする不動産・住宅情報の総合サービスです。 物件の探しやすさや住まいに関する情報の見つけやすさ、検討がしやすくなるように、様々な機能や情報を拡充していきます。 今後も、ユーザーに寄り添いながら、ともに理想の住まい探しを実現します。 4
背景 歴史 ・マイクロサービス化が進行 車輪の再発明 各チームがロギング・監視基盤を実装 デプロイフローの実装 5
背景 歴史 ・2018年頃Kubernetesの導入を開始 =内製PaaS「KEEL」 ロギング・監視の共通基盤を実装
背景 メトリクスを利用した監視とGrafanaでの可視化を提供 7
背景 柔軟にクエリ出来るログ閲覧環境を提供 8
背景 ✔各チームがロギング・監視基盤を実装 共通基盤上で稼働するアプリケーションが増える ログコストが高くなっていることを観測 CloudWatch LogsのPutLogEventsのコスト比率が高い 理想は大量のデータを扱えるログ基盤がコストを抑えて提供できていること 9
Grafana Lokiの導入 ログの収集/検索 低コスト スケーラブル 引用: https://grafana.com/oss/loki/ https://grafana.com/docs/loki/latest/fundamentals/architecture/components/ 10
Grafana Lokiの導入 CloudWatch Logs Insights Grafana Loki fields @timestamp, @message, @logStream {grouping="kubernetes.ns.svc"} | filter structural_log.status >= 499 | json | sort @timestamp desc | structural_log_status >= 499 | limit 20 11
Grafana Lokiの導入 CloudWatch Logs Insights Grafana Loki {grouping="kubernetes.ns.svc"} stats count(*) by @logStream | json | filter structural_log.status >= 499 | structural_log_status >= 499 12
Grafana Lokiの導入 CloudWatch Logs Insights Grafana Loki sum( rate( stats count(*) by @logStream {grouping="kubernetes.ns.svc"} | filter structural_log.status >= 499 | json | structural_log_status >= 499 [1m] ) ) by (metadata_pod_name) 13
Grafana Lokiの導入 CloudWatch Logs Insights Grafana Loki quantile_over_time( fields structural_log.status, structural_log.reqtime, structural_log.uri, @message | filter structural_log.uri = "/xxx" | stats pct(structural_log.reqtime, 99) by bin(1m) 0.99, {grouping="kubernetes.ns.svc"} | json | structural_log_uri = "/xxx" | unwrap structural_log_reqtime | __error__="" [1m] ) by (structural_log_status) 14
Grafana Lokiの導入 二面書きをしながら使用感の検証 運用コストはCloudWatch Logsと比較すると増える 金額コストは70%削減
Grafana Loki移行後の状態 16
Grafana Loki移行後の状態 17
Grafana Loki移行後の状態 18
Grafana Loki移行後の状態 19
Grafana Loki移行後の状態 20
まとめ CloudWatch Logsを利用したログ基盤を提供 →ログ量の増加に伴いログコストが増加する課題 →S3をbackendとするログ集約ソフトウェアGrafana Lokiへの移行を行った ✔ 大量のデータを扱えるログ基盤がコストを抑えて提供できていること ・運用コストは増 ・金額コストは70%削減 ・メトリクス・ログ・トレースをGrafanaで統合 21
ご清聴ありがとうございました 22