2つの基本的な違いが2つあります。
EC2は安くなる
保守を行う必要がないRDS
これら2つ以外に、MySQLサーバーとして機能する別個のEC2サーバーとは対照的に、RDSからデータベースを実行することには利点があります。インスタンスのサイズが似ていると仮定すると、どちらも、負荷を処理できるという点で同じ制限に直面しますか?
私の使用についてもう少し詳しく説明するために、データベースを用意しました。大きすぎず、何も(最大のテーブルは100万行)、SELECTボリュームが大きいだけです。
2つの基本的な違いが2つあります。
EC2は安くなる
保守を行う必要がないRDS
これら2つ以外に、MySQLサーバーとして機能する別個のEC2サーバーとは対照的に、RDSからデータベースを実行することには利点があります。インスタンスのサイズが似ていると仮定すると、どちらも、負荷を処理できるという点で同じ制限に直面しますか?
私の使用についてもう少し詳しく説明するために、データベースを用意しました。大きすぎず、何も(最大のテーブルは100万行)、SELECTボリュームが大きいだけです。
回答:
これは非常に複雑な答えを持つ単純な質問です!
つまり、RAID0 EBSを使用する場合、EC2は最大のパフォーマンスを提供します。RAID0 EBSを実行するには、かなりの量のメンテナンスオーバーヘッドが必要です。次に例を示します。
http://alestic.com/2009/06/ec2-ebs-raid
http://alestic.com/2009/09/ec2-consistent-snapshot
RAID0 EBSのないEC2は、不安定なI / Oパフォーマンスを提供するため、実際にはオプションではありません。
RDSは、そのままでは非常に優れた(最大ではありませんが)パフォーマンスを提供します。管理コンソールは素晴らしく、インスタンスのアップグレードは簡単です。高可用性と読み取り専用スレーブはクリックするだけです。それは本当に素晴らしいです。
短い答え:RDSを使用してください。まだフェンスにいますか?RDSで行く!!! 最大のパフォーマンスを得るために頭痛の種と最後の少しずつのチューニングを楽しんでいる場合は、EC2 + EBS RAID 0を検討できます。バニラEC2は、MySQLホスティングにとってひどいオプションです。
では、このポストの間に優れたベンチマークがあります:
ベンチマークは、理想的な条件(1つのスレッドのみ)だけでなく、より現実的なシナリオ(50のスレッドがデータベースにヒットする)にも焦点を当てているため、非常に優れています。
RDSは実際には高可用性システムではありません。RDSのよくある質問の詳細を読んでください。フェイルオーバーイベントの間、フェイルオーバーに最大3分かかることがあります。追加のamazonは、rdsインスタンスを「アップグレード」し、その時点でフェイルオーバーを実行する必要があると判断します。これにより、データベースが「最大3分」ダウンします(経験上、それよりも長くかかる場合があります)。
RDSの高可用性は、マスター-マスターまたはマスター-スレーブのレプリケーションとは大きく異なり、はるかに低速です。それらはmysqlレプリケーションを使用しませんが、ある種のebsレプリケーションを使用します。したがって、フェイルオーバーの状況では、バックアップマシンにebsをマウントし、mysqlを起動し、mysqlが障害から回復するのを待って(うまくいけば、何も破損していない)、dnsスイッチを実行します。
これがあなたの評価に役立つことを願っています。
読み取りボリュームが大きく、マスター/スレーブレプリケーションが必要なため、EC2 MySQLインスタンスの使用を選択しました。もちろん、複数のRDSインスタンスを起動して、それらの間でMySQLレプリケーションをセットアップすることもできますが、EC2インスタンスを使用してそれを管理するScalr.netを使用しています。
基本的に、必要なMySQLインスタンスの数を維持し、レプリケーションのセットアップを自動化し、マスターが終了した場合にマスターへのスレーブ昇格の自動フェイルオーバーを処理するなど、ScalrにScalrに指示するだけです。SQLダンプバックアップとEBSボリュームスナップショットの両方を実行します。マスター。そのため、新しいスレーブを作成する必要がある場合は、最後のマスタースナップショットのEBSボリュームを一時的に自動的にマウントしてスレーブDBを初期化し、適切なポイントからレプリケーションを開始します。すべてのポイントアンドクリック:)(そして、いいえ、私はScalrやその他のものでは動作しません。Scalrは、サービスを使用したくない場合はオープンソースとして使用できます)
EC2上のMySQLとRDS MySQL
EC2上のMySQLの利点 Amazon EC2リージョン間レプリケーション
Amazon EC2リージョン間でスナップショットをコピーする
MySQL EC2のEBSストライピングを使用したRAID 0
EC2上のMySQLには、3TBを超えるディスク容量(サイズに応じてこれは必要ありません)を接続できます。
EC2でのMySQLの欠点
RDSと比較した構成、監視、保守
RDSで利用可能なポイントインタイムバックアップ
RDS MySQLよりもIOPSが小さい(RAID 0の後でも)現在、EC2のMySQLには6つのディスクを備えた10800、RDS MySQLでは12500 IOPS 16KB
私は数か月間RDSを試してきました、そしてここに私が持っているいくつかの問題があります:
SQLプロファイラーの使用は注意が必要です。プロファイラーをサーバーに直接接続することはできないため、いくつかのストアドプロシージャを実行して、分析可能なログファイルを作成する必要があります。彼らはそれがどのように行われるかについていくつかの提案を提供していますが、それはユーザーフレンドリーではありません。認定されたSQL専門家にこのような作業を依頼することをお勧めします。
Amazonがインスタンスをバックアップしている間、個々のデータベースを復元することはできません。私はいくつかの個別の顧客固有のデータベースを備えたWebアプリを持っており、私の解決策は、SQLを実行しているEC2インスタンスを起動して本番RDBデータベースに接続し、データをインポートしてから、EC2インスタンスにバックアップすることでした。もう1つの解決策は、スキーマを再作成してデータを復元ポイントに戻す大規模なSQLスクリプトを(アプリサーバー上に)作成するサードパーティツールを使用することでした。
今週末も同じ質問がありました。メンテナンスを行うRDSには、1週間あたり4時間のダウンタイムウィンドウがあります。EC2のマイクロインスタンスを使用できる場合、RDSはより高価に見えました。(これは、トラフィックが最小のテストインスタンスに当てはまります)また、権限がないため、RDSインスタンスのタイムゾーンを変更できませんでした。
私は実際に別の会社によるEC2上のmysql であるhttp://xeround.com/を実際に見ています。彼らはInnoDBを使用せず、代わりにIDGと呼ばれる独自のエンジンを持っています。調査を開始したばかりですが、ベータ版であり、500MBの空き容量があります。