顧客のためのサービス、Amazonが目指すゴールはただそれだけ~AWS副社長に聞くデータベース戦略


AWS データベースサービス部門 バイスプレジデントのラジュ・グラバニ氏

 2006年にサービスをスタートしてから6年が経過したAmazon.comのクラウドサービス「Amazon Web Services(以下、AWS)」。ローンチ当初、「本屋がITサービスに参入!?」と驚きの声も聞かれたが、いまや誰もが認める世界トップのクラウドカンパニーであり、その強さは競合他社を完全に圧倒する。AWSが新しくサービスを発表するたびにライバルが追随するというサイクルがお約束のように繰り返されるが、同じ土俵でAWSをしのぐことは難しい。スタートアップ企業から世界的大企業まで、AWSに多くのITサービスを委ねている企業の数は増える一方だ。

 AWSではさまざまなメニューが用意されているが、ここ最近は特にデータベース関連サービスの拡充が目立つ。例えばリレーショナルデータベース環境をクラウドで提供する「Amazon Relational Database Service(Amazon RDS)」においては、MySQL、Oracle Databaseに加え、5月から新たにWindows SQL Serverがラインアップされている。また、昨今のビッグデータブームもあり、1月にリリースしたNoSQLデータベース「Amazon DynamoDB」への注目度も高く、すでに多くの企業から導入事例が発表されている。

 今回、AWSでデータベースサービス部門のバイスプレジデントを務めるラジュ・グラバニ(Raju Gulabani)氏にインタビューする機会を得たので、AWSのデータベース戦略およびAWSのクラウド事業における強さについてお話を伺ってみた。

 

Amazon RDS - RDBMSの運用管理の手間からユーザーを解放するマネージドサービス

AWSが提供しているデータベースサービス
Amazon RDS

――AWSはデータベースサービスとして、リレーショナルデータベースのマネージド環境「Amazon RDS」と、NoSQLサービスの「Amazon DynamoDB」という、大きく2つのサービスを提供していますが、それぞれの概要を説明していただけますでしょうか。まずはAmazon RDSについてお願いします。

グラバニ氏
 2009年にAmazon RDSを立ち上げたときから「顧客が使っているデータベース環境をクラウド上でも同じように利用できる」というキャッチフレーズは変わっていません。クラウド上でデータベースを利用できれば、顧客はパッチ当てやマイグレーション、ハードウェア管理といった運用の手間から解放され、アプリケーション開発に注力することができます。Amazon RDSによりデータベース管理に充てていた時間を70%以上短縮できたという顧客からの声もあります。

――オンプレミスと同じように利用できることをうたうのであれば、拡張性や信頼性に関しても担保する必要が生じますが、その辺はいかがでしょうか。

グラバニ氏
 もちろんです。Amazon RDSは「完全なマネージドサービス」を掲げていますが、独自の特徴として大きく2つのポイントを挙げることができます。

 ひとつは“プッシュボタンスケーラビリティ”、つまりボタンをクリックするだけで自在にスケールできる柔軟性の高さです。

 スケールアウト(拡張)だけでなくスケールダウン(縮小)にも対応します。APIの呼び出しは1回だけで済むのです。スモールスタートで開始して徐々に規模を大きくしたい、キャンペーン期間が終わったのでサイトを縮小したい、というどちらのニーズにも、ボタンひとつで実現できる。これほどシンプルかつ容易にスケールすることは、オンプレミスのデータセンターではまず無理でしょう。またピーク時に合わせた設計はハードウェアの無駄な投資を招きます。コスト効率という面でも理にかなったサービスだといえます。

 2つ目は“Multi-AZデプロイ”で実現している高可用性です。AWSは世界8カ所のリージョンにデータセンターをもっていますが、各リージョンは複数のAZ(Availability Zone)で構成されています。

 Amazon RDSにおけるMulti-AZデプロイとは、リージョン内のほかのAZにデータベースのレプリカを置いておく機能で、これをonにすることでフォルトトレラント構成にすることができます。つまりプライマリがあるAZとは別のAZにスタンバイが構築されるわけです。プライマリに変更が生じると、スタンバイにも(ほぼ)完全に同期して書き込まれます。

 またプライマリがダウンした場合は自動的にスタンバイがプライマリに切り替わり、別のAZに新たなスタンバイが立ち上がります。ひとつのAZに事故があっても別のAZがカバーすることで、確実なフェイルオーバーを実現しています。


ワールドワイドに8つのリージョンを展開。個々のリージョンに複数のAZ(Availability Zone)を用意している

――クラウドのデータベースサービスではパフォーマンスも大きな差別化ポイントになると思いますが、どのように担保されているのでしょうか。

グラバニ氏
 AWSには「Amazon ElastiCache」というWebサービスがあります。ElastiCacheは一般的な分散キャッシュシステムであるmemcachedに準拠しており、Amazon RDSで併用することで、インメモリキャッシュ技術による高いパフォーマンスを得ることができます。

 Webアプリケーションの場合、書き込みより読み込みの量のほうが圧倒的に多い。それならばアプリケーションからデータベースにアクセスする際、高い頻度で読み込まれるデータをキャッシュに置いておくことで読み込みのパフォーマンスを大きく上げることができ、ひいてはデータベースのパフォーマンスを向上させることができます。このインメモリキャッシュ機能がElastiCacheで、その名の通り、キャッシュノードのスケールも簡単に行えます。

 もうひとつ、Amazon RDSが提供している機能として「リードレプリカ(Read Replica)」を上げることができます。先ほども言いましたが、Webアプリケーションでは読み込みのスループットを向上させたいというニーズが非常に大きい。そのニーズに応えるため、読み込み専用のレプリカを複数作成し、分散処理させる機能を2010年から追加しました。

 これにより読み込みのパフォーマンスは大きく向上しました。リードレプリカもニーズに応じて自動的にプロビジョニングすることが可能です。ただしレプリカの更新は非同期となるため、ソースとなるデータベースとは常に完全に同期するわけではありません。

――Amazon RDSがスタートした当初は対応するエンジンはMySQLだけでしたが、2011年にはOracle Database、そして今年5月にはSQL Serverに対応されていますね。今後も対応データベースを増やしていく予定はあるのでしょうか。例えばIBM DB2やPostgreSQLなどは?

グラバニ氏
 AWSだけでなくAmazonが提供するすべてのサービスに共通して言えることがあります。それは「常に顧客の声を聞く」というものです。われわれが見るのは競合ではなく顧客だけです。Oracle Databaseのサポートは日本の顧客の強い要望により実現しました。もしその他のデータベースエンジンのサポートを望む顧客の声が強くなれば、もちろん対応していくつもりです。たしかに最近はPostgreSQLの人気は高いですね。今後、対応を検討していくことも十分あり得ます。

 

Amazon DynamoDB-ただスケールすることだけにフォーカスしたNoSQLサービス

Amazon DynamoDB

――今年2月にリリースしたNoSQLデータベースの「Amazon DynamoDB」についてお聞かせください。まずはDynamoDBの特徴を説明していただけるでしょうか。

グラバニ氏
 一言で言うなら、DynamoDBはビッグデータのために設計された技術です。ご存じの通り、より多くのユーザーがオンラインになり、より多くのデバイスがつながるようになり、より多くのデータが毎秒大量に生成されるようになりました。また、世界的なオンライン/ソーシャルゲームの隆盛も爆発的なデータの増加に大きくかかわっています。

 ビッグデータへの流れはこれからもさらに加速します。となればアプリケーションサーバーとデータベースはスケールすることが何より求められる。特にデータベースのスケールアウトは重要です。

 データが増えていくことがわかっているのに対応できないデータベースは時限爆弾のようなもので、必ず限界を迎える。そうなればアプリケーションサーバーも道連れとなり、サイト自体がダウンに追い込まれる。そこで発生する損害を考えれば、いかにスケールするデータベースが重要かがわかるでしょう。

 DynamoDBはとにかく“スケールする”というその点だけにフォーカスしたNoSQLのマネージドサービスです。論理的には無限のデータを格納できますが、スループットは顧客側で指定することでキャパシティを担保しています。また低レイテンシを実現するため、データストアにはSSDを使っています。つまりどんなに大量のデータを扱う場合でも、高速で予測可能なパフォーマンスを得られるわけです。

――スケールすることが最も重要とのことですが、RDSと同様に簡単にできる設計になっているのでしょうか。

グラバニ氏
 もちろんです。はじめはスモールスタートで、例えば10GBくらいから開始し、ユーザーやアクセスが増えてきたら、APIを1回呼び出すだけで簡単に200GB、あるいは1TBにでもスケールできます。

 スループットのキャパシティも100件から数十万件まで、好きに設定できます。顧客はただ数字を入れ替えるだけでいいのです。もちろんスケールダウンも同様に可能です。

――DynamoDBがスケールにこだわるのは、やはり顧客からの声を受けてのことなのでしょうか。

グラバニ氏
 そうですね、この場合の顧客はわれわれの親会社であるAmazonになります。

 2004年、ショッピングシーズンを迎えたAmazonから「通常のRDBMSではスケーラビリティが不十分。ピーク時のトラフィックを支えられるくらい拡張してほしい。もちろん可用性も重要」という要望が上がってきました。これを受けてわれわれのCTOであるヴァーナー(Werner Vogels博士)が考案した技術が「Dynamo」です。DynamoDBはこのDynamoをベースにしています。

 Dynamoは2005年からソフトウェアとしてAmazon社内で使われ始めました。そのうち、インフラ管理者や開発者から「Dynamoはすばらしいソフトウェアだけど、ハードの管理や運用をわれわれでするのは面倒すぎる」という声が上がるようになりました。

 そこでAWSでサービスを提供することになったのです。Amazonへのサービス提供で、われわれはスケーラビリティの重要性を心底学びました。そしてDynamoの運用経験で学んだすべてをDynamoDBにつぎ込んでいます。

――サービス開始から半年も経過していないのに、導入事例も数多く発表されていますね。
グラバニ氏
 DynamoDBはAWSの歴史の中でも最も急速に成長しているサービスです。おそらくビッグデータの広がり方とシンクロナイズしているのではないでしょうか。日本でも、gumiや講談社などですばらしい事例が発表されています。gumiはDynamoDBだけですべてのデータをマネージした新しいゲーム「ファルキューレの紋章」を展開しています。また、講談社ではNoSQLのDynamoDBとリレーショナルのAmazonRDSを組み合わせ、デジタルコンテンツ提供のためのプラットフォームを構築しています。

――講談社の事例ではDynamoDBとRDSが共存して使われていますが、NoSQLとRDBMSの使い分けはどのように行うとよいのでしょうか。

グラバニ氏
 顧客が重要としている内容によります。例えばクエリがすごく必要で、トランザクションが重要であるならRDBMSのほうが向いています。一方で、gumiのソーシャルゲームのように、何よりもスケーラビリティが重要なサービスであればNoSQLは欠かせないはずです。

――ビッグデータブームに伴い、ほかのNoSQLデータベース、例えばMongoDBやApache Cassandraの人気も高まっています。すでにある程度のシェアを得ているプロダクトがある中、あえてNoSQL製品を提供した理由を教えていただけますか。

グラバニ氏
 われわれは彼らを競合とは見ていません。DynamoDBは製品というよりサービスです。AWSの使命は顧客に選択肢を提供することです。したがって、顧客がMongoDBやCassandraを選びたいのであればそれでかまいません。顧客が必要とするあらゆるデータベースサービスを届けること、DynamoDBはその一環で生まれたものであり、他社に追いつくための戦略ではないからです。

――では最近注目度の高い「SAP HANA」などのインメモリデータベースに関してはどう見られているでしょうか。SAPは今年の「SAPPHIRE NOW 2012」において、HANAのインスタンスをAWS上で無償で利用できるプランを発表していますが。

グラバニ氏
 SAPはわれわれにとって重要なパートナーで、今後も連携は強めていく方針です。ただし、われわれ自身がインメモリデータベースを手がけるかというと、それは可能性が低いかもしれません。なぜなら既存のデータベースをキャッシュとして使ったり、またはElastiCacheやDynamoDBのSSD採用など、現在のキャッシング技術で低レイテンシと高速性が高いレベルで実現しているので、特にインメモリデータベースを必要としていないからです。もちろん、今後のインメモリ技術の発展については注意深く見守っていくつもりです。

 

競合ではなく顧客を見る、それがAmazonの強さ

――最後にクラウドベンダとしてのAWSの強みについて聞かせてください。AWSの成功に倣おうと、数多くのベンダが似たようなサービスを発表していますが、なかなかAWSに追いつくことは難しいようです。個人的にはAWSが提供するサービスの内容は、非常にシンプルで、それほど他社が提供することも難しくないように思えるのですが、なぜAWSにしかできないことが多いのでしょうか。

グラバニ氏
 まさにあなたが言われた通り、AWSのサービスはごくシンプルなものです。そしてそれは「顧客の声を反映」しているからなのです。

 先ほども言いましたが、Amazonは顧客の声しか聞いていません。これはわれわれのCEOであるジェフ・ベゾス(Jeff Bezos氏)がいつも言っていることでもあり、その精神がAmazonが展開する全サービスに投影されているのです。われわれがリリースするサービスは顧客のためだけに考案されたものであり、顧客の問題を解決する以外に存在価値をもちません。他社製品に勝つとか、市場でどのくらいのシェアを取るとか、はっきり言ってあまり関心がないですね。

 もうひとつ、われわれが重要視していること。それはサービスを提供するスピードです。例えばAmazon RDSに関していえば、わずか1年の間にリードレプリカのVPC提供、プライスダウン、無償トライアル版の提供、Oracle DatabaseのMulti-AZ、そしSQL Serverへの対応と、次々と展開してきました。顧客のニーズに対してスピード感をもって応える、これがAWSが顧客から支持されている大きな理由のひとつだと思います。

――パブリッククラウドベンダとして圧倒的な強さを見せるAWSが、次はプライベートクラウド事業にも乗り出すのではないかといううわさもよく聞きます。こういった意見に対してはどのように思われますか。

グラバニ氏
 先ほどと同じ回答です。パブリックだろうがプライベートだろうが、他社やメディアがAWSをどう表現しようとわれわれはまったく気にしません。われわれが提供するサービスは、顧客が必要とするものだけであり、それが現在のプライベートクラウドという範囲にある技術ならそう呼べるのかもしれません。それはご自由に表現していただければと思います(笑)。

 ジェフの言葉をひとつ引用しましょう。「クラウドコンピューティングはまだ1日目が始まったばかりである。われわれがこれからやるべきことはまだ多い。サービスを提供する上で重要視することは、フレキシビリティと選択肢」――。われわれはこの言葉通り、これからも顧客のニーズを反映したサービスを展開していくだけです。

関連情報