検索
ニュース

Google Cloudの大規模障害についてGoogleが原因と対策を説明

Googleは6月12日に発生したGoogle Cloudの大規模障害の原因が、API管理システムの新機能におけるコードの不備だったと報告した。エラー処理の欠如で世界的にクラッシュループが発生。同社は謝罪し、アーキテクチャの改善やテスト強化などの再発防止策を表明した。

Share
Tweet
LINE
Hatena

 米Googleは6月13日午後4時45分(米太平洋時間)、12日の午前10時51分に発生し、同日午後6時18分に収束したGoogle Cloudのサービス障害について、原因と対策を報告した。

 report
インシデントレポート冒頭

原因はAPI管理システムの新機能のコード不備

 今回の障害は、GoogleのAPI管理システムである「Service Control」における新しいクォータポリシーチェック機能のコードの不備が主な原因という。

 5月29日にService Controlに追加された新しいクォータポリシーチェック機能のコードに、適切なエラーハンドリングが欠けており、また重要な「機能フラグ」による保護もされておらず、6月12日にService Controlが使用する地域ごとのSpannerテーブルに、意図しない空のフィールドを含むポリシー変更が挿入された。

 この誤ったポリシーデータが処理される際、不備のあるコードパスが実行され、nullポインタエラーが発生。これによりService Controlのバイナリが世界中でクラッシュループに陥った。

障害発生から2分以内に対処開始

 Site Reliability Engineeringチームは、障害発生から2分以内に対応を開始し、10分以内に根本原因を特定した。

 問題のあるAPI提供パスを無効化する「赤ボタン」を導入し、障害発生から40分以内にサービスの回復が始まった。サービス回復後すぐに、Service Conrolシステムのすべての変更と手動でのポリシー更新を一時的に停止した。

今後の改善アプローチ

 Googleは、こうした障害を繰り返さないために以下の対策を優先的に実施すると表明した。

  • Service Controlのアーキテクチャのモジュール化
  • グローバルに複製されるデータの監査
  • 機能フラグによる保護の徹底
  • エラーハンドリングとテストの改善
  • 指数関数的バックオフの徹底
  • 外部コミュニケーションの改善
  • 監視および通信インフラストラクチャの継続的な運用
  • API管理プラットフォームの堅牢化
  • メタデータの伝播保護

 Googleはこの障害報告の冒頭で「この度の障害による影響について深くお詫び申し上げます。Google Cloudのお客様とそのユーザーの皆様は、Googleにビジネスを託してくださっているのですから、私たちは今後、より良いサービスを提供していく所存です。お客様のビジネスとユーザーの皆様だけでなく、弊社のシステムに対する信頼にも影響を与えたことをお詫び申し上げます。今後、このような障害が発生しないよう、改善に努めてまいります」と謝罪した。

 incident
インシデントレポート全文

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る