sql >> データベース >  >> NoSQL >> MongoDB

AmazonEC2上の高性能MongoDBクラスター

    AWSにMongoDBをデプロイする場合、パフォーマンスは重要な考慮事項です。ハードウェアの観点から、EC2でのMongoDBのパフォーマンスは、主にRAMとディスク速度の2つの要因によって左右されます。通常(常に例外があります)、大量のRAMを提供する利用可能なサイズオプション(R3、I2、C3 / C4)が豊富にあるため、CPUもメモリも問題にはなりません。適切なインスタンスタイプを選択する方法の詳細については、他のブログ投稿を確認してください:適切なEC2インスタンスタイプを選択する方法

    これまで、ディスクの速度とレイテンシーはAmazonEBSで常に問題となってきました。ただし、アマゾンウェブサービスは現在、ディスクパフォ​​ーマンスを支援するためのいくつかのオプションを提供しています。

    1. プロビジョニングされたIOPSディスク

      プロビジョニングされたIOPSモデルでは、ディスクの作成時に、ディスクでサポートするIOPSの数を指定できます。プロビジョニングするIOPSが多いほど、ディスクが処理できるスループットが高くなります。最大4000IOPS/ディスクまで使用できます。ただし、IOPSは月額IOPSあたり0.065ドルで高額になる可能性があります。たとえば、ディスクに4000 IOPSをプロビジョニングする場合、IOPSだけで月額260ドルの費用がかかります。複数のサーバーがある場合、これはすぐに加算される可能性があります。

    2. ローカル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]までお問い合わせください。


    1. 基本的なMongoDBコマンドとは何ですか?それらの使用方法は?

    2. Redisが1〜2分ごとにSIGTERMを受信して​​いる理由を特定する

    3. Mongodb Mongoimportが大きすぎます:解析エラーの失敗

    4. SQLのようなRedisデータベーステーブルを設計しますか?