RoRアプリ用にMySQLとAmazonのSimpleDBを決定する際に考慮すべきことは何ですか?
-
03-07-2019 - |
質問
私は、AmazonのSimpleDBサービスをRoRアプリケーションのデータストアとして使用することの実現可能性について調査を始めたばかりです。 WebサーバーにはEC2を使用し、MySQLサーバーにもEC2を使用する予定でした。しかし今、問題は、なぜSimpleDBを使用しないのですか?
アプリケーションは、(成功した場合)サポートされるユーザー数に関して非常にスケーラブルである必要があり、シンプルで効率的なコードベースを維持し、信頼性が必要です。
SOコミュニティの考えがこれについてどうなっているのか興味があります。
解決
Ruby SimpleDBライブラリはActiveRecord(デフォルトのRails DBアダプター)ほど完全ではないため、これまで使用していた機能の多くは存在しません。
プラス面では、スキーマレスでスケーラブルであり、ec2でうまく機能します。
アプリで全文検索などを行う場合、SimpleDBは最良の選択ではないかもしれません。AR+ sphinxを使用してください。
他のヒント
まあ、単純なDBはSQLを使用せず、テーブルさえ持っていないことを考えると、MySQLや他のSQLベースのものとはまったく異なる獣であることを意味します( http://aws.amazon.com/simpledb/ )。制約、トリガー、または結合はありません。幸運を祈ります。
これを起動して実行する方法の1つを次に示します。 http://developer.amazonwebservices.com/connect/entry.jspa?externalID= 1242 ( http://rubyforge.org/projects/aws-sdb/ 経由)
レールの外でデータを照会する必要がまったくないのであれば、SimpleDBで問題ないことがわかるかもしれません。しかし、それは一流のサポートされたDBではないため、修正が困難なバグに遭遇する可能性があります。本番用Railsアプリをセミベータバックエンドで実行したくありません。
これは、「これらのすてきなツールがあるので、それらを使用してプロジェクトを構築する必要があります」という感じです。これらの特定のツールを実際に使用する必要はありません。たぶん、私はただおかしくなりつつありますが、それは時期尚早な最適化の典型的な例のように感じます。まだ書かれていないアプリの費用がかかる外部サービスを使用しようとしていますが、保証されたオーディエンスや、それを保証するレベルに必ずしもスケールするオーディエンスを持っているとは言いません。
"(成功した場合)アプリケーションは、サポートされるユーザー数に関して非常にスケーラブルである必要があります。それは「成功した場合」ですそれは本当に質問です。アプリケーションを迅速かつ簡単に構築することに集中してください。それを行う最も簡単な方法は、いわばすぐに使えるので、RORを使用することです。データベースとペアリングし、ActiveRecordを使用して何かを構築し、ユーザーを引き付けます。
実際、さらに先に進んで、EC2は常時接続のサーバーではかなり高価だと言います。 Slicehostまたは別のホストされたソリューションにデプロイし、需要をサポートする必要がある場合はEC2に移動します。
私自身はこのトピックに非常に興味があります。現在、私はクラウドコンピューティングの高位にいるので、SimpleDBを使用することをお勧めします。これは、高可用性を実現するという意味で、おそらくより優れた拡張性を備えているからです。まだ経験からではありません。
編集:SimpleDBには、「通常」という通常の機能がないことは事実です。データベース、ただし、単純なCRUDレイヤーのみが必要な場合は、この方法を使用する必要があります。これは私の場合です
SimpleRecord というライブラリがありますが、これはActiveRecordに代わるものですが、SimpleDBを使用していますバックエンドデータストア。