2008-09-10 13 views
13

誰かがバックエンドデータベースとしてAmazon SimpleDBデータストアの行に沿って何かを使用すると考えていましたか?Amazon SimpleDB

SQL Serverホストは(少なくとも英国では)高価なので、クラウドファイルストレージ(S3)と一緒にアプリケーションで成長する可能性のあるアプリケーションを構築するために使用できます。

理論的には偉大だが、誰でもそれを検討するだろう。実のところ、私があなたのコメントを読もうと思うように、現実のプロダクションソフトウェアのために実際にそれを使用している人は誰ですか。

答えて

14

これは、DareからのAmazonサービスの優れた分析です。

S3は、私が「ブロブストレージ」と言いました。一般的なWebアプリケーションには、通常、名前/パスで簡単にアクセスできるメディアファイルやその他のリソース(イメージ、CSSスタイルシート、スクリプト、ビデオファイルなど)があります。ただし、これらのリソースの多くにもメタデータが含まれています(YouTubeの動画ファイルには、評価に関するメタデータ、アップロードしたユーザー、閲覧回数など)。クエリー可能な、図式化されたストレージの必要性は、SimpleDBが来る場所です.EC2は、何らかの理由で仮想サーバーがダウンした場合でも永続的ではないローカルファイルシステムインスタンスを含む計算に使用できる仮想サーバーを提供します。 SimpleDBとS3を使用すると、EC2によって提供される計算機能を投入する際に、大きなクラスの「Web 2.0」スタイルのアプリケーションを構築するビルディングブロックがあります。 S3やSimpleDBのいずれも、データベース駆動型Webアプリケーションを構築する典型的なLAMPやWISC開発者の経験を必要とする開発者や、ブロブストレージのバケットにきちんとは適合しないカスタムストレージニーズを持つアプリケーションまたは図式化されたストレージ。永続的なファイルシステムにアクセスすることなく、Amazonのクラウドコンピューティングプラットフォーム上の開発者は、EC2からS3へのデータバックアップを手動で行い、望ましい経験を得るという洗練されたソリューションを開発しなければなりませんでした。

0

本当にSQL Serverが必要ですか? PostgreSQLやMySQLで暮らすことはできませんか?両方ともほとんどのタスクでOKであることが証明されています。

SQL Server機能が必要な場合は、不運になります。

もう1つの方法は、サーバーをレンタルすることです。高価なのはどれくらいですか?

(私はそれは大丈夫だし、少なくともそのため、正常に動作し、アプリケーションのための画像を保存するためにアマゾンS3を使用しました)

0

私はSimpleDBのを使用していないが、S3の組み合わせを使用している、EC2、私たちのアプリケーションにはMySQLが必要です。

SimpleDBを使用したいのであれば、MySQLの使用を検討することもできます(これはスケーラビリティが高く、高価ではありません)。

S3とEC2側では、実際には素晴らしいです。

+0

RDS> MySQLはかなり高価です! – Jasper

11

私はAmazonクライアントライブラリが苦労しているため、Perlで簡単にアプリケーションを移植するためのライブラリを作成しました。Net :: Amazon :: SimpleDB :: SimpleライブラリはまだCPANにはありませんが、それはhttp://rjurneyopen.s3.amazonaws.com/SimpleDB/Simple.pmです。考え方は、SimpleDBの内外にハッシュを埋め込むことは簡単です。

私はアプリを使用するために移植しました。全体的に私はSimpleDBに感銘を受けています...たとえ非効率的なクエリでさえ、2〜3秒で返されます。 SimpleDBは、Erlang/parallel性質のため、テーブルのサイズに気にしないようです。テーブルキャンは簡単です。

痛みは、カウントすること、合計すること、グループ化することができないという事実から来ています。もしこれらのことをするつもりなら、おそらくSimpleDBはあなたのためではありません。現時点では、それはmemcachedとMySQLの間のどこかに存在します。あなたはリミットで選択することができます。これはいいですね。また、あなた自身でスケールする必要はありませんし、あなたがそれにどれくらいのものを入れるかは気にしません。しかし、アナリティクスなどの高度な操作は、最高の状態で苦労しています。あなた自身の計算サーバー側を行う必要があります。また、私のデータを照会するのにsimpledb CLI http://code.google.com/p/amazon-simpledb-cli/を使うことができます。

混乱している「落書き」があります。たとえば、属性は複数の値を持つことができ、アイテムを格納するときは明示的に '置換'を設定する必要があります。また、undefまたはnull文字列を格納すると、その属性名と値のペアを削除したり、空文字列を設定したりする代わりに、ライブラリエラーが発生します。

ほとんど正規化されていない方法で考えることはちょっと変わってしまいました。なぜなら、それは新しいアプリケーションに最適だという上記の提案よりも2番目の理由でしょう。 SQLアプリケーションからSimpleDBへの移植は、アプリケーションロジックを変更する必要があるため、苦労します。あなたが物事をする方法は少し異なります。アマゾンのドキュメントはこれを説明するのにかなり良いです。

これらはすべてSimpleDBの上にあるライブラリで抽出できます。したがって、SimpleDBを使用するには、良いライブラリを選びたいと思っています。おそらく直接対処したくないでしょう。簡単にするためにPHP側でいくつかの作業があり、私のライブラリがあります。 RAILSの活動ソースがありますが、それはあなたのためにあまり働かないようです。

他のAPIと比べると、まだまだ早い段階ですが、SimpleDB REST APIは非常にシンプルです(特にXMLだと考えています)。と。私はそれをお勧めします...あなたのアプリケーションの要件とそれのあなたの使用の経済性に応じて。 DBに大きな負荷をかけず、スケーラブルなMySQL/memcacheコンボを気にしたくないサービスを急速に拡張しようとしているなら、SimpleDBは簡単なソリューションを提供することができます。

私はその機能がさらに成長し、より複雑で面白いことをするアプリケーションが増えていくことを期待しています。しかし今は、典型的なWeb 2.0サービスをターゲットとしており、適切です。

3

私たちはほとんど新しいプロジェクトにSimpleDBを使用しています。メンテナンス性、高可用性、無インストールの側面はあまりにも優れています。あなたのRuby開発者にとっては、SimpleDBのためのActiveRecordのようなインターフェイスである、SimpleRecordをチェックしてください。これにより、使い方が簡単になります。

0

SimpleDBは多くのアプリケーションでうまくいきます。あなたのプロジェクトには多くの分析レポートや結合などが必要な場合は、MySQLまたはハイブリッドモデルを検討することができます。

SimpleDBに進むと、内部で使用するためにRadquery.comを開発し、公開しています。

関連する問題