AWSにMongoDBをデプロイする場合、パフォーマンスは重要な考慮事項です。ハードウェアの観点から、EC2でのMongoDBのパフォーマンスは、主にRAMとディスク速度の2つの要因によって左右されます。通常(常に例外があります)、大量のRAMを提供する利用可能なサイズオプション(R3、I2、C3 / C4)が豊富にあるため、CPUもメモリも問題にはなりません。適切なインスタンスタイプを選択する方法の詳細については、他のブログ投稿を確認してください:適切なEC2インスタンスタイプを選択する方法
これまで、ディスクの速度とレイテンシーはAmazonEBSで常に問題となってきました。ただし、アマゾンウェブサービスは現在、ディスクパフォーマンスを支援するためのいくつかのオプションを提供しています。
-
プロビジョニングされたIOPSディスク
プロビジョニングされたIOPSモデルでは、ディスクの作成時に、ディスクでサポートするIOPSの数を指定できます。プロビジョニングするIOPSが多いほど、ディスクが処理できるスループットが高くなります。最大4000IOPS/ディスクまで使用できます。ただし、IOPSは月額IOPSあたり0.065ドルで高額になる可能性があります。たとえば、ディスクに4000 IOPSをプロビジョニングする場合、IOPSだけで月額260ドルの費用がかかります。複数のサーバーがある場合、これはすぐに加算される可能性があります。
-
ローカルSSD
これは、AmazonAWSでのディスクパフォーマンスに最適なオプションです。ローカルSSDは、すべてのAWSディスクオプションの中で最高のスループットとレイテンシーの動作を提供します。ただし、理由から「ローカル」と呼ばれています。何らかの理由で仮想マシン(VM)が停止すると、割り当てられたローカルストレージが解放されます。したがって、データの信頼性の負担はユーザーに直接あります。 2つの異なるアベイラビリティーゾーン(AZ)に2つのローカルSSDデータストアを展開し、それを解決済みと呼ぶことができますか?完全ではありません。数年前の米国東部のようにAWSで地域全体が停止した場合、すべてのAZでローカルSSDが失われることが予想されます。これらの理由から、ローカルSSDインスタンスをデータのプライマリデータストアとして使用しないでください。
高性能MongoDB:3ノードレプリカセット
これらの問題を念頭に置いて、AWSに高性能のMongoDB構成を導入します。高性能クラスターは、ローカルSSDとEBSでプロビジョニングされたIOPSディスクのハイブリッドを使用して、高性能と高信頼性の両方を実現します。一般的な構成は、3ノードのレプリカセットを使用して展開されます。
- プライマリとセカンダリ1はローカルSSDディスクを使用します
- セカンダリ2はEBSでプロビジョニングされたIOPSを使用します
高性能MongoDB3ノードレプリカセット
これはどういう意味ですか?プライマリとセカンダリ1はローカルSSDで実行されているため、AWSマシンから可能な限り最高のディスクパフォーマンスを得ることができます。ネットワークベースのEBSはもう必要ありません。ただ、高速なローカルSSDを使用するだけです。プライマリへの読み取りと書き込み、およびセカンダリ1からの読み取りでさえSSD速度で動作します。セカンダリ2は、データディスクにEBSプロビジョニングされたIOPSを使用し、クラスターに構成するIOPSの量を構成できます。この構成は、ローカルSSDディスクを使用する場合でも、データの完全な安全性を提供します。現在、Large、XLarge、X2XLarge、X4XLargeの4つのサイズを提供しています。詳細については、料金ページの「Bring Your Own Cloud(BYOC)」セクションと「DedicatedClusters」セクションを参照してください。
書き込みワークロードが非常に高い場合、EBSインスタンスがSSDインスタンスに追いついていない可能性があります。このシナリオでは、いくつかのオプションを利用できます。サポートチームが喜んでそれらをご案内します。バックアップ、復元、クローン、スケーリング、コンパクトなど、既存のすべての機能は引き続き通常どおり機能します。ご不明な点がございましたら、[email protected]までお問い合わせください。