Slide 1

Slide 1 text

2025.01.28 プレシ カンタン GO株式会社 Grafana Loki によるサーバログの コスト削減

Slide 2

Slide 2 text

© GO Inc. 2 自己紹介 プロフィール写真 正方形にトリミングした写 真を「図形に合わせてトリ ミング」で円形にすると真 円になる GO株式会社 技術戦略部 / プレシ カンタン SRE活動、Kubernetesを中心としたプラットフォームの開発と運用 以前途中まで見たワンピースを最初から見始めてから1年:エピゾード700 まで来ています!

Slide 3

Slide 3 text

© GO Inc. 3 SREの紹介 ▪ チーム構成 ▪ 7名 ▪ 幅広い活動 ▪ Kubernetesの中心としたプラットフォーム「Kenos」の開発と運用 ▪ アプリケーション設計の標準化 ▪ CI/CDの標準化 ▪ Observabilityの標準化 ▪ シークレット管理の標準化 ▪ Airflowによるワークフロー基盤の提供 ▪ インフラ構築、DBバージョンアップデートなどの定常作業 ▪ など ▪ もっと知りたい方へ ▪ 「タクシーアプリ『GO』におけるプラットフォームエンジニアリング の実践」(開発生産性Conference 2024)

Slide 4

Slide 4 text

© GO Inc. 4 SREのコスト削減対策 よくあるコスト削減 RI/CUD購入 サーバとDBのスペッ クの定期的な調整 不要なクラウドリソー スの定期的な棚卸し S3/GCSのストレージクラ スとライフサイクル調整 … 標準化活動によるコスト削減 (言語、クラウドサービス、ライブラリ、ツール、方針の標準化) 開発効率化 ビジネスロジックに集中 人員配置による認知 コストの削減 … プラットフォーム・エンジニアリングによるコスト削減 (Kubernetesを中心としたKenos基盤の提供) インフラ作業の効率化 (構築、メンテナンス、廃止) マネージドサービスの 利用の効率化 … 今回の話 マネージドサービスからの脱却

Slide 5

Slide 5 text

© GO Inc. 5 GOのシステム全体構成と発表箇所 バックエンド 分析環境 バックエンド (App Engine) 次世代 バックエンド (Kubernetes) キュー (Pub/Sub) 分析ログ データ 基盤 (BigQuery) RDB (Cloud SQL) フロントエンド 次世代 サーバログ基盤 (Loki) サーバログ基盤 (Cloud Logging) S3 キュー (Pub/Sub) 車載位置ログ サーバ ログ サーバ ログ ユーザー アプリ ドライバーア プリ

Slide 6

Slide 6 text

© GO Inc. 6 GOのシステム全体構成と発表箇所 バックエンド 分析環境 バックエンド (App Engine) 次世代 バックエンド (Kubernetes) キュー (Pub/Sub) 分析ログ データ 基盤 (BigQuery) RDB (Cloud SQL) フロントエンド 次世代 サーバログ基盤 (Loki) サーバログ基盤 (Cloud Logging) S3 キュー (Pub/Sub) 車載位置ログ サーバ ログ サーバ ログ ユーザー アプリ ドライバーア プリ 発表箇所

Slide 7

Slide 7 text

© GO Inc. 7 課題:サーバログ基盤のコストが高い ▪ 一般論:サーバログの特徴 ▪ 調査のため大量に残す必要がある(何が起きるかわからない) ▪ ほぼ見ない(全体の量に対して検索されるのはわずか一部) ▪ 多くのマネージドログ収集システムが書き込み課金 ▪ →コストパフォーマンスが悪い ▪ GOの課題 ▪ 一般的なサーバログ基盤と同じ課題を抱えていた ▪ Google Cloud Loggingのインジェスト料金が高い ▪ BigQueryのStreaming Insertの料金が高い

Slide 8

Slide 8 text

© GO Inc. 8 対策:Grafana Lokiの導入 ▪ Grafana Lokiを導入したことで、サーバログ基盤のコスト削 減ができた ▪ Grafana Lokiの説明 ▪ Grafana Lokiとは ▪ ログ収集と検索用のOSSツール ▪ Grafana Cloud マネージドサービスも提供されている ▪ Grafana Lokiの特徴 ▪ ログの内容をインデックスしないため書き込みが安い (サービス名やPod名などログ発生元の情報のみをインデックスする) ▪ データをS3などオブジェクトストレージに保存するため安い ▪ 検索の際に大量のデータをストレージから取得しオンメモリでフィルタす ると言うブルートフォースなやり方を採用しているため読み込みにリソー スがかなり必要 ▪ → コストを書き込みから読み込みにシフトする

Slide 9

Slide 9 text

© GO Inc. 9 サーバログ基盤アーキテクチャ Promtailログエージェントが、 コンテナログを収集しLokiに送信 Lokiは、 専用のEKSクラスタで稼働し、 ストレージとしてS3を利用 ログ検索は Grafana GUIを利用 Google Cloudからは Cloud NATを通す AWS内部はVPC Peering

Slide 10

Slide 10 text

© GO Inc. 10 Loki内部アーキテクチャ 書き込み:ログをメモリとdiskに保存 するだけのためCPUをほぼ使わない 読み込み:検索クエリが複数のサブクエリに分割され、 読み込み用のインスタンス複数台から並列で処理される S3へのアップロードは非同期 直近のデータは書き込み用のインスタンスから 取得し、古いデータはS3から取得 CPUが かなり必要 詳細はブログにまとめている (「GO Tech Blog Loki」で検索 )

Slide 11

Slide 11 text

© GO Inc. 11 Lokiのコスト ▪ データ転送料金:データが圧縮されているためある程度抑えられる ▪ 保存料金:オブジェクトストレージのため安い ▪ コンピュート料金 ▪ write : 全体のスループットに比例するが設計上Lokiの書き込みはCPUをそこまで使 わないため抑えられる ▪ read : どのぐらいのパフォーマンスを要求するか次第(何日分のデータを同時に検 索するのか、何秒以内に結果が欲しいのか …)。ニーズに合わせて調整可能。

Slide 12

Slide 12 text

© GO Inc. 12 更なるLokiのコスト削減のための工夫 ▪ Lokiマネージドサービス「Grafana Cloud」は選ばずに、自前 のEKSクラスタで運用! ▪ コスト削減効果が、メンテナンスの人件費増加よりも、大きいと想定 ▪ サーバログは万が一欠損があったとしてもそこまでクリティカルな問 題にならない ▪ コンピュート料金の抑止 ▪ RI (リザーブドインスタンス)の購入(~30%のコスト削減) ▪ readインスタンスのスケジュールスケーリング:週末と夜中、ログ検 索が少ない時間帯は台数を自動的に減らす(~50%のコスト削減) ▪ データ転送料金の抑止 ▪ EKSとLokiの間にVPCピアリング接続を作成 (NATを通らない)

Slide 13

Slide 13 text

© GO Inc. 13 結果 ▪ 効果 ▪ 各サービスのログをLokiの基盤に移行することによって、最大で 80%のログコスト削減ができた ▪ Lokiの自前運用があまり大変ではない! ▪ その他得られた効果 ▪ ただのログ検索基盤から、可視化やトレースとの連携などができ るオブザーバビリティ基盤へ ▪ 更に ▪ まだSREのKubernetes基盤に移行できていないサービス (GAE,GKEなど)も、移行するだけでLokiによるサーバログのコス ト削減効果が出せるため、基盤への移行を計画していく

Slide 14

Slide 14 text

© GO Inc. 14 まとめ ▪ サーバログは一部しか検索しないのに大量に残す必要が あるが、多くのログ収集システムが書き込み課金のため コストが増加しがち ▪ Grafana Lokiを利用し自前で運用することでコストを書 き込みから読み込みにシフトできた ▪ 結果として、最大で80%のログコスト削減ができた

Slide 15

Slide 15 text

© GO Inc. 文章・画像等の内容の無断転載及び複製等の行為はご遠慮ください