Amazon SimpleDB は、可用性の高い、データベース管理の負担を軽減する NoSQL データストアです。デベロッパーが必要なのは、ウェブサービスリクエストを介してデータ項目を保存およびクエリすることだけです。残りの処理は Amazon SimpleDB が行います。
リレーショナルデータベースの厳格な要件の制約を受けない Amazon SimpleDB は、高い可用性と柔軟性を実現するように最適化されており、管理の負担はほとんどありません。Amazon SimpleDB はバックグラウンドで、地理的に分散した複数のデータのレプリカを自動的に作成および管理し、高い可用性とデータ耐久性を実現します。このサービスでは、データの保存とリクエストの処理に実際に使用されたリソースについてのみ課金されます。オンザフライでデータモデルを変更でき、データはユーザーのために自動的にインデックス化されます。Amazon SimpleDB を利用すると、インフラストラクチャのプロビジョニング、高可用性、ソフトウェアのメンテナンス、スキーマとインデックスの管理、パフォーマンスチューニングについて心配することなく、アプリケーション開発に注力できます。
このサービスにより、面倒で時間のかかるデータベース管理ではなく、付加価値のあるアプリケーションの開発に完全に注力できます。Amazon SimpleDB は、インフラストラクチャのプロビジョニング、ハードウェアとソフトウェアのメンテナンス、データ項目のレプリケーションとインデックス作成、およびパフォーマンスチューニングを自動的に管理します。
Amazon SimpleDB は、ユーザーが保存した各データ項目の地理的に分散した複数のコピーを自動的に作成します。これにより、高い可用性と耐久性が得られます。万が一、1 つのレプリカに障害が発生した場合でも、Amazon SimpleDB はシステム内の別のレプリカにフェイルオーバーできます。
ビジネスが変化しても、またアプリケーションが進化しても、厳格なスキーマを破ることや、コードのリファクタリングについて心配することなく、これらの変化を Amazon SimpleDB 内で簡単に反映させることができます。必要に応じて、別の属性をお客様の Amazon SimpleDB データセットに追加するだけで済みます。また、一貫性のある読み取りリクエストと結果整合性のある読み取りリクエストのどちらかを選択することもできます。これにより、読み取りパフォーマンス (レイテンシーおよびスループット) と一貫性の要件を、アプリケーションの要求、またはアプリケーション内のさまざまな部分に柔軟に合わせることができるようになります。
Amazon SimpleDB は、複雑で使用されないことが多い他のデータベース運用を除外しながら、従来的にリレーショナルデータベースクラスターを使用して実現されるストアおよびクエリ機能に対して、合理化されたアクセスを提供します。このサービスを利用すると、データを迅速に追加し、シンプルな一連の API コールを通じてそのデータを簡単に取得または編集できます。
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 の場合、これは、データストアの読み取りと書き込みが各オペレーションで消費されたコンピューティングリソースによって課金されることを意味し、コンピューティングリソースをアクティブに使用していない (すなわち、リクエストを実行していない) 場合は、そのコンピューティングリソースについて課金されません。
Amazon SimpleDB を利用すると、本番データベースの実行に必要な作業を完全にオフロードできるため、多くのデベロッパーは、条件やイベント、ステータスの更新、定期的なアクティビティ、ワークフロープロセス、デバイスやアプリケーションの状態に関する情報をログに記録するための理想的なロータッチデータストアであると考えています。Amazon SimpleDB では、これらのデータログをコスト効率よく「一度設定したら後はおまかせ」できるため、次のようなさまざまな目的に使用できます:
- モニタリングまたは追跡
- 計測
- ビジネストレンド分析
- 監査
- アーカイブや規制のコンプライアンス
適用例には次が含まれます:
- 一元的にサーバーログを格納して、それらが実行中の各サーバー上で消費するスペースを削減
- 後の分析のために実行中のパフォーマンスの運用上のメトリクスや結果をログ記録
- アプリケーションやネットワークデバイスのアクセスエントリや設定変更を監査
- さまざまな場所での環境条件 (温度、気圧レベル、湿度など) のキャプチャとモニタリング、および特定の条件に関するアラートのプログラミング
- オブジェクトやワークフローにおけるアクティビティのプロセスステータスに関する地理位置情報のログ記録やトラッキング
Amazon SimpleDB には複数の属性があるため、データログ用の理想的なデータストアとなります:
- 可用性の高い集中的な処理 – お客様のデータが複数のデバイス/オブジェクト、アプリケーション、またはプロセスサイロにローカルに閉じ込められている場合、クラウド内の 1 つの場所に一元的に集約されたデータにアクセスできるという利点を享受できます。さらに、Amazon SimpleDB はデータを自動的かつ地理冗長的にレプリケートし、高可用性を実現します。つまり、集中型のオンプレミスソリューションとは異なり、Amazon SimpleDB では単一障害点を設けることはなく、データは必要なときに利用できる状態となっています。すべてのデータは、1 つのソリューションにより、ウェブサービスのリクエスト経由で保管できます。その後、任意のデバイスによってアクセスできます。
- 管理が不要 – お客様が必要なのは、シンプルなウェブサービスリクエストでデータ項目を保存することだけです。後の処理は Amazon Web Services が行います。このサービスの「一度設定したら後はおまかせ」の性質は、データログを保存および維持するために、データベース管理に時間を費やす必要がないことを意味します。
- 高い費用対効果 – Amazon SimpleDB では、データログの保存やクエリを手頃な料金でご利用いただけます。使用したリソースについてのみ従量制料金で課金されるため、独自のキャパシティプランニングを行ったり、データベースの負荷を心配したりする必要はありません。このサービスは、リクエスト量の増減に対応し、実際に消費されたリソースについての料金のみを課金します。
Amazon SimpleDB は、あらゆるプラットフォームのオンラインゲームのデベロッパーのために、可用性とスケーラビリティに優れ、管理が不要なユーザーおよびゲームデータ用のデータベースソリューションを提供します。
Amazon SimpleDB で保存、インデックス化、クエリできるオンラインゲームの一般的データには次が含まれます:
- ユーザーのスコアと実績
- ユーザー設定または嗜好
- プレーヤーのアイテムまたはユーザーが生成したコンテンツの情報
- ゲームセッションの状態 (プレイが保存または中断されたとき)
- 動的なゲームコンテンツ (サービス指向アーキテクチャをゲームに適用し、Amazon SimpleDB を利用してプレイヤーのために新しいチャレンジやコンテンツを保存および提供)
- お客様のゲームによって使用され、Amazon S3 に保存された大量オブジェクトのインデックス化されたメタデータ
Amazon SimpleDB の複数プロパティは、オンラインゲームデータ用のデータストアに適しています:
- 高可用性 (自動化された地理的冗長レプリケーションおよびフェイルオーバー): Amazon SimpleDB は、データの複数のコピーを自動的に作成し、1 つのコピーが利用できなくなった場合に備えて、使用可能なコピーへのフェイルオーバーを管理することによって高可用性を実現します。これにより、データベースクラスターの設定の複雑さを回避でき、ゲームやユーザーは、高い信頼性をもって中断なく、重要なデータにアクセスできます。
- ノータッチスケーリング: ユーザーベースが拡大し、プレーヤーのアクティビティが変動する中で、Amazon SimpleDB は、デベロッパーの介入を必要とすることなく、増減するトラフィックやリクエストの量に適切に対応します。お支払いいただくのは、実際に消費したリソースの料金のみです。
- 管理オーバーヘッドゼロ: データ管理の煩わしさを回避でき、インフラストラクチャのプロビジョニング、ソフトウェアの設定、スキーマの作成や管理、インデックスの構築、クエリ性能のチューニングの作業をしなくてもよくなります。ユーザーのための楽しいゲームや機能の構築に戻ることができ、データベース管理者としての業務をしなくてもよくなります。
多くのデベロッパーが、Amazon SimpleDB を Amazon Simple Storage Service (Amazon S3) と組み合わせて使用しています。Amazon SimpleDB は、Amazon S3 オブジェクトの場所やオブジェクト (メタデータ) の詳細情報に対するポインターを保存するために使用できます。これにより、データベースのリッチなクエリ機能で Amazon S3 を補完しています。Amazon S3 に多数のオブジェクトを保存するデベロッパーのために、Amazon SimpleDB は、データベースの運用に伴う管理オーバーヘッドのすべてをオフロードしながら、オブジェクトメタデータを保存するための、柔軟かつスケーラブルで低コストの手段を提供します。Amazon SimpleDB で簡単に保存、インデックス作成、クエリできるオブジェクトメタデータの一般的な例には次が含まれます:
- データのタイプまたは形式 (画像、動画、ドキュメント)
- ユーザーの関連付けまたはアクセス指定
- オブジェクトが作成、アクセス、または変更された日付
- 関連オブジェクトの名前または場所
- ユーザーの評価とコメント
- 件名またはカテゴリタグ
- ジオロケーションタグ
上記の例のようなメタデータの保存は、コンテンツ配信、メディアアプリケーション、バックアップ/アーカイブアプリケーション、他の多くの種類のアプリケーションに役立ちます。Amazon SimpleDB は次を提供するため、メタデータにとって理想的なホームとなります。
- 柔軟でスキーマレスな設計: 厳格なスキーマを「破る」ことなく、メタデータ属性を簡単に付加できます。動画オブジェクトのユーザー評価の追跡を開始する場合、時間のかかるデータベースの変更は必要ありません。
- 複数値の属性: メタデータ属性に、複数の値を持たせることができます。つまり、写真を複数の人々、または複数のジャンルの音楽ファイルでタグ付けできます。
- 管理オーバーヘッドゼロ: Amazon SimpleDB は、データベースの実行に必要なインフラストラクチャのプロビジョニングやソフトウェアのインストールとメンテナンスの手間を省くだけでなく、自動的にデータのインデックスを作成し、クエリのパフォーマンスをチューニングして、データの地理的に冗長なコピーを作成します。
また、Amazon SimpleDB は、ローフリクションスケーリングや、リクエスト量の変更に対する自動対応機能を提供します。また、実際に消費したリソースについてのみ、費用対効果の高い料金を課金します。
- コードサンプルを含む S3 メタデータのインデックス作成の技術的なチュートリアルについては、サンプルコードとライブラリにアクセスしてください。