
マルチクラウド監視の設計方法
SLOに紐づく監視対象と責務分解
最初に決めるのは「何を壊さないか」です。クラウドやツールの選定より、顧客価値を守るSLO(例:チェックアウトAPIの成功率99.9%、p95レイテンシ800ms以下)を先に置き、そこから必要なSLI(リクエスト成功率、遅延、エラーレート)を逆算します。SLOに結びつかない監視は後回しで構いません。
次に責務分解です。
- アプリ責務:ビジネス指標に近いSLI(成功率、遅延、重要キューの滞留)
- プラットフォーム責務:ノード/コンテナ/DBの資源(CPU、メモリ、I/O、コネクション)
- クラウド責務:各クラウドのSLAとサービス健全性(リージョン障害、クォータ、レート制限)
アプリとプラットフォームの境界を明確にすると、マルチクラウドでも「誰が・何に」対応すべきかがぶれません。運用RunbookはChatGPTやClaudeを使ってドラフトを作ると、用語や観点のモレが減り、合意形成が速くなります。
収集設計の標準化:メトリクス・ログ・トレース
タグと名前付けの共通化
可観測性の9割はタグ(ラベル)設計で決まります。最低限そろえるべきは以下です。
- env(prod/stg/dev)/region(ap-northeast-1等)/cloud(aws|gcp|azure)
- service(決済API等)/owner(担当チーム)/version(デプロイ版)
メトリクス名は「領域.対象.指標」(例:app.checkout.request_success_ratio)に統一し、アラートも同名で追跡可能にします。
クラウド別の取り込み方針
各クラウド標準(CloudWatch、Azure Monitor、Cloud Monitoring)からは「必要最小限の指標のみ」取り込み、アプリ指標はOpenTelemetryを使って言語非依存に収集します。取り込み間隔は5〜30秒でSLOの粒度に合わせ、集約先はベンダーに依存しない時系列DB(Prometheus互換など)に統一するとクエリ資産が使い回せます。
ログとトレースの実用線
全ログ集中はコスト爆発の温床です。以下の二段構えが現実的です。
- 短期(7〜14日):全文検索できるホット層(障害調査用)
- 中長期(30〜180日):構造化サマリとアーカイブ(監査・傾向分析)
トレースは「SLO対象のエンドポイント」と「外部依存(決済・配送等)」に限定し、サンプリング率を動的制御します。遅延がSLO閾値を超えたリクエストは必ず保存する仕組みが有効です。
アラートとダッシュボード:運用できる設計に落とす
アラートはSLO中心、インフラは抑制
ページャ通知はSLO違反の前兆(いわゆるバーンレート)を主役にします。例:burn_rate(2h)>14 かつ burn_rate(6h)>6 を満たしたら緊急、など複数窓の条件で誤検知を減らします。インフラ指標はダッシュボードと週次レポートに回し、連鎖爆発を避けます。
エスカレーションと復旧手順
オンコールは「一次(サービス担当)→二次(プラットフォーム)→三次(クラウド窓口)」の順で、SLO種別で自動的に宛先を切り替えます。RunbookはCopilotやGeminiでコマンド例・クエリ例を自動補完し、実地検証したら固定化。Slack通知は「何が悪いか」「暫定アクション」「計測リンク」を必須にして、クリックゼロで意思決定できる形にします。
コスト管理と保持期間
- 保持は用途逆算(障害=短期深掘り、傾向=長期サマリ)
- 高頻度メトリクスはローリングダウンサンプル(1s→30s→5m)
- 「アラートに使わないデータ」は毎月棚卸しで削除
この3点だけで監視コストは概ね3〜5割削減できます。
身近な企業活用例:D2CアパレルECの失敗と改善
キャンペーン拡大でAWSとGCPを併用しましたが、監視はクラウド別ダッシュボードで分断。セール中にGCP側の在庫API遅延が発生し、SlackがCloudWatchとGCPから二重三重に鳴り続け、誰も「顧客影響の全体像」を掴めず、復旧が遅れました。原因はタグ不統一(service名がバラバラ)、SLO不在、アラートが資源系ばかり、の三点でした。
改善では次を実施しました。
- 「checkout成功率99.9%、p95 800ms以下」をSLOに採択し、SLIをOpenTelemetryで統一収集
- env/region/cloud/service/owner/versionの共通タグを必須化
- メトリクスはPrometheus互換に集約、クラウド固有は最小限にプロキシ
- バーンレートアラートを導入し、資源系は週次レビューへ格下げ
- Runbookのたたき台をChatGPTで作成、担当者が現場実測で更新
結果、セール時の誤検知が70%減、MTTDが8分→2分、監視コストは月額36%削減。何より「checkoutの健康度」を軸に会話できるようになり、マルチクラウドの複雑さが業務に与える影響を最小化できました。
まとめ:設計の要は「共通言語」と「使い切る運用」
マルチクラウド監視は、SLO起点の共通言語、タグと名前付けの標準化、SLO中心のアラート、実運用に耐えるRunbookの4点で固まります。ツールは手段ですが、生成AI(ChatGPT、Claude、Copilot、Gemini)を下書きや知識整備に活用すると立ち上がりが速く、運用のばらつきも抑えられます。サーバ監視運用事業に携わる立場としても、ここまで設計を具体化できれば、クラウドが増えても「見える・わかる・動ける」体制を地に足のついた形で維持できます。