Google Cloud Platformの話
Google Cloud Platformが日本時間の今日早朝に不安定になっていた時間があったようですね。
日本時間の7月18日の午前4時過ぎから約1時間、Google Cloud、Discord、Spotify、Pokemon Goなど、多数のサービスでアクセスできない問題が発生した。
Google Cloud Status Dashboardから状況を鑑みる
Google Cloud Status Dashboardには、直近の全サービスの状況が確認できるようになっているわけですが日本時間2018年7月18日12:30現在ではオールグリーン(Available)になっています。
この12時間で障害(Service Outabe)が発生したサービスは以下の通りです。
・Google App Engine
・Google Cloud Networking
・Google Stackdriver
・Google Cloud Support
それぞれ、障害報告を確認していきます。なお、全て原文の時間は、米国/太平洋(夏時間)から日本時間に変更しています。
Google App Engine
Google App Engine Incident #18005
インシデントは2018年07月18日(木) 04:15~05:23の間継続しました。
※原因や現象に関しては特段の記述無し
Google Cloud Networking
Google Cloud Networking Incident #18012
GOOGLE CLOUD LOAD BALANCINGが502を返す問題は完全に解決されました。
インシデントは2018年07月18日(木) 04:15~05:23の間継続しました。
orangeitems注:経緯の中に重要な文章がありました。他のサービスの障害は、グローバルロードバランサーの問題から波及しているように読み取れました。
Googleでは、AppEngine、Stackdriver、Dialogflow、さらにはお客様のグローバルロードバランサを含む多くのサービスで、GOOGLE CLOUD LOAD BALANCINGが502を返す問題を調査しています。
Google Stackdriver
Google Stackdriver Incident #18008
インシデントは2018年07月17日(水) 17:52~18:46の間継続しました。
※経緯を見ると、レイテンシーが悪化したような書かれ方です。
※他の問題とは別の話かもしれません。
Google Stackdriver Incident #18009
インシデントは2018年07月18日(木) 04:15~05:23の間継続しました。
以下の問題が発生していた模様です。
Googleは、Google Stackdriverの問題を調査しています。影響を受ける顧客は、stackdriver.com、クラウドコンソール、およびAPIを介して、すべてのStackdriverサービスにアクセスすることができません。
Google Cloud Support
Google Cloud Support Incident #18002
サポートセンターにアクセスできない。
インシデントは2018年07月18日(木) 04:30~05:10の間継続しました。
※原因や現象に関しては特段の記述無し
※多分に障害発生のためパンクしたのではないかと思われる
考察
全体を眺めると、ロードバランサーが502を返す現象が起点だったように読めます。ほとんどのサービスで使っていると思いますので、多数のプロダクトに問題が発生したのもうなづけます。地球規模でWEBサービスが影響を受けるのもクラウドならではですが、日本ではまだ深夜だったのでそんなに騒ぎになりませんでしたね。
AWSだったら、ELB(ALB)がこうなったらどうなったか・・・考えるのはやめます。。
続報あれば追記していきます。
追記(2018/7/23)
本件、Googleより報告書が公開されています。
https://status.cloud.google.com/incident/cloud-networking/18012
日本語にて、解説記事も出ています。
Google Cloud Load Balancerの障害、原因は新機能に含まれていたバグ。テスト時も導入時にも発見できず - Publickey
Google Cloudの障害レポートを読んだ - jtwp470’s blog
GCPって、どこのデータセンターのロードバランサーから拾っても、ユーザーのインスタンスは抽象化されているんですね。これは便利なように見えて、今回のように一か所バグがあると全世界で止まるという脆弱性のようにも見えます。
GFEを分割して障害が起きたとしても一定の範囲に収まるような対策も実行予定
とあるんですが、もともとなぜそうしておかなかったのか、これが「設計時に組み込んでしまう脆弱性」にあたると思います。Googleでもやってしまうのですから、インフラ技術者は事例として知っておくべきかと思います。
共有部分で、一か所停止すると全サービス停止するようなポイントは、できるだけ分割しておかなければいけません。この点については、また別記事を書きたいと思います。
Google Cloud Platform エンタープライズ設計ガイド