Amazonクラウド、SSD上の新NoSQLデータベース「DynamoDB」を公開。性能をダイナミックに上げ下げ可能

2012年1月19日

「DynamoDBは、15年にわたる大規模なNoSQLデータベースとクラウドサービスから学んだことの集大成だ」(DynamoDB is the result of 15 years of learning in the areas of large scale non-relational databases and cloud services.)。Amazon Web Serviceが新サービスとしてβ公開したDynamoDBについて、Amazon.comのCTOであるWerner Vogels氏は自身のブログAll Things Distributedのエントリ「Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications」の冒頭で、このように力の入った紹介をしました。

Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications - All Things Distributed

大規模システムでもっともボトルネックになりやすいのはデータベースです。その解決策のひとつとして数年前から注目されているのが、ある程度一貫性を犠牲にしてスケーラビリティや高速性を実現するアーキテクチャを備えたNoSQLデータベースでした。

Amazonクラウドでは以前からスケーラブルで高速なNoSQLデータベースとしてSimpleDBが提供されていました。今回登場したDynamoDBはどこが違うのでしょうか? Werner氏はブログでSimpleDBの課題だったポイントを挙げています。

  • SimpleDBでは、Domainと呼ばれるデータセットの管理領域があり、そこに10GBという制限があった。
  • SimpleDBでは、データが大規模化するとインデックスがメモリに乗り切らなくなるケースがあり、急に性能が落ちる可能性があった。
  • SimpleDBはデータの一貫性にEventually Consistent(結果整合性)を当初採用しており、これは強い一貫性を持つリレーショナルデータベースに慣れたエンジニアにとって分かりにくかった(途中から強い一貫性も追加)。
  • SimpleDBはマシン時間ごとの課金体系だが、実際に料金がいくらになるのか分かりにくかった。

SimpleDBのこれらの課題を解決し、もっともスケーラブルで性能の見通しが可能なNoSQLデータベースを実現することを目指そうとすると、SimpleDBのAPIの改善では難しいことが分かったため、DynamoDBという新サービスの登場になったとのことです。

性能を自由に上げ下げでき、柔軟なスキーマ、一貫性も選べる

DynamoDBの特徴を3分で説明したビデオでは、性能を自由に選べること、データの保存にはハードディスクではなくSSDが使われていることなどが紹介されています。

fig DynamoDBはダイヤルを回すように性能を上げたり下げたりできる
fig データの保存にはSSDを使い高速性を実現

性能について、Amazon Web Services ブログのエントリ「【AWS発表】 Amazon DynamoDB - インターネット時代のアプリケーションのために設計された高速でスケーラブルなNoSQLデータストレージ」でも次のように説明されています。

DynamoDBのテーブルを作成する際、どれくらいの読込みと書込みが必要か設定できます。AWSが裏側で、ミリ秒レベルの低遅延を維持しつつ、そのニーズにこたえられるように全てをセットアップします。もし後から設定を変更したければ、そのスループット設定を変更して、上げ下げすれば良いのです。

この変更はオンライン状態のまま可能。DynamoDBにはコンフィグレーションやチューニングやバックアップといったデータベース管理は不要でになっています。データは複数のゾーンで保存されているとのこと。

スキーマや一貫性については次のように説明されています。

DynamoDB tables do not have a fixed schema but instead allow each data item to have any number of attributes, including multi-valued attributes. Developers can optionally use stronger consistency models when accessing the database, trading off some performance and availability for a simpler model. They can also take advantage of the atomic increment/decrement functionality of DynamoDB for counters.

DynamoDBのテーブルは固定されたスキーマを持たず、その代わりにそれぞれのデータアイテムはマルチバリュー属性を含む任意の数の属性を持てます。デベロッパーはオプションとしてデータベースへのアクセスに強い一貫性を持たせることができ、性能と可用性をシンプルな形でトレードオフできます。またカウンターのためにDynamoDBのアトミックな値の増減機能を利用することもできます。

SimpleDBも継続提供か

DynamoDBはβ公開が始まっていますが、それがすぐにSimpleDBの提供終了を意味するわけではなさそうです。DynamoDBのページ内の「How does Amazon DynamoDB differ from Amazon SimpleDB? Which should I use?」という項目に、SimpleDBはクエリの柔軟性がある、という説明があります。

Amazon SimpleDB is a good fit for lower-scale workloads that require query flexibility.

Amazon SimpleDBはクエリの柔軟性を求めるような一定程度のワークロードに適している。

あわせて読みたい

AWS NoSQL クラウド




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

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

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

最新記事10本