Amazonプライムデーのサーバ障害、AmazonがOracleからAurora DBに乗り換えたのが原因ではない。Amazon CTOがCNBCの報道を否定

2018年10月26日


Amazon.comが毎年開催するバーゲンセール「Amazonプライムデー」では、大量のトラフィックがAmazonのWebサイトに押し寄せます。今年7月に開催されたAmazonプライムデーではそのために一部のWebサイトで障害が発生し、アクセスが遅くなったことが報告されました。

この障害の原因は、Amazonが内部データベースをOracleからAWSのデータベースサービスであるAmazon Aurora PostgreSQLに移行したことが原因だと、米CNBCが10月24日付けで報道しています。

fig

CNBCはAmazon.comの社内で作成された障害報告書を入手。そこには、OracleとPostgreSQLにおけるセーブポイントの違いが障害の原因だと記述されていると、次のように説明しています。

Savepoints are an important database tool for tracking and recovering individual transactions. On Prime Day, an excessive number of savepoints was created, and Amazon's Aurora software wasn't able to handle the pressure, slowing down the overall database performance, the report said.

セーブポイントは、トランザクションの追跡や復旧のための重要なデータベースツールである。プライムデーのときにはセーブポイントが大量に作成されたことで、Amazon Aurora PostgreSQLはそのあまりの負荷にデータベースの処理全体が遅くなってしまったと、報告書に記述されている。

Amazonは2020年までに内部データベースの脱Oracle化を実現すると報道されていますが、それに暗雲が立ちこめているという論調です。

原因はデータベースではなくアプリケーション側だと、Amazon CTOのVogels氏

しかしAmazon.com CTOのWerner Vogels氏は、このCNBCの報道を「くだらないミスリーディングな記事だ」と真っ向から否定しました。

Vogels氏はTwitterで長文を公開するためにわざわざ文書を画像にしてツイートしています。冒頭の一部を翻訳し、引用しましょう。

まず最初に明確にしておきたいのは、AWSとAuroraはAmazonプライムデーの障害にまったく関係ないということだ。プライムデーのWebサイトの障害はAmazonリテール側のソフトウェアスタックの問題に起因するのだ。

Vogels氏も当然ながらAmazon.com社内の報告書を見ています。その上で、障害の原因はセーブポイントにあったものの、それはアプリケーションに起因しており、アプリケーションを修正することで解決したと説明。

The application in question accidentally created an excessive number of savepoints, despite that team knowing that Aurora and Oracle handle savepoints differently. This created a temporary situation where the database was very slow and the application experienced intermittent timeouts. The problrem was quickly diagnosed and completely resolved by simply removing the unnecessary savepoints that had been inadvertently left in the retail application.

チームはAuroraとOracleがセーブポイントを異なる方法で処理することを知っていたにもかかわらず、問題となるアプリケーションは大量のセーブポイントを作成してしまった。これによって一時的にデータベースは非常に遅くなり、アプリケーションは断続的なタイムアウトを発生するようになったのだ。
しかしこの問題はすぐに解明され、リテールのアプリケーションが原因で不用意に残ってしまったセーブポイントを削除するだけで完全に解決された。

AWSは、AuroraがOracleと同等以上の性能を備えたデータベースであるとつねに主張してきました。OracleからAuroraに乗り越えたことで処理能力が不足し障害の原因になった、という報道に対して敏感になるのは当然でしょう。

では、CNBCの報道とVogels氏の発言、どちらが正しいのでしょうか。

データベース専門家の意見をCNBCは受け入れなかった

ここで第三者が登場します。カーネギーメロン大学でデータベーステクノロジーの助教授(Assistant Professor of Databaseology)を務めるAndy Pavlo氏です。

2週間ほど前、CNBCは障害報告書の内容を分析するために何人かのデータベース専門家に接触し、Pavlo氏もその一人だったとのこと。このとき、Pavlo氏はCNBCに対してOracleとPostgreSQLのセーブポイントの扱いが違うのは重要な点ではないと返答したら記者がぶち切れたとツイートしています。

Pavlo氏はCNBCから障害報告書を受け取り、それを読んだ上で記者に「OracleとPostgreSQLのセーブポイントの扱いに重要な違いはない」(there is not significant difference about how Oracle does SAVEPOINTs versus Postgres.)と回答。

するとCNBCの記者は朝6時に電話を掛けてきて、嘘つきだ、Amazonから金をもらってるんだろうと、Pavlo氏を非難してそれを受け入れなかったと。

どうやらCNBCの記者は記事をOracleとAWSが絡んだセンセーショナルなものにしたかったようです。

Pavlo氏は、「So I agree with @Werner」(Werner Vogels氏に同意する)としています。

このエントリーをはてなブックマークに追加
follow us in feedly


≫次の記事
Javaはなぜ変わらなくてはならなかったのか。JavaOne改め「Oracle CodeOne」の基調講演で語られた理由。Oracle CodeOne 2018

≪前の記事
Angular 7正式版リリース。バーチャルスクロール、ドラッグ&ドロップのサポートなど、6カ月ぶりのメジャーバージョンアップ


カテゴリ



Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



新着記事 10本


PR - Books


fig

fig

fig