先日のS3の障害報告の翻訳

4/12(水)におきたS3の障害について日本語の情報がこれくらいしか見つからなかったので、Service Health Dashboardにあった障害報告を翻訳してみた。
誤字脱字誤訳があれば随時コメントください。


4/17 追記
誤訳を訂正しました。 irohirokiさん、ありがとうございます。

Issue listing buckets

We just wanted to provide a little more information on the List-Buckets API issue yesterday morning. From 1:39AM PDT to 5:39 AM PDT yesterday morning, calls to the List-Buckets API returned incomplete results. The List-Buckets API calls completed successfully, but in many cases, the results only included a subset of the customers buckets. This caused the AWS Management Console to show an incomplete list of buckets or indicate there were no buckets at all. Note that during this event all Amazon S3 buckets were still online, calls to GET, PUT, and DELETE were operating normally, and no customer data was lost.

我々は昨日の朝におきたList-Buckets APIの問題について、もう少し情報を提供したいと思う。昨日の朝、1:39AM PDT〜5:39 AM PDTの間に、List-Buckets APIの呼び出しが不完全な戻り値を返していた。List-Buckets APIの呼び出しは完全に成功していたが、多くの場合、戻り値は顧客のバケットのサブセットだけを含んでいた。このことでAWS Management Consoleは不完全なバケットのリストを表示するか、全くバケットがないように見える状態になった。この障害の間、すべてのアマゾンのバケットはまだオンラインであったことに注意してほしい。GET、PUT、DELETEは通常どおり操作できたし、顧客のデータが失われたこともなかった。

The cause of this event was a software update. Last week wed deployed a software update to a subset of data centers in each region as part of a staged deployment. Over the last week we encountered no issues. Monday night, we completed the world wide deployment. This deployment included a change to the internal mechanism S3 uses to list bucket metadata. This internal mechanism is used in many places including the process that synchronizes metadata between our primary bucket index and the secondary index that supports the List-Buckets API. Last night we encountered an unexpected error condition that caused the internal mechanism for listing bucket metadata to return a partial set of results to the synchronization process. The synchronization process updated the secondary index based on the partial results and incorrectly removed the buckets that were not included. Subsequent calls to the List-Buckets API then returned incomplete results. We fixed the incomplete results issue by repopulating the secondary index, which was completed at 5:39 AM PDT on Tuesday. At this point, the List-Buckets API was returning the complete results and we began rolling back the defective software update worldwide. This roll back was completed at 7:00AM PDT.

この出来事の原因はソフトウェアアップデートにあった。先週(訳注:水曜日?)、段階的なデプロイのひとつとして、それぞれのリージョンのデータセンターの一部にソフトウェアアップデートがデプロイされた。先週、段階的なデプロイのひとつとして、それぞれのリージョンのデータセンターの一部にソフトウェアアップデートをデプロイした。先週はその後、何の問題も起きなかった。月曜日の夜、我々は世界的にデプロイを完了した。このデプロイは、S3のバケットメタデータのリストアップについての、内部的なメカニズムの変更を含んでいた。この内部メカニズムは、 List-Buckets API用のプライマリインデックスとセカンダリバケツインデックスのメタデータを同期する処理を含む、多くの場所で使用される。昨夜我々は、バケットメタデータリストアップ処理が引き起こした、同期処理の一部結果の予期しないエラー状態に遭遇した。(訳注:わけかわめで申し訳ない)昨夜我々は予期しなかったエラー条件に遭遇し、それによってバケットメタデータ列挙の内部メカニズムが同期処理に結果の一部分しか返さないようになっていた。同期処理はその一部結果に基づいセカンダリインデックスを更新し、間違って含まれていなかったバケットを削除してしまった。その結果、List-Buckets APIの呼び出しは不完全な戻り値を返すようになった。我々はセカンダリインデックスを再複製することで問題を修正し、火曜日の5:39 AM PDTに修正が完了した。この時点でList-Buckets APIは完全な戻り値を返すようになり、我々は欠陥のあるソフトウェアアップデートをロールバックし始めた。ロールバックは7:00AM PDTに完了した。

We tested this change before we began the deployment, but clearly missed this case. We wont deploy another change until weve extended our testing and alarming to ensure weve covered this and related cases. We will also change our synchronization process to halt and alarm if it appears that theres been a large, sudden decrease in the number of buckets, as this is a highly unusual case. We apologize for any inconvenience or confusion that resulted from this event.

我々はデプロイする前にこの変更をテストしたが、完全に失敗してしまった完全にこのケースを見落としていた。我々は、テストを拡張し関連するケースを確実に警戒できるようになるまで、他の変更をデプロイする。(訳注:よくわからなかった…)また、非常に珍しいケースだが、バケットの数が大きく急に少なく表示された場合、同期処理は停止しアラートを投げるように変更する。我々はテストと警報を拡張し、本件および関連するケースをカバーしたことを確信するまで他の変更をデプロイしない。我々はまた、バケット数に大きな突然の減少があったら同期処理を停止し警報を発するようにする、なぜならそれは到底普通ではないケースだからだ。この問題で、迷惑や混乱を起こして申し訳ない。