AWSの2大NoSQLデータベースサービス
「Amazon DynamoDB」と「Amazon SimpleDB」――あなたの会社には向いているのはどちら?
「Amazon DynamoDB」と「Amazon SimpleDB」は、アプリケーション開発の柔軟性向上とアプリケーション開発時間の短縮を実現する。これらのメリットを最大限に引き出すには、自社のニーズに合ったデータベース環境を選択する必要がある。
「NoSQL」データベースは拡張性に優れ、Webアプリケーションの開発時間を短縮できる。固定スキーマを使用する「リレーショナルデータベース」(RDB)とは異なり、NoSQLデータベースの多くはスキーマを用いないので、開発の柔軟性にも優れる。米Amazon Web Services(以下、Amazon)の「Amazon SimpleDB」(以下、SimpleDB)と「Amazon DynamoDB」(以下、DynamoDB)は、人気が高いNoSQLデータベースだ。
DynamoDBとSimpleDBは、完全管理型の非RDBであり、データの保存、クエリ、管理を行うためのシンプルなAPIを備えている。これらのデータベースは、柔軟なデータベースデザインを必要とするアプリケーションに適しているが、両者の間には幾つか相違点もあるため、使用するアプリケーションに応じて選択する必要がある。
小規模データベースの管理にはSimpleDB
SimpleDBは、各ドメインのサイズが10Gバイト以内で、基本的なストレージ機能とクエリ機能を必要とする小規模データベースに向いている。テーブルがこのサイズを超えると予想される環境でSimpleDBを使うのであれば、データを2つ以上のドメインに分割し、自分で管理する必要がある。データを複数のドメインに手作業で分割することは可能だが、管理の手間がそれだけ増え、SimpleDBを使用するメリットが損なわれてしまう。
このデータベースサービスは、柔軟性、可用性、耐久性が特に重要で、拡張性はさほど重視されない小規模なデータベースアプリケーション用にデザインされている。SimpleDBの柔軟性を示す機能としては、スキーマの修正なしにテーブルの属性を即座に変更する機能、データの再インデックス化、テーブル構造をオフラインで変更する機能などが挙げられる。また、SimpleDBでは、データを同一リージョン内の複数のデータセンターに分散させることにより、可用性と耐久性を実現できる。
SimpleDBは「ドメイン」という単位でデータベースを管理する。ドメインはRDBにおけるテーブルに相当する。ドメインには複数の「アイテム」、あるいはキー/バリューペアの集合が含まれる。アイテムというのは、リレーショナルテーブルのロー(行)に相当し、キーとバリューは属性および属性のコンポーネントにそれぞれ対応する。データはドメインに保存され、基本的なAPIあるいはコンソールを使ってクエリを行う。
SimpleDBは、SQLプログラマーなら誰でも理解できる簡単なSELECT文をサポートする。だがSQLとは大きな違いもある。SimpleDBは複数のドメインにまたがる結合(ジョイン)をサポートしない。複数ドメインのデータを結合するには、独自に作成したプログラムを使ってクエリとジョインを行う必要がある。単純な結合であれば難しくないだろうが、複雑な結合をサポートする必要があるアプリケーションの場合は、「MySQL」や「PostgreSQL」などのRDBを使った方がいい。これらはいずれも「Amazon Relational Database Service」(RDS)で提供されている。
SimpleDBの利点の1つは、テーブル内の全てのアイテムがインデックス化されることだ。これは、ユーザーが任意のアイテムに対してクエリを実行できるアプリケーションにとって便利な機能だ。例えば、顧客テーブルでは「姓」「市」「州」「郵便番号」など全てのアイテムがインデックス化されるので、どれを使っても同じ速さでクエリが処理される。
大規模データベースにはDynamoDB
DynamoDBは、スケーラブルなデータストアや高度なデータ管理機能を必要とする本格的なアプリケーション向けだ。DynamoDBはHDDではなくSSD(ソリッドステートドライブ)を使用することにより、コンスタントで遅延の少ない読み出し/書き込み時間を実現する。大量のデータに対応できる拡張性を備えながらも安定したパフォーマンスを維持するが、その半面、クエリモデルには制約も多い。
DynamoDBは大規模な企業向けデータベースを扱うため、他のデータ管理サービスを追加する必要があるかもしれない。Amazonは、DynamoDBを同社の「Hadoop」サービスである「Amazon Elastic MapReduce」(以下、EMR)および同社のデータウェアハウジングサービスの「Amazon Redshift」(以下、Redshift)に連係している。大規模なアドホッククエリや分析にはRedshiftまたはEMRを使用し、ハッシュキーやハッシュ&レンジキーをベースとするターゲット型クエリにはDynamoDBを使用するといい。分割されたドメインを管理する手間を避けたいという場合もDynamoDBが有効だ。DynamoDBはサイズに制限がなく、必要に応じてデータのパーティショニングを管理する。
DynamoDBはプライマリキーをインデックス化する。セカンダリキーのインデックス化も可能だ。プライマリインデックスとセカンダリインデックスは、ハッシュキーとハッシュ&レンジキーをベースとする。このデータベースサービスは単一のSELECT文を使わずに、QUERY文とSCAN文を使用する。QUERY文はプライマリまたはセカンダリのハッシュキーまたはハッシュ&レンジキーとともに用いる。SCAN文はテーブル内の全てのアイテムを読み出す。この処理は柔軟性に優れるが、特に大規模データベースの場合はクエリよりも時間がかかる。アプリケーションの応答性は、DynamoDBデータベースに割り当てられた読み出し/書き込みキャパシティーによっても、ある程度左右される。
「DynamoDB Local」という機能を使えば、本番で運用中のデータベースとは切り離されたローカルデータベース上でコードの作成とテストが行える。DynamoDBのAPIとDynamoDB LocalのAPIは互換性があるので、作成したコードはどちらの環境でも動作する。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
4
221人調査で分かった「情シス最大のストレス」は?
-
5
「データストレージの活用方法」に関するアンケート
-
6
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
7
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
8
本当に安いPCで十分か? “すぐ重くなる”を防ぐノートPC選びの絶対条件
-
9
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
10
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー