Google App Engineで発生した大規模障害の原因が明らかに

Liam Tung (Special to ZDNET.com) 翻訳校正: 石橋啓一郎

2016-08-26 14:53

 Googleはが普段クラウドデータセンター間でアプリケーションのマイグレーションを行う際には、そのプロセスを説明するときに「正常」(graceful)という言葉を使う。しかし最近起こった障害は、「正常」からはほど遠いものだった。

 Googleの調査によれば、米国時間8月11日に「Google App Engine」に発生した2時間近くにわたる不具合を引き起こした障害の原因は、ルータのアップデートとデータセンターの自動管理の問題が重なったことだったという。

 このインシデントによって、Google App EngineのUS-CENTRALリージョンでホストされていたアプリケーションの5分の1強で、エラーが通常よりも大きく上昇した。Googleはこの問題で謝罪し、再発防止処置を実施した。

 Googleは8月23日に発表した同インシデントの事後分析で、「2016年8月11日木曜日の太平洋夏時間13:13から15:00にかけて、US-CENTRALリージョンでホストされていたアプリケーションの18%でエラー率が10%から50%に上昇し、アプリケーションのうち3%では、エラー率が50%を超えた」と説明している。

 また、影響の深刻度は低いものの、さらに多くのアプリケーションでエラー率の上昇が発生しており、エンドユーザーの読み込みやや時間が長くなった可能性がある。Googleによれば、「アプリケーションの37%では、エラー率の上昇が原因で、リクエスト1回あたりの遅延の中央値に0.8秒弱の上昇が見られた」という。同リージョンの残る63%のアプリケーションには影響がなかった。

 事後分析によれば、この障害の責任はGoogleにあり、原因はリージョン内(この場合はUS-CENTRAL)データセンター間での定期的なトラフィックの負荷分散処理の際に発生したという。この処理では通常、あるデータセンター施設内のサーバから発生しているトラフィックを別のデータセンターへリダイレクトし、その際アプリケーションは新たにプロビジョニングされたサーバ上で自動的に再起動される。

 ところが今回は、ルータ上でソフトウェアアップデートの適用が行われている間にこのハンドオフが発生した。Googleはこの2つの処理が同時に行われることで、ルータが過負荷になることを予期していなかった。

 「このアップデートが、ルータの連鎖的な再起動の引き金となった。これによって、一時的に利用可能なルータの能力が減少した」とGoogleは述べている。

 このサーバ不足によって、手動でスケールが設定されたアプリケーションの複数のインスタンスが再スケジュールされた。App Engineは手動でスケールが設定されたアプリケーションの新規インスタンスの作成を、ルータ経由で新規インスタンスをホストするサーバに起動リクエストを送信することで行っている。

 一部の手動でスケールが設定されたインスタンスの起動が遅れたことが原因で、App Engineのシステムが起動リクエストを再送信し、ルータのCPU負荷を急上昇させた。過負荷になったルータは、一部の新規リクエストを処理できずに破棄した。

 システムには負荷を処理するのに十分な能力を持っていたものの、ルータはリクエスト再送信の増大からの復旧に時間がかかった。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]