Amazon CTOに聞く、NoSQLデータベース「DynamoDB」がクラウドに何をもたらすのか?
Amazon Web Serviceが提供する、SSD上に構築された高速でスケーラブルなNoSQLデータベース「Amazon DynamoDB」が、東京データセンターでも利用可能になりました。
DynamoDBは、単にNoSQLの持つ高いスケーラビリティを提供するだけではなく、一貫性の制御が可能で、必要なスループット性能も自由に設定できるなど、従来のNoSQLとは一線を画す高性能を、メンテナンスなどの管理の手間をまったく必要とせずに提供するサービスです(関連記事「Amazonクラウド、SSD上の新NoSQLデータベース「DynamoDB」を公開。性能をダイナミックに上げ下げ可能」)。
このDynamoDBの開発経緯や技術について、Amazonのバイスプレジデント兼最高技術責任者(CTO) ヴァーナー・ボーゲルズ(Werner Vogels)氏に、テレビ会議を通じてインタビューを行いました。
DynamoDBは何を想定して開発されたのか
─── DynamoDBの開発経緯を教えてください。
ボーゲルズ氏 Amazonでも以前はリレーショナルデータベースを利用してきた。しかしリレーショナルデータベースはスケーラビリティに限界があった。
スケーラビリティを高めるには2つの方向しかない。スケールアップするか、スケールアウトするかだ。しかしリレーショナルデータベースでスケールアップするには高価なハードウェアが必要となり、一方でスケールアウトすると管理が複雑になる。
そこでAmazonは、データベースの構造をもっとシンプルにすることでスケールするデータベースが実現可能だと気づいたのだ。それが(DynamoDBの前身である)Dynamoの開発につながった。この技術はAmazonのショッピングカートなどに使われることになる。
そしてAmazonの10年から15年にわたるスケーラブルなシステムの経験を活かして開発されたのが今回のDynamoDBだ。
Kindle FireのバックエンドもDynamoDBになっているが、すぐに能力を拡張できるため、昨年のクリスマスも問題なく乗り越えることができた。
─── DynamoDBは、どんなユースケースを想定して開発されたのでしょうか。
ボーゲルズ氏 DynamoDBは、高速でスケーラブル、性能をあらかじめ設定でき、フォールトトレラントで管理者が不要というのが特徴だ。ユースケースもこれに沿ったもので、Webアプリケーションやソーシャルゲーム、モバイルサイトなどが挙げられる。
また、エンタープライズ分野からも注目されている。リレーショナルデータベースは管理者を必要とするが、DynamoDBでは管理業務は不要だからだ。
ビッグデータの領域でも、無限のスケーラビリティと高速性が活きるだろう。Hadoopの機能を提供するAmazon Elastic MapReduceとも統合されており、大量のデータの分析が可能だ。
SSDの接続方法は? 言えない
─── DynamoDBの中で特に興味深いのは、性能をあらかじめ設定できることです。これはどんなテクノロジーによって実現されているのですか?
ボーゲルズ氏 手短にいえばレプリケーションのテクニックを使っている。データのレプリケーションを複数にすることで信頼性を向上させるだけでなく、特別なアルゴリズムによって複数のインスタンスにデータを分散することでリード/ライト性能の制御にも使っている。
SSDを利用していることも重要な要素だ。HDDはシーケンシャルアクセスの性能は高いがランダムアクセス性能は低い。データベースのワークロードで性能を制御しようとすると、ランダムアクセスに強いSSDが必要となる。
─── SSDはSATAで接続されているのでしょうか? あるいはFusion-ioのようにPCIe経由で接続されているのでしょうか?
ボーゲルズ氏 詳細は申し訳ないが言えない。(SATAか? PCIeか?の問いに)単にSSDだ(「Just SSD.」とやや余裕の笑みで)。
─── DynamoDBの登場でデータベースの使い方は変わっていくのでしょうか?
ボーゲルズ氏 これまでは、非常に優秀なエンジニアがデータベースの運用管理のために工数を使っていた。しかしDynamoDBでは管理者が不要になるため、優秀なエンジニアはよりよい製品を作ることにフォーカスできるようになるだろう。
またDynamoDBが備える性能を設定できる機能は、アプリケーションのアーキテクチャをいままで以上にシンプルにするだろう。というのも、これまではデータベースが性能のボトルネックになることを防ぐために、キャッシュなどの余計なレイヤをシステムの中に加えなければならなかったが、DynamoDBではリード/ライトの性能をあらかじめ設定できるため、それらは不要になる。
─── リレーショナルデータベースも高速でスケーラブルに進化していますが、いくらリレーショナルデータベースが進化してもNoSQLには追いつかないとお考えですか?
ボーゲルズ氏 両者は目的が異なるものだと考えている。リレーショナルデータベースは引き続き、コアな部分でデータを管理するツールとして使われていくだろう。しかしシンプルなデータ構造で、よりスケーラブルなニーズがある場面ではNoSQLが使われていくはずだ。
両者の良い部分を組み合わせることで、よりパワフルなシステムが作れると考えている。
Amazonはなぜ標準化団体に参加しないのか?
─── 最後の質問はDynamoDBとは関係ないのですが、Amazon CTOに以前からぜひ聞いてみたかったことを質問させてください。Amazonは以前からW3CやDMTFやSNIAなど、標準化団体にほとんど参加していません。これはどんな考えがあってのことなのでしょうか?
ボーゲルズ氏 クラウドの領域ではまだ標準化は早いと考えている。あまりにも早い段階での標準化はイノベーションを阻害するからだ。顧客から弊社への要望も、よりイノベーションにフォーカスしてほしい、というものだと理解している。
重要なのは、顧客が方向性をリードすることであって、例えば今回のDynamoDBも、顧客からのスケーラブルでメンテナンスが不要なデータベースがほしいという要望に応えたものだ。クラウドで世界が変わっていく、その中でまずはイノベーションにフォーカスしている。標準はそのあとからやってくるのだと考えている。
あわせて読みたい
「クラウドデザインパターン」をAmazonが公開。システム冗長化、突発的トラフィック対応、動的コンテンツ処理など45種類
≪前の記事
連載マンガ:Mr. Admin シスアドのダイエット方法とは?