1

私は 2 つの基本的な操作を持つ非常に単純なデータベース構造 (基本的にはユーザー テーブルのみ) を持っています。

ユーザーはログインして認証トークンを取得し、後でこのユーザー テーブルに格納されているそのトークンを使用してデータを送信できます (数バイトのみ)。

ただし、多くのユーザーが同時にこれを行うことができます (たとえば、限られた時間で 1 分間に 10 万ユーザー)。

テクノロジーの良い選択は何だろうと思っています。NoSQL データベースなどを使用することを恐れず、スケーラブルなものに仕上げようとしています。

キューイング システムと、データベースにデータを入力するタスクについて考えていました。それとも、Amazon SimpleDB だけが必要で、メッセージをキューイングする必要さえないのでしょうか? それとも、「同じ」データベースと通信する複数の EC2 インスタンスを取得するために RDS ソリューションが必要ですか? それとも、Amazon Web サービスではありませんか? 指摘してくれてありがとう、私はこれにかなり慣れていないので、さまざまなトレードオフと私のアプリケーションに最適なものについて洞察を得たいと思っています。

4

3 に答える 3

1

AWS で NoSQL データベースを使用することに問題がない場合は、SimpleDB と DynamoDB のオプションを選択する必要があります。

SimpleDB ではテーブルあたり 10GB の制限があります。つまり、データを複数のテーブルに分割することを心配する必要があり、1 秒あたり 25 回の書き込みという制限もあります。

DynamoDB ではすべてが自動的に処理され、サイズや書き込み量に制限はありません。そして最良の部分は、すべてのデータがソリッド ステート ディスク (SSD) に保存されることです。これにより、パフォーマンスが向上します。

そして、あなたが私のようなより伝統的な人であれば、RDS (リレーショナル データベース サービス) を使用できます。ここでは、MSSQL、MySQL、および Oracle から選択できます。

于 2012-07-10T15:08:36.447 に答える
1

PachinSV が指摘したように、好みの DB ソリューションを選択できます。もう 1 つ追加します。EC2 インスタンスを起動し、NOSQL (MongoDB、Cassandra)、SQL (MSSQL、MySQL、Oracle) など、お好みの DBMS をインストールできます。この回答で、質問の他の側面(アプリケーション自体、スケーラビリティ、および必要に応じてストレージ)を処理しようとします。

ただし、私の提案は次のようなものです。

-アプリケーションの負荷を処理するため1 つまたは 2 つの EC2 インスタンス。EC2 の詳細については、こちらをご覧ください。
-スケーリングが必要なときはいつでも、EC2 インスタンスの前に Elastic Load Balancer を追加できるため、水平方向のスケーラビリティを維持しながらエコシステムにインスタンスを追加し続けることができます。
-DB については、RDS インスタンス (おそらく小さいサイズ) から始めて、お好みのシステム (MySQL、SQL Server、または Oracle) を使用します。RDS を使用すると、インスタンスのサイズを途中で変更できます。また、将来アプリが読み取り集中型になった場合に備えて、1 つ以上のリードレプリカを追加することもできます。RDS の詳細については、こちらを参照してください。PachinSV が指摘したように、別の良いオプションは次のとおりです。DynamoDB、彼がすでに述べた理由-パーティショニング、パフォーマンス、制限の緩和など--言及し
ていませんが、スケーラブルなストレージが必要な場合は、S3が間違いなく最適な方法であり、すぐに使用できます。

それが役に立てば幸い。

于 2012-07-10T23:50:25.710 に答える
0

おっしゃるように、RDSでは、利用可能な最大のインスタンスの容量に制限され、それを超えて簡単に拡張することはできません。ACID準拠のSQLソリューションを選択することになり、データベースサービスが必要な場合(データベースをEC2インスタンスに自分でインストールするのではなく)、EC2のもう1つのMySQLオプションはXeroundです。これは、自動スケーリングを備えているため、大規模な対応が可能です。同時ユーザー数と高スループット。

于 2012-07-17T11:30:57.767 に答える