Amazon SimpleDB は、可用性と柔軟性に優れ、データベース管理の負担を軽減する、非リレーショナル型のデータストアです。開発者は、データ項目の格納と照会をウェブサービスリクエスト経由で行うだけで、残りの処理は Amazon SimpleDB によって自動的に実行されます。
リレーショナルデータベースの厳格な要件の制約を受けない Amazon SimpleDB は、高い可用性と柔軟性を実現するように最適化されていますが、管理の負担はほとんどありません。その裏で、Amazon SimpleDB は、地理的に分散した場所でユーザーのデータの複数のレプリカを作成、管理し、高可用性とデータの堅牢性を可能にしています。実際にデータを格納し、リクエストを処理することで消費したリソースのみにサービスの請求が発生します。オンザフライでデータモデルを変更することができ、ユーザーのためにデータが自動的にインデックス化されます。Amazon SimpleDB を使用すれば、インフラストラクチャのプロビジョニング、高可用性、ソフトウェアのメンテナンス、スキーマとインデックス管理、またはパフォーマンスチューニングといったことを心配せずに、アプリケーションの開発に集中することができます。
Amazon SimpleDB は、複数のデータセットを作成・格納し、データのクエリを簡単に行い、結果を返すため、簡単なウェブ サービス インターフェイスを提供しています。お客様のデータは自動的にインデックス化されるので、必要な情報を素早く見つけることができます。スキーマを事前定義することも、新しいデータを追加した場合にスキーマを変更することも不要です。さらに、拡張は新規サーバーを構築するよりも、新しいドメインを作成するくらい簡単です。
Amazon SimpleDB を使用するには、以下を行います:
容易な管理 – このサービスにより、困難で時間のかかるデータベース管理よりも、付加価値のあるアプリケーション開発に集中することができます。Amazon SimpleDB は、インフラストラクチャのプロビジョニング、ハードウェアとソフトウェアのメンテナンス、データアイテムのレプリケーションとインデックス化、パフォーマンス調整を自動的に管理します。
高い可用性 – ユーザーが格納する各データについて、地理的に分散した複数のコピーを自動的に作成します。これによって、高い可用性と堅牢性が提供されます - 万が一1つのレプリカに障害が起きた場合は、Amazon SimpleDB はシステム内で別のレプリカを作成することによって障害を迂回します。
柔軟性 – ビジネスが変化する、またはアプリケーションが進化しても、厳格なスキーマの破壊やコードのリファクタリングについて憂慮することなく、これらの変化を Amazon SimpleDB 内で簡単に反映させることができます - 必要に応じて、別の属性をお客様の Amazon SimpleDB データセットに追加するだけです。整合性があるまたは結果的に整合性がある読み込みリクエストの間で選択して、お客様のアプリケーション、またはお客様のアプリケーション内の別々の要素の需要に対応する、読み込みパフォーマンス(待ち時間とスループット)と整合性要件を満たす柔軟性を取得することができます。
使用が簡単 – Amazon SimpleDB は、複雑でしばしば使用されなその他のデータベース運用を除外しながら、従来リレーショナル データベース クラスタで行っていたストアおよびクエリ機能へ、合理化されたアクセスを提供しています。このサービスにより、簡単な API 呼び出し群を通じて、素早くデータを追加し、そのデータを編集することができます。
他の Amazon Web Services との親和性 – Amazon SimpleDB は、Amazon S3 および EC2 などの他の AWS サービスに簡単に統合できるよう設計されており、ウェブ規模のアプリケーションを作成するためのインフラストラクチャを提供しています。例えば、開発者は自分のアプリケーションを Amazon EC2 で実行でき、データ オブジェクトを Amazon S3 に格納できます。その後、Amazon SimpleDB を使用して Amazon EC2 内のアプリケーションからオブジェクト メタデータをクエリし、Amazon S3 に格納されているオブジェクトへポインターを返すことができます。 また開発者は、関係および非リレーショナルデータベースのニーズを有するアプリケーションのために、Amazon RDS と連動させて Amazon SimpleDB を使用することができます。Amazon SimpleDB と同じリージョン内の他の Amazon Web Services の間で転送されるデータは無料です。
安全 – Amazon SimpleDB は、ユーザーのアプリケーションまたはクライアントとユーザーのドメイン間で、セキュアで暗号化されたコミュニケーションを保証する HTTPS エンドポイントを提供します。さらに、AWS Identity and Access Management との統合を通じて、特定の SimpleDB ドメインとオペレーションへのアクセスに対してユーザーまたはグループレベルのコントロールを確立します。
安価 – Amazon SimpleDB は、お客様に Amazon の規模の経済のメリットを提供します。費用は実際に利用したリソースに対してのみ発生します。つまり、Amazon SimpleDB の場合では、データストアの読み込み・書き込みに対して、各オペレーションで消費された計算リソースのみに課金されることを意味します。それらをアクティブの状態で使用していない場合(リクエストの作成など)、計算リソースに対して課金されることはありません。
使用料金は従量課金制となっています。最低料金は不要です。AWS Simple Monthly Calculator を使用して、月々の請求額を見積もってください。 一覧に示す価格は、Amazon SimpleDB ドメインを設定したリージョンに基づいています。
Amazon SimpleDB は、各リクエストのマシン利用を測定し、特定のリクエスト(QUERY、GET、PUT など)を完了するために使用したマシン容量、つまりほぼ1台の 2007 1.7 GHz Xeon プロセッサの時間当たり容量に正規化されたマシン容量に基づき課金します。 マシン利用料金の計算方法についての詳細な説明は、以下をご参照ください。
データ「受信(イン)」および「送信(アウト)」は、Amazon SimpleDB への転送および Amazon SimpleDB からの転送を示しています。Amazon SimpleDB と同じリージョンの他の Amazon Web Services の間で転送されたデータは無料です(例: $0.00/GB)。リージョン間で転送されるデータ(例: 欧州(アイルランド)リージョンでの Amazon SimpleDB と米国東部(バージニア北部)リージョン での Amazon EC2 の間)は、転送の両側でインターネット データ転送料金が課金されます。
* 無料使用範囲は、すべてのリージョンが毎月計算され、自動的に請求額に適用されます。無料範囲は積み立てられません。 ** AWS 無料使用範囲の一環として、AWS の新規お客様は、すべての AWS サービスを総合して、1ヵ月に付き、15 GB のデータ送信を1年間無料でご利用いただけます。*** データ転送送信(アウト)のデータ量は、Amazon EC2、Amazon S3、Amazon RDS、Amazon SimpleDB、Amazon SQS、Amazon SNS、Amazon DynamoDB、AWS Storage Gateway、および Amazon VPC の発信データ転送の総計です。Amazon SimpleDB は、各項目、各属性名、および属性-値ペアについて、アップロードしたデータの生バイト サイズ + および45バイトの諸経費を加算することにより、請求可能データのサイズを測定します。
Amazon SimpleDB は、比較的少量のデータを格納するよう設計されており、高速データ アクセスおよびそのデータを表す柔軟性に向けて最適化されています。AWS サービスに対するコストを最小化するため、大きなオブジェクトまたはファイルは Amazon S3 に格納する必要があります。一方、それらのファイルのポインターとメタデータ は Amazon SimpleDB に格納できます。これにより、ストレージ コスト全体を最小化しながらファイルを検索し、それにアクセスすることができます。Amazon SimpleDB と Amazon S3 のストレージがどのように異なっているかについての詳細な説明、およびお客様の ストレージ料金の計算に関するさらに詳細な説明については、ここをクリックしてください。
*無料使用範囲プログラムの一部として格納したデータは積極的に使用する必要があります。6ヵ月間ドメインがアクセスされなかった場合、AWS の裁量で削除されます。
(Amazon SimpleDB は、Amazon Web Services LLC. によりライセンスされています。)
| 開発者用リソース |
Amazon SimpleDB が使用するこのデータ モデルにより、構築済みデータの格納、管理およびクエリが簡単にできます。開発者は、自分のデータセットをドメインに組み込み、特定のドメインに格納されているすべてのデータに対してクエリを実行できます。ドメインは、属性-値ペアで記述した項目の集まりです。
これらの項目は従来のスプレッドシート表での概念に似ているとお考ください。例えば、以下の表に示すカスタマー管理データベースの詳細を見て、Amazon SimpleDB でどのように表されるかをお考えださい。表全体は、「カスタマー」というドメインです。各カスタマーは、表内の行か、ドメイン内の項目です。連絡先情報は、カラム ヘッダー(属性)により記述されます。値は各セルにあります。さて、以下のレコードはドメインに追加したい新規カスタマーであるとお考えください。
| カスタマー ID | 名 | 姓 | 番地 | 市町村 | 州/都道府県 | 郵便番号 | 電話 | |
| 123 | Bob | Smith | 123 Main St | Springfield | MO | 65801 | 222-333-4444 | |
| 456 | James | Johnson | 456 Front St | Seattle | WA | 98104 | 333-444-5555 |
Amazon SimpleDB では、上記レコードを追加するため、各カスタマーの属性-値ペアと共に、CustomerID をドメインに PUT します。特定の構文なしでは、この記述は以下のように見えます。
PUT(項目、123)、(名、Bob)、(姓、Smith)、(番地、123 Main St.)、(市町村、Springfield)、(州/都道府県、MO)、(郵便番号、65801)、(電話番号、222-333-4444)PUT(項目、456)、(名、James)、(姓、Johnson)、(番地、456 Front St.)、(市町村、Seattle)、(州/都道府県、WA)、(郵便番号、98104)、(電話番号、333-444-5555)
Amazon SimpleDB は、いくつかの重要な点で従来のデータベースのテーブルとは異なっています。簡単に後戻りして一定のレコードのみに適用される新しい属性を追加できる柔軟性が提供されています。例えば、注文状態に関するリアルタイムアラートを有効にするため、カスタマーの Eメール アドレスのキャプチャを始めることを想像してください。「カスタマー」テーブルの再作成、クエリの再記述、インデックスの再作成などを行うよりも、既存の「カスタマー」ドメインに新しいレコードと追加属性を加えるだけで十分です。生成されるドメインは以下のようなものです。
| カスタマー ID | 名 | 姓 | 番地 | 市町村 | 州/都道府県 | 郵便番号 | 電話 | Eメール | |
| 123 | Bob | Smith | 123 Main St | Springfield | MO | 65801 | 222-333-4444 | ||
| 456 | James | Johnson | 456 Front St | Seattle | WA | 98104 | 333-444-5555 | ||
| 789 | Deborah | Thomas | 789 Garfield | New York | NY | 10001 | 444-555-6666 | dthomas@xyz.com |
Amazon SimpleDB は、データの書き込み、インデクシング、およびクエリイングを実施する少数の簡単な API 呼び出しを提供しています。インターフェイスと機能のセットは、意図的に中核機能に集中しており、開発者がサービスを作成し、容易に学習でき、簡単に使用できるようにする基本的な API を提供しています。
注: Amazon SimpleDB は、AWS Identity and Access Management と統合し、Amazon SimpleDB リソースにきめの細かいコントロールを実施します。AWS Identity and Access Management との統合を通じて、AWS Account にサインアップすると、SimpleDB で複数のユーザーを作成できるようになりました。代わりに、ユーザーは、SimpleDB API レベルのユーザー権限を付与され、AWS アカウントが所有する SimpleDB ドメインにアクセスできます。詳細については、AWS Identity and Access Management の詳細のページをご照ください。
Amazon SimpleDB は、各ドメインについて、地理的に分散された場所で複数のコピーを格納することによって、高い可用性と堅牢性を可能にします。(PutAttributes、BatchPutAttributes、DeleteAttributes、CreateDomain または DeleteDomain を用いた)成功した書き込みとは、ドメインの全コピーが、永続的に存続することを意味します。Amazon SimpleDB は、2つの読み込み整合性オプションをサポートしています: 結果的に整合性のある読み込みと、整合性のある読み込みです。
デフォルトでは、GetAttributes および Select が、結果的な整合性のある読み込みを実行するようになっています。整合性のある読み込みにはより長い待ち時間と小さな読み込みスループットが生じる可能性があるため、読み込み前に無事に応答を受け取った全書き込みの読み込みを読み込みオペレーションが絶対に必要とするよう、アプリケーションシナリオが要求する場合に限って使用することが最善です。その他のすべてのシナリオの場合、デフォルトの「結果的に整合性のある」読み込みが、最良のパフォーマンスを産生します。また、Amazon SimpleDB を使用すれば、各個別の読み込みリクエストに対して整合性の設定を指定することができるので、異なる整合性設定に従う別々の要素を、同一のアプリケーションが保有する可能性のあることをご承知おきください。
Amazon SimpleDB は、関係データベースではありません。ユニークな機能やパフォーマンス特性を提供するため、複雑なトランザクションや関連性(結合など)は割愛しています。ただし、Amazon SimpleDB は、以下のようなトランザクション上のセマンティックを提供しています。
Conditional puts および deletes は、オプションの条件に予想値を設定することによって、PutAttributes および DeleteAttributes API 経由で開示されます。例えば、アプリケーションがイベント用の席の予約またはチケットの販売を行っていた場合、指定された座席がまだ販売中の場合のみ購入を許可したい(書き込み更新など)かもしれません(オプションの条件)。これらのセマンティックは、カウンター、すでに存在しない場合のみ項目を挿入する、また楽観的並行性コントロール(OCC)などの機能を実装するために使用することもできます。バージョン番号(またはタイムスタンプ)属性を項目の一部として管理し、このバージョン番号の値に基づいて conditional put/delete を実行することによって、アプリケーションが OCC を実装することができます。
Amazon SimpleDB におけるトランザクション上のセマンティックまたは整合性についての詳細は、Amazon SimpleDB 開発者ガイドまたは整合性拡張白書をご参照ください。
Amazon Web Services は、開発者向けにいくつかのデータベースソリューションの選択肢を提供しています。完全マネージド型のリレーショナル型/NoSQL サービスを実行することも、お客様独自のデータベースをクラウド内で、Amazon EC2 と Amazon EBS を使用して運用することもできます。
Amazon RDS を利用すると、フル機能のリレーショナルデータベースを、管理作業の負担なしで運用することができます。Amazon DynamoDB は完全マネージド型の NoSQL データベースサービスであり、きわめて高速かつ予測可能なパフォーマンスと、シームレスな拡張性が特長です。Amazon SimpleDB は非リレーショナル型のサービスであり、小規模データセット向けです。Amazon EC2 上で実行できるさまざまな AMI の1つと Amazon EBS を使用すると、データベースのあらゆる制御が可能になる一方で、ハードウェアのプロビジョニングと設置の作業は不要になります。
これらの選択肢の間には大きな違いがあるため、実際のユースケースに応じて最適なものを選ぶときは、この違いを考慮する必要があります。
お客様のアプリケーションのための様々なデータベース代替製品の詳細情報については、AWS でのデータベースの実行ページをご覧ください。
Amazon S3 とは異なり、Amazon SimpleDB は生データを格納しません。むしろ、お客様のデータを入力として扱い、そのデータを拡大して複数のインデックスを作成するので、そのデータを素早くクエリすることができます。さらに、Amazon S3 と Amazon SimpleDB は異なるタイプの物理的ストレージを使用しています。Amazon S3 は、大きなオブジェクトを安価に格納するよう最適化された密度の高いストレージ ドライブを使用しています。Amazon SimpleDB は、少量のデータを格納し、データ アクセス速度に対して最適化された、より密度の低いドライブを使用しています。
AWS サービスに対するコストを最適化するため、大きなオブジェクトまたはファイルは Amazon S3 に格納する必要があります。一方、より小さなデータエレメントまたはファイル ポインター(たぶん Amazon S3 オブジェクトへのポインター)は Amazon SimpleDB にベストな状態で保存できます。AWS 環境でのサービスと無料データ転送の緊密な統合のため、開発者は両方のサービスを彼らのアプリケーションに統合することにより、Amazon SimpleDB の速度およびクエリ能力、さらには Amazon S3 での低コストのデータ格納を簡単に利用することができます。
Amazon SimpleDB では現在、個別のドメインを最大各 10 GB まで拡大することができます。データセットが 10 GB よりも大きい場合、Amazon SimpleDB のスケールアウト アーキテクチャを利用し、データを複数のドメインに分散するようにしてください。Amazon SimpleDB は並列性を念頭において設計されているため、データをより多くのドメインに分散させることにより、書き込みと読み込みのスループット能力を強化することにもなります。最初に最大250のドメインが配給されますが、さらにドメインを必要とする場合は、このフォームにご記入ください。
Amazon S3 と連動して Amazon SimpleDB を使用することにより、何人の開発者が恩恵を受けるのかについての詳細は、ここをクリックしてください。
Amazon SimpleDB で構築済みデータ ストレージのサイズを予測するベストな方法は以下の通りです。
すべての項目 ID の生バイト サイズ(GB)+ 項目ごとに45バイト + すべての属性名の生バイト サイズ(GB)+ 属性名ごとに45バイト + すべての属性-値ペアの生バイト サイズ(GB)+ 属性-値ペアごとに45バイト。
米国東部(バージニア北部)リージョンまたは米国西部(オレゴン)リージョンにおける推定月間ストレージコストを計算するには、使用サイズを GB にして$0.25を掛けます。欧州(アイルランド)リージョン、アジアパシフィック(シンガポール)リージョン、または米国西部(北カリフォルニア)リージョンの場合は、使用サイズを GB にして$0.275を掛けます。アジアパシフィック(東京)リージョンの場合は、使用サイズを GB にして$0.29を掛けます。南米(サンパウロ)リージョンの場合は、計算結果のサイズ(GB)に$0.34を掛けます。
Amazon SimpleDB は、各リクエストのマシン利用を測定し、特定のリクエスト(QUERY、GET、PUT など)を完了するために使用したマシン容量、つまりほぼ1台の2007 1.7 GHz Xeon プロセッサーの時間当たり容量に正規化されたマシン容量に基づき課金します。 マシン利用は、各リクエストごとに処理されたデータ(属性数、属性の長さ)により判定されます。256個の属性を取り出す GET 演算は、1つの属性しか取り出さない1回の GET よりも多くのリソースを使用します。100,000個の属性を調べる複数述語の SELECT は、250個を調べる単一述語クエリよりもコストがかかります。
各リクエストに対する応答メッセージで、Amazon SimpleDB は「ボックス利用率」というフィールドを返します。「ボックス利用率」は、各リクエストが消費したマシン リソースの尺度です。これには、帯域またはストレージは含まれていません。「ボックス利用率」は、特定のリクエストを完了するために使用される機械工数の一部として報告されます。米国東部(バージニア北部)リージョンおよび米国西部(オレゴン)リージョンの場合は、1つのリクエストのコストは「ボックス利用率」(時間数で表します)x $0.14(Amazon SimpleDB マシン時間当たりの単価)です。お客様のすべてのリクエストのコストは、「ボックス利用率」の合計(時間数で表示)* $0.14です。
例えば、1ヵ月のコースを超過してリクエストの「ボックス利用率」の合計が1台の 1.7 GHz Xeon プロセッサーを9時間使用したのに等しい場合、以下のように課金されます。
9時間 * Amazon SimpleDB マシン時間当たり$0.14 = $1.26。
お客様のクエリ ドメインが欧州(アイルランド)リージョン、アジアパシフィック(シンガポール)リージョン、または 米国西部(北カリフォルニア)リージョンにある場合、Amazon SimpleDB マシン時間は、マシン時間当たり$0.154で料金設定されます。お客様のクエリ ドメインがアジアパシフィック(東京)リージョンにある場合は、Amazon SimpleDB マシン時間は、マシン時間当たり$0.162で料金設定されます。お客様のクエリドメインが南米(サンパウロ)リージョンにある場合は、Amazon SimpleDB マシン時間は、マシン時間当たり$0.19で料金設定されます。すべてのコスト計算は関連リージョンに応じて調整される必要があります。
Amazon SimpleDB を理解するためのベストな方法は、技術文書の一部である入門ガイドをお読みいただくことです。数分で、ドメインを作成し、インデックスの作成を開始できます!