web-dev-qa-db-ja.com

小さなサーバーでのAmazonRDSとMySQLの速度に関して、誰かが経験を持っていますか?

EC2SmallとAmazonRDS-どちらがMySQLの方が速いですか?

(私は1つのデータベースを持っており、適切に索引付けされ、調整されています。各テーブルに約10,000行あります。)

パフォーマンスはどうですか?

7
Alex

まず、私はRDSを使用していません。したがって、これを絶対的なものと見なさないでください。 EC2と同様に、RDSはインスタンスタイプによって分類されるため、コンピューティングに関しては同じことがわかります。違いは、「構成」とハードウェアの専用度にあります。

RDSの利点:

  • ハードウェアはRDSの実行専用であり、「汎用」インスタンスとは共有されません
  • おそらくより良いネットワークI/O
  • 優れた汎用の「すぐに使える」構成を提供します
  • 更新はあなたのために管理されます
  • 基本的なレプリケーションのセットアップが簡単になる可能性があります
  • 設定に適したインターフェース
  • バックアップストレージはコストに含まれています

RDSの欠点:

  • 同等のEC2インスタンスよりもコストが高い(約40%多い)
  • 限られたカスタマイズ
  • パフォーマンスは大きく変動する可能性があります(特にディスクI/O)
  • 単一のRDSインスタンスを使用する場合、必要なメンテナンスによりダウンタイムが発生する可能性があります(マルチAZデプロイメントでは回避可能)
  • それはあなたのコントロールの外にあります

EC2の利点:

  • RAIDアレイをセットアップしてディスクI/Oを増やすことができます
  • カスタマイズ(my.iniへのアクセス)とメンテナンスに関する柔軟性の向上
  • より低いコストで
  • 適切に調整すれば、同等以上のパフォーマンスを達成できるはずです。
  • 従来のレプリケーションとフェイルオーバーが可能
  • カスタム監視/分析をセットアップできます-そして問題に直接対処できます

EC2の欠点:

  • セットアップにはより多くのスキル/労力が必要です
  • 「箱から出して」のパフォーマンスはRDSほど良くありません
  • 安定性の低いネットワークI/O

私は次のことを提案します:

  • 煩わしくない場合やMySQLを十分に調整できない場合は、RDSを使用してください
  • ネットワークI/Oが大きな違いを生む場合(通常、多数のスレッドを同時に使用するセットアップ)-RDSはより安定したパフォーマンスを提供します
  • きめ細かい制御が必要な場合(またはパフォーマンスを向上させる必要がない場合)、またはコストを意識している場合は、EC2を使用してください
  • 成長するにつれてMySQLについて学びたい場合は、EC2を使用してください

特定のユースケースでは、おそらくそれぞれをベンチマークして、それらがどのように積み重なるかを確認するのが最善のオプションです。結局、パフォーマンスはセットアップごとに異なります。

参考文献:

11
cyberx86

@ cyberx86の答えにコメントすることができないので、私は自分の答えでチップインすることを余儀なくされています。 Re:RDSDBのパフォーマンスはEC2DBのすぐに使えるパフォーマンスの北にあります...

AWSリソースを徐々に減らしてきました。可能な場合は中規模から小規模のインスタンスに変更し、アプリケーションレベルで最適化するなどです。現在の取り組みは、MariaDBのRDS小規模インスタンスとMariaDBを使用したEC2小規模インスタンスのテストです(おそらく$ 8 /を節約できます)。 mo)。必要なデフォルトの文字セットと照合順序を設定し、Ariaをデフォルトのテーブルタイプにする以外に、EC2インスタンスでMariaDBを最適化しようとはしていません。

私のテストセットは150のテーブルを含むデータベースで、ほとんどが1000行未満で、1つは約500k、もう1つは10milです。アーカイブサイズ、taredおよびgzip圧縮されたSQLが存在する場合はドロップ、ボイラープレートを作成する場合、90m弱です。 DBにインストールされ、それは1.4GBです。以下のすべての操作は、必要に応じてmysqlまたはmysqldumpのいずれかを使用して、同じリージョン(us-east)の追加のEC2インスタンスから実行されます。 RDSインスタンスと呼び出し元のEC2インスタンスはus-east-1aであり、EC2MariaDBインスタンスはus-east-1cです。

Export from RDS-small MariaDB to the archival format averaged 51s across 10 tests.
Export from EC2-small with MariaDB to the archival format averaged 40s across 10 tests.
Import to RDS-small MariaDB from the archival format averaged 8:17 across 10 tests.
Import to EC2-small with MariaDB from the archival format averaged 5:33 across 10 tests.

これは科学的なテストではありませんが、実行の一貫性を保つように努めました。この結果は私が期待したものではありませんでした。 「EC2withDBまたはRDS?」という質問をする人をお勧めします。アプリケーションの操作とテストの中からベンチマークを1つか2つ見つけてください...それから、別のカップルを見つけてください。これが今日私がやろうとしていることです。

1
Matt Murphy