Google ACE: モニタリング、ロギング、運用のトラブルシューティング — 学習ガイド
こちらの一部です: Google Associate Cloud Engineer — 学習ガイド. 検証済みの解答で練習: Google試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
サービス、リソース、ネットワークのトラブルシューティング
効率的なトラブルシューティングは、症状からシステムの境界、そしてリソースと依存関係へと進みます。
マネージドサービスの健全性、サービスステータス、割り当て、リージョンでのインシデント
- インシデントが上流(アップストリーム)で発生しているかを確認します。サービスの健全性と最近のリージョンに関する勧告をチェックしてください。エラーの急増、レイテンシの上昇、割り当てエラーを探します。
- 割り当てはプロジェクトごと、多くの場合リージョンごとに設定されています。ログ内の
quotaExceededやrateLimitExceededは、スロットリングを示しています。ピークイベントの前に増加をリクエストします。 - 障害モード: 部分的なリージョンの停止は、断続的なエラーとして現れることがあります。可能な場合は、マルチリージョンでのフェイルオーバーを構成します。
リソースの健全性とVMの診断
- インスタンスのオペレーション、メンテナンスイベント、ヘルスチェックを使用します。MIGsの場合、自動修復による再起動やヘルスチェックの失敗を調査して、問題のあるイメージや構成を特定します。
- VMのシリアルコンソールで、ブートメッセージやカーネルメッセージを確認します:
gcloud compute connect-to-serial-port VM_NAME --zone=ZONE- 一般的な原因: カーネルパニック、ブートを妨げる不正なfstabエントリ、不適切なネットワーク構成、SSHの失敗を引き起こすOS Loginの構成ミス。
- アクセス元を特定可能なアクセスのために、ユーザーごとのSSHキーとIAMロール(
compute.osLoginまたはcompute.osAdminLogin)を使用したOS Loginを確実に設定します。
Logs Explorerによる障害分析
- 症状を示すログ(
5xx、deadlineExceeded)から始め、リソースラベルを軸に分析し、デプロイの変更や割り当てのログと関連付けます。ヒストグラムビューを使用して、変化点を特定します。
- 症状を示すログ(
ネットワークの可観測性
- VPC Flow Logs: VNICごとの5タプルトラフィックのサンプリング。サブネットで有効化します。パフォーマンスと詳細度のバランスを考慮して、サンプリング(例: 0.5)とメタデータオプションを調整します。
gcloud compute networks subnets update SUBNET --region=REGION --enable-flow-logs --flow-sampling=0.5 --aggregation-interval=interval-5-min --metadata=include-all
- ファイアウォールロギング: 重要なルールでの許可/拒否の決定をキャプチャし、予期しないブロックやシャドウイング(ルール隠蔽)を診断します。
gcloud compute firewall-rules update RULE_NAME --enable-logging
- Connectivity Tests: VPC、ピアリング、Cloud VPN、Cloud Interconnect、ファイアウォールルール間の到達可能性をモデル化し、検証します。変更前の検証やインシデントのトリアージに役立ちます。
gcloud network-management connectivity-tests create test-a --source-instance=projects/PRJ/zones/ZONE/instances/VM1 --destination-ip=10.0.3.21 --protocol=TCP --destination-port=443
- 補完的なシグナル: 外向き(egress)トラフィックやエッジでの問題については、Cloud NATとロードバランサーのログを参照します。障害モードには、非対称ルーティング、ルートの欠落、ファイアウォールルールの順序間違い、ポリシ制約などが含まれます。
- VPC Flow Logs: VNICごとの5タプルトラフィックのサンプリング。サブネットで有効化します。パフォーマンスと詳細度のバランスを考慮して、サンプリング(例: 0.5)とメタデータオプションを調整します。
信頼性、SLO、およびインシデントオペレーション
オペレーショナルディシプリンは、テレメトリをユーザー影響の目標と一貫したインシデント実行に結びつけます。
SLO、エラーバジェット、およびベースライン
- ユーザー中心のSLI(可用性、レイテンシ、正確性)に基づいてSLOを定義します。例:30日間で読み取りリクエストの99.9%が200ミリ秒未満で完了する。
- サービスおよびリリースバージョンごとにエラーバジェットを追跡し、ロールアップダッシュボードを設計します。バジェットの消費状況に基づいてロールアウトをゲートします。
- トラフィックが増加する前にパフォーマンスのベースラインを確立します。リグレッションは絶対値ではなく、逸脱によって検出されます。
アラートノイズの削減
- インスタンスレベルのアラートよりもサービスレベルのアラートを優先します。変化率やパーセンタイルベースの条件を使用します。メンテナンスウィンドウ中は、通知のスロットリング、インシデントの自動クローズ、アラートのミュートを適用します。
- 共通のラベルとポリシーを介してアラートを重複排除します。依存関係を認識したルーティングを使用して、同じインシデントでデータベースとアプリケーションの両方を呼び出すことを避けます。
インシデント対応ワークフロー
- トリアージと重要度の宣言。ロール(インシデントコマンダー、オペレーション、コミュニケーション、書記)を割り当てます。
- エスカレーションパス:オンコールローテーション、主題専門家(SME)、およびベンダーサポート(サポートチケットにはプロジェクトID、リクエストID、タイムスタンプ、リージョンを含めます)。
- コミュニケーション:信頼できる唯一の情報源(チャットチャネルとインシデントドキュメント)を維持します。影響、緩和策、およびETA(復旧見込み時刻)を記載した定期的なステークホルダーへの更新を提供します。
- 緩和策のプレイブック:ロールバック、フェイルオーバー、機能フラグの無効化、またはキャパシティの追加。影響範囲(ブラスト半径)が狭く、元に戻せる変更を優先します。
インシデント後のレビューとRCA
- 証拠主導:メトリクス、ログ、トレース、および変更イベントを相関させます。どの検出シグナルが発火したか、なぜ発火したか(またはしなかったか)、そして検出/緩和までの時間を含めます。
- 直接的な原因だけでなく、寄与因子を特定します。所有者と期限付きの具体的なアクションアイテムを記録し、それに応じてランブックとアラートを更新します。
- 非難しない文化は、完全な情報開示とシステム的な修正を促進します。
オペレーショナルランブック
- 構造:トリガーと検出、迅速な診断ツリー、安全な緩和策、ロールバック/リストア手順、検証、および終了基準。
- コマンドとフィルターはコピー&ペーストできる状態に保ちます。対応者には最小権限のIAMを検証します(例:書き込み専用バックアップのためのstorage.objectCreator、ワークロードIDのための専用サービスアカウント)。
- 変更管理を用いてランブックをバージョン管理し、ゲームデー中にテストします。
実践的な問題シナリオ
Northwind Outfittersは、Google Cloud上でリージョナルなeコマースプラットフォームを運営しています。最近のトラフィック急増後、ユーザーから断続的にチェックアウトのタイムアウトや商品検索の遅延が報告されています。運用チームは、信頼性を迅速に回復し、アラートノイズを削減し、複数のプロジェクトにまたがる診断を強化する必要があります。
アプローチ:
- プロジェクト横断でのモニタリングの統合
- アクション:単一のMonitoringワークスペースを作成し、prod、payments、searchプロジェクトをリンクします。チェックアウトと検索の可用性、レイテンシ、エラー率を示す「ユーザージャーニー」ダッシュボードを構築します。
- 根拠:一元化された可視性により、サービスレベルのトリアージが可能になり、サービス間の問題(例:検索のレイテンシがチェックアウトのタイムアウトに連鎖する)を相関させることができます。
- SLOとバーンレートアラートの実装
- アクション:SLOを定義します:チェックアウトは99.9%が400ミリ秒未満、検索は99.95%が250ミリ秒未満。レイテンシとエラー率のSLIに対して、複数ウィンドウのバーンレートアラート(1時間で2%、5分で5%)を作成します。オンコール担当者にはページングで、ステークホルダーにはチャットで通知します。
- 根拠:バーンレートアラートは、通常の変動でページングすることなく、急激なリグレッションや持続的な緩やかな悪化を捉えます。
- コンテンツマッチ付きの合成稼働時間チェックの追加
- アクション:パブリックなエントリーポイントに対してTCPおよびHTTPSの稼働時間チェックを構成し、内部の支払いAPIに対してはプライベートな稼働時間チェックを構成して、レスポンスボディに「ok」が含まれていることを検証します。
- 根拠:到達可能性や、バックエンドの誤ったルーティングや上流サービスの劣化といった部分的な障害を検出します。
- ログのルートと保持期間の厳格化
- アクション:専用のログバケットを作成します:ops(90日間)、security-audit(2年間、CMEK)。Admin Activity、Data Access、System Event、およびPolicy Deniedログを、分析のためにシンクを介してBigQueryにルーティングします。おしゃべりなヘルスチェックを除外設定に追加します。
- 根拠:適切な保持期間はコストを抑制し、BigQueryは迅速なフォレンジックを可能にします。除外設定は、重要な証拠を失うことなくノイズを削減します。
- アプリケーション診断の有効化
- アクション:TraceのためにOpenTelemetryでサービスを計装します。バックエンドとフロントエンドでError Reportingを有効にします。チェックアウトサービスに、控えめなサンプリングでCPUとヒーププロファイルを取得するProfilerを展開します。
- 根拠:トレースはレイテンシのホットパスを特定し、Error Reportingは新しいエラーグループを強調し、Profilerは低オーバーヘッドでCPUの競合やメモリリークを明らかにします。
- ネットワークのオブザーバビリティの強化
- アクション:prodサブネットでVPC Flow Logsを有効にし(0.5サンプリング、全メタデータを含める)、searchおよびpaymentsへのイングレスに対する許可/拒否ルールでファイアウォールロギングを有効にします。Web層からsearchへ、およびpaymentsからCloud SQLへのConnectivity Testsを作成します。
- 根拠:フローログとファイアウォールログは、パケットのドロップ、再送信、およびシャドウルールを明らかにします。Connectivity Testsは到達可能性を検証し、設定ミスを特定します。
- リソースレベルの診断と安全なアクセス
アクション:不安定なVMについては、シリアルコンソールで起動の問題を調査します:
undefined
- SSHが必要な場合は、OS Loginを強制し、「ops-admins」グループにcompute.osAdminLoginを付与します。各管理者は自身のSSHキーを使用します。
- 根拠:シリアルログはカーネルやinitの障害を明らかにします。ユーザーごとのキーを使用するOS Loginは、帰属可能で最小権限のアクセスを保証します。
- 割り当てとリージョンの健全性の検証
- アクション:ログで最近のquotaExceededイベントを確認し、searchのオートスケーリングのためにリージョンのAPIとIPの割り当てを引き上げます。影響を受けているリージョンのサービスヘルスアドバイザリを確認し、ロードバランサーの重み付けで一時的にトラフィックをシフトします。
- 根拠:割り当てによるスロットリングやリージョン規模のインシデントは、断続的な障害の一般的な原因です。プロアクティブなスケーリングとトラフィックステアリングは影響を緩和します。
- ノイズ削減とランブックの更新
- アクション:インスタンスごとのCPUアラートを、サービスレベルの飽和度アラートに置き換えます。対応不要なアラートをミュートするためにメンテナンスウィンドウを追加します。新しいトリアージクエリ、トレースダッシュボード、およびロールバック手順でランブックを更新します。
- 根拠:ページングによる疲労を軽減し、一貫性のある安全な対応を加速させます。
- インシデント後のレビューとアクション
- アクション:非難なしのレビューを実施します。バーンレートインシデントと、検索のテールレイテンシの増加および最近のインデックスのロールアウトとを相関させます。アクションアイテム:searchにカナリアリリースを追加し、インデックスサイズのガードレールとオートスケーラーのヘッドルームを確保し、定期的なアラートチャネルのテストを約束します。
- 根拠:証拠に基づいたRCAは、再発を防止し、検出、緩和、および回復力を向上させます。
← デプロイ、構成、自動化 · すべてのドメイン · セキュリティ、コンプライアンス、データ保護 →
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →