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

DigitalOceanでMongoDBをホストするための最良の方法

    MongoDBは、世界で3番目のオープンソースデータベースであり、1番目のNoSQLデータベースです。これは、スキーマを使用してJSONのようなドキュメントを使用するクロスプラットフォームのドキュメント指向データベースであり、スタートアップアプリから、最新のアプリを開発するエンタープライズレベルの企業まで幅広く活用されています。クラウドデータベースのデプロイの大部分はAWS、Azure、またはGoogle Cloud Platformで実行されていると思われるかもしれませんが、特に中小規模の企業は、MongoDB®のホスティングのために開発者に優しいクラウドプロバイダーであるDigitalOceanに注目しています。ニーズ。この投稿では、DigitalOceanでMongoDBをホストするための最良の方法について説明します。これには、使用するのに最適なインスタンスタイプ、ディスクタイプ、レプリケーション戦略、マネージドサービスプロバイダーが含まれます。

    MongoDBのDigitalOceanの利点

    では、DigitalOceanがAWSやAzureなどの他の人気のあるMongoDBホスティングプロバイダーの魅力的な代替手段となる理由は何でしょうか。前述のように、DigitalOceanは、シンプルで理解しやすいプラットフォームを備えているため、開発者にとって非常に使いやすいです。自信を持って展開を開始して実行できるようにするために、このクラウドプロバイダーを通じて認定を受ける必要はありません。 SSDベースのクラウドホスティングを月額わずか5ドルからの簡単な価格で提供しているため、開発者は新しいアプリケーションをクラウドでシームレスに構築、テスト、展開するのに理想的(かつ手頃な価格)です。最も印象的なのは、コストに対してパフォーマンスを犠牲にしていないことです。 DigitalOcean対AWS対AzureでMongoDBのパフォーマンステストを実行したところ、DigitalOceanのパフォーマンスは、展開の高スループットと低遅延の両方で、より良いとは言えないまでも一致していることがわかりました。

    DigitalOceanドロップレット

    DigitalOceanは、ドロップレットと呼ばれるSSDベースの仮想マシンに特化しており、4つの単純なカテゴリに分類されます。最も基本的なDropletは、月額わずか5ドルから共有CPUを使用する標準インスタンスです。トラフィックの少ないアプリケーション、小規模なデータベース、開発/テスト環境には十分ですが、MongoDBの本番環境に共有クラスターを利用することはお勧めしません。また、CPUを集中的に使用するワークロードには十分な専用のCPU最適化ドロップレットを提供しますが、MongoDBホスティングには理想的ではない低メモリを提供します。

    中規模のMongoDBワークロードをデプロイする場合は、vCPUごとに4GBのメモリを提供する専用インスタンスである最も人気のある汎用ドロップレットをお勧めします。これは通常、実稼働環境やトラフィックの多いアプリケーションには十分すぎるほどであり、8 GBのメモリ、2つのvCPU、4 TBの転送、25GBのSSDディスクスペースで月額60ドルから始まります。 DigitalOceanは最近、RAMを大量に消費するアプリケーションと高性能データベース用に設計された専用インスタンスであるメモリ最適化ドロップレットをリリースしました。これにより、負荷の高いMongoDBアプリケーションにとって魅力的なソリューションになります。

    米国(ニューヨーク市とサンフランシスコ)、カナダ、オランダ、シンガポール、英国を含む世界中の12のデータセンター地域のDigitalOceanにMongoDBを導入できます。 、ドイツ、インド。

    DigitalOceanディスクタイプ

    MongoDBがDigitalOceanで非常に優れたパフォーマンスを発揮する理由の1つは、クラウドデータベースの展開に理想的なSSDディスクのためです。これらは優れたスループットを提供し、データベースでインデックスを実行したり、マシンを修復したりするのに大きなメリットをもたらし、AWSでの標準のMongoDBデプロイメントよりも大幅な時間を節約します。また、AmazonAWSUS-EastからDigitalOceanNewYorkデータセンターまでの驚くほど低いレイテンシーを提供します。これは、AWSの中間層でフロントを実行しているが、MongoDBクラスターにDigitalOceanを使用したいアプリケーションに最適です。

    >

    MongoDBレプリケーション戦略

    本番環境でDigitalOceanでMongoDBを実行している場合は、レプリカセットを使用してデプロイし、クラスターの高可用性とデータの冗長性を確保することをお勧めします。 DigitalOceanは、AWSおよびAzureとともに、99.99%のアップタイムSLAを提供しますが、これはほぼ完璧に聞こえますが、0.01%は1年間で52.6分のダウンタイムに相当します。これは、顧客、訪問者、および従業員がデータベースにアクセスできなくなる約1時間であり、顧客維持とブランドの評判に大きな影響を与える可能性があります。

    MongoDBレプリカセット

    幸い、DigitalOceanでMongoDB用に地理的に分散した3ノードのレプリカセットを設定することで、データセンターが失われて展開が停止するリスクを大幅に軽減できます。この構成を設定するには、いくつかのオプションがあります。最初のオプションは、2つのデータ保持ノードを提供するプライマリ-セカンダリ-アービターのセットアップと、1つが使用できなくなった場合にどのレプリカを引き継ぐかを決定する投票メンバーとして機能するアービターです。 。これは、アービターがデータを保持せず、デプロイにかかるコストが少ないため、最も手頃なオプションですが、フェイルオーバーイベントで引き継ぐことができるノードが1つ少なくなります。最適なレプリケーション戦略は、3つのデータ保持ノードを活用し、プライマリリージョンがダウンした場合に、2つの別々のデータセンターにフェイルオーバーできるプライマリ-セカンダリ-セカンダリセットアップです。

    DigitalOceanで#MongoDBをホストする最良の方法クリックしてツイート

    MongoDBシャーディング

    MongoDBシャーディングは、複数のマシン間でデータを水平方向にスケールアウトできる高度な形式のデプロイです。各シャードには複数のレプリカセットが含まれており、高可用性を実現するためにさまざまなデータセンターの場所に分散できるため、これはセットアップと管理が非常に複雑な構成です。シャーディングは、単一のサーバーで取得できるより多くの容量を必要とする非常に大規模なデータセットまたは高スループットの展開に最適です。通常の展開では、必要に応じてサーバーに容量を追加することで垂直方向に拡張できますが、シャーディングを使用すると、データと負荷を複数のマシンに分割して水平方向に拡張できます。シャード環境のセットアップが完了したら、必要に応じてシャードを追加して、アプリケーションの成長をサポートできます。

    ScaleGridでは、専用ホスティングプランの下でMongoDBをDigitalOceanでホストするためのスタンドアロン、2レプリカ+アービター、3レプリカ、および高度なシャーディング構成を提供します。 16コア、48 GBのRAM、950GBのストレージを備えたX4XLargeプランまでの1か月。アプリケーションのニーズに合わせて、無制限の数のレプリカを使用してMongoDBレプリカセットをカスタマイズすることもできます。

    DigitalOceanでのMongoDBホスティングの管理

    ここで、最終的な質問に取り掛かります。DigitalOceanデプロイメントでMongoDBを自己管理する必要がありますか、それとも完全に管理されたサービスとしてのデータベース(DBaaS)プラットフォームを活用する必要がありますか?答えは、時間、知識、および展開で発生する重大な問題を処理するための常時アクセス可能性に要約されます。

    管理とメンテナンスのタスク

    MongoDB DBaaSプラットフォームを使用すると、バージョンアップグレード、スケーリング、無料バックアップ、復元、プロビジョニング、プロビジョニング解除、レプリケーション、圧縮、インデックス作成など、時間のかかるすべての管理およびメンテナンス操作を自動化できます。管理、OSパッチ、ログローテーション。デプロイメントのサイズによっては、これには1か月に1〜2日かかる場合があり、最大で24時間体制で働くMongoDBエキスパートのフルタイムの軍隊になります。 DBaaSプラットフォームを活用することの大きな利点は、管理操作が自動化されるため、人的エラーのリスクを排除できることです。また、DigitalOcean上のMongoDBクラスターを完全に保護された最新の状態に保つため、無視されたデータベースで発生する可能性のある潜在的なバグや脅威にデプロイをさらすことはありません。

    パフォーマンスの監視

    モニタリングは、MongoDBデプロイメントを管理するための大きなコンポーネントでもあります。 DBaaSプラットフォームを使用すると、すべての主要なMongoDBメトリックに関するアラートを自動化できるため、不要なしきい値に達したときに通知を受け取り、高度な監視コンソールにアクセスして、プライマリインスタンスとセカンダリインスタンス全体のすべてのMongoDBおよびOSメトリックを分析できます。そして任意の期間にわたって。さらに、ScaleGridのようなDBaaSを使用すると、Slow Query Analyzerを活用して、実行速度の遅いクエリを視覚化し、展開パフォーマンスに影響を与える前に最適化することができます。

    サポートのトラブルシューティング

    最後になりましたが、絶対に重要なことは、サポートするためのアクセシビリティです。午前4時に上司からの必死の電話で目が覚めた場合、アプリケーションがダウンしている理由と、どれだけ早く元に戻すことができるのか疑問に思っている場合は、私が何を話しているのかを正確に理解できます。毎分のダウンタイムは数千ドルのビジネスを引き起こす可能性があり、さらに悪いことに、セキュリティ違反はあなたのビジネスを完全にシャットダウンし、あなたの評判に永遠の汚れを与える可能性があります。 DBaaSプラットフォームを活用することで、これらの重要な問題の90%以上を先取りし、MongoDBエキスパートのチームを24時間年中無休で配置して、避けられない10%を確保し、問題をすばやく特定して解決し、デプロイを実現できます。正常な実行状態に戻ります。

    ScaleGridでは、2013年にMongoDBとクラウドコンピューティングをホストするための新進気鋭のロックスターとしてDigitalOceanを特定し、最初のDBaaSでした。 MongoDBDigitalOceanのサポートを開始するためのプラットフォーム。現在でも、DigitalOceanでのMongoDBのホスティングを自動化し、エンタープライズグレードのデータベース管理ツールを活用してクラウドでのデプロイメントのパフォーマンス、セキュリティ、可用性を最適化できる、完全に管理された唯一のDBaaSプラットフォームです。 DigitalOceanでMongoDB用のDBaaSの高度な機能のいくつかを試すことに興味がある場合は、自動化ツールの探索にクレジットカードを必要とせずに30日間の無料トライアルを開始し、MongoDBプロバイダーの比較ページをチェックしてください。 MongoDB Atlas、mLab、ObjectRocket、ComposeforMongoDBとどのように連携するかをご覧ください。


    1. なぜMongoDBはそれほど多くのスペースを占めるのですか?

    2. ロギングに使用する必要があるNoSQLデータベースはどれですか?

    3. MongoDB2.6アグリゲーションフレームワークの改善

    4. マングースのネストされた配列