Google は先週、クラウドの大規模な部分でクラッシュが発生した経緯と理由を説明したが、よくあるケースと同様、同社は自滅した。
障害の根本原因を詳述したGoogle Cloud Issue Summary [PDF] は、次のように始まります。「多くのGoogleサービスは、不変の非構造化データ(バイナリラージオブジェクト、BLOBとも呼ばれます)を保管するために、共通の社内分散システムを使用しています。このBLOBストレージシステムには、Google社内のクライアントサービスとインターフェースするフロントエンド、メタデータ操作を処理する中間層、そしてBLOB自体を格納するバックエンドストレージが含まれています。クライアントがフロントエンドにリクエストを送信すると、メタデータ操作はメタデータサービスに転送され、メタデータサービスがストレージサービスと通信します。」
これは、Google の運営について少し説明しているが、何が間違っていたのかについては説明していない点で興味深い。
次の段落では、その点について次のように説明します。
一部のタスクは開始できましたが、多くのタスクは「受信したトラフィックの量によってすぐに圧倒され、開始されたタスクには枯渇のために十分なリソースが割り当てられませんでした。」
そして、すべてがそこから連鎖的に発生しました。「失敗したリクエストをキャンセルして再試行する戦略によって問題が悪化し、トラフィックに乗算的な影響が生じました。」
結果は?使用するGoogleサービスに応じて、最大6時間35分の苦痛。
Google Apps Scripts デバッガーは V8 ランタイムを使用する開発者にとってバグが多い: 第 4 四半期に修正予定
続きを読む
しかし興味深いことに、Google Cloud Storage のユーザーにとっては問題はありません。この製品は同じ BLOB ストレージに依存していますが、メタデータ サービスは分離されているからです。
Googleのチームは、「GCSメタデータ分離のための移行は『米国』マルチリージョンで進行中ですが、その他の移行はすべて完了しています。その結果、GCSのお客様への影響は軽減され、影響は『米国』マルチリージョンに限定されました」と記しています。この報告書では、他の製品に大きな混乱をもたらした当初のメタデータの混乱を引き起こしたGoogleのサービスがどれなのかは説明されていません。もちろん、Googleは発生したすべての問題を修正し、今後このような混乱に対処するための新しい、より堅牢なルーチンをテストすることを約束しています。
同社はまた、今回の障害が具体的にどのような被害をもたらしたかについて、次のように異例なほど詳細な内訳を示した。
- Gmail:一部のユーザーにおいてGmailサービスがご利用いただけなくなり、メール配信に遅延が発生しました。過去7日間にアクティブだったGmailユーザー(一般ユーザーおよびG Suiteユーザー)の約0.73%が、障害発生期間中に3件以上の可用性エラーを経験しました。影響を受けたGmailユーザーのうち、G Suiteユーザーは27%を占めていました。また、一部のユーザーにおいて、メッセージへの添付ファイルの追加時にエラーが発生していました。Gmailへの影響は3時30分までに軽減され、このインシデントによって遅延したすべてのメッセージは配信されました。
- ドライブ:一部のGoogleドライブユーザーにおいてエラーと遅延の増加が発生しました。過去24時間以内にアクティブだったドライブユーザー(一般ユーザーとG Suiteユーザーの両方)の約1.5%が、障害期間中に3件以上のエラーを経験しました。
- ドキュメントとエディタ: 一部の Google ドキュメント ユーザーで、画像作成操作(画像のアップロード、画像を含むドキュメントのコピー、画像を含むテンプレートの使用など)に関する問題が発生していました。
- 新しいGoogleサイト:一部のユーザーは、新しいサイトの作成、サイトへの新しいページの追加、サイトへの画像のアップロードができませんでした。また、インシデント発生期間中、テンプレートからサイトを作成する際にほぼ100%のエラーが発生していました。サイトへの影響は午前3時までに軽減されました。
- チャット: メッセージを送信しようとした Google チャット ユーザーの 2% でエラーが発生し、メッセージを Gmail に転送しようとしたチャット ユーザーの 16% でエラーが発生しました。
- Meet:インシデント発生中、ライブ配信は完全に停止し、YouTubeへの影響により録画も遅延しました。Meetへの影響は21:00から1:15まで、および1:40から2:10まで続きました。
- Keep: 一部の Google Keep ユーザーに対して、500 内部サーバー エラーの応答が提供されたり、メディアに関連する操作で遅延が発生したりしました。
- 音声:添付ファイル付きの送信SMSの一部が配信に失敗しました。一部の着信ボイスメール、通話録音、SMSの配信に遅延が発生しました。音声への影響は3時20分までに軽減されました。すべてのボイスメールと録音は配信済みですが、最大5.5時間の遅延が発生しました。
- Jamboard: 一部のユーザーにおいて、画像のアップロードや画像を含むドキュメントのコピーを行おうとするとエラーが発生しました。
- 管理コンソール:G Suite 管理コンソールでCSVファイルをアップロードする際に、一部のユーザーからエラーが発生しました。障害発生期間中、これらの操作のエラー率は15~40%でした。
- App Engine: Blobstore API を呼び出す App Engine Standard アプリでエラー率が上昇しました。ピーク時のエラー率はほとんどのリージョンで 5% 未満でしたが、us-west1 では 47%、us-central1 では 13% に達しました。Images API を呼び出す App Engine Standard アプリでは、エラー率が最大 66% に達しました。
静的ファイルまたは Blobstore オブジェクトによって処理される受信 HTTP リクエストではエラー率が上昇し、ピーク時には 1% に達しました。
静的ファイルを含むアプリのデプロイは、「App Engine へのファイルコピー中に次のエラーが発生しました: ファイル https://storage.googleapis.com/.... が次のエラーで失敗しました: 静的ファイルの保存に失敗しました」というメッセージが表示され、失敗しました。App Engine への影響は 03:25 までに軽減されました。 - Cloud Logging:Google Cloud Logging に書き込まれるログメッセージ(App Engine リクエストログ、アクティビティログ、監査ログなど、Google が生成したログを含む)は、最大 4 時間 43 分遅延しました。ログのバックログは 16:00 までに完全に処理されました。障害発生中、ログの書き込みと読み取りの API 呼び出しは正常に終了しましたが、読み取りは不完全な結果を返しました。
- Cloud Storage: 「US」マルチリージョンにあるGoogle Cloud StorageバケットへのAPI呼び出しで、最大1%のエラーが発生していました。00:31までにエラーは完全に解消されました。
®