雑好き置き場

好きな物を雑に投げるよ

AWS障害について

Twitterで知ったのですが、AWS障害というものが起こったらしいです。

具体的には下記のサービスに問題が発生しているようです。1
Amazon Elastic Compute Cloud (Tokyo)
Amazon Relational Database Service (Tokyo)

Amazon Elastic Compute Cloudはその頭文字を取ってECC -> EC * 2 -> EC2と呼ばれています。
このサービスは仮想のコンピュータ自体を提供しているため大きな影響が出ています。
コンピュータが無ければバグとか不具合とか以前の問題ですからね。

ソーシャルゲーム等はEC2を利用している所も多く困ったことになっているようです。2

以下はインフラ構築の知識がほとんど無い人が適当に調べて書いたことなので間違ってるかもしれません。

今回の問題はAP-NORTHEAST-1リージョンの単一のAvailability Zoneで発生したそうです。
Availability Zone(AZ)って何だろと思って調べてみた所、データセンターの識別子のようです。3
単一のAZで発生したってことは1つのデータセンターでのみ問題が発生した。ということですね。

なんで地名とか分かりやすい名前で呼ばないかというと、どのデータセンターにどのデータが置いてあるか分かってしまうことが脆弱性だからです。
ゲームの自分のデータが置いてあるデータセンターが分かってしまうと、忍び込んでデータを書き換える人が出てくるかもしれません。
もっと分かりやすく嫌いな人のデータの入ったコンピュータを壊すかもしれません。

停止したサービスは1つのデータセンターに依存してしまっていたんでしょうか。
今回の場合は2つ以上のAZに冗長化させていれば回避できたのでしょうか。

AWSの可用性のチュートリアル を簡単に読んだ感じだとElastic Load Balancing(ELB)つまりロードバランサで各AZに振り分けるので、 単一のAZに障害が出た場合ELBから障害の出ているAZを一時的に除外して他のAZのインスタンス数を増加させれば良いように感じます。
実際やったことはないので各作業の反映される時間は全く分かりませんが。

ゲームの場合EC2の置くのはAPIサーバでしょうからAZに分散させても同じデータベース(DB)に記録できるのなら問題は少なそう。
しかし、Relational Database Service(RDS)も障害が出ている。 こちらもMulti-AZ配置 する必要がありそう。

うーん、構成が複雑になると全部のサービスでMulti-AZ構成組まなきゃダメなんだろうか。
これによって得られる可用性と追加料金、今回のサービス停止の損失。測れない数値もいっぱいあるので大変ですよね。