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

AmazonEC2にMongoDBをデプロイするための6つのベストプラクティス

    Amazon EC2は、MongoDBホスティングをデプロイおよび管理するための優れたプラットフォームです。 EC2プラットフォームは、非常に機能的なクラウドプラットフォームであり、デプロイを最適化するための膨大な数のノブ(問題になる場合があります)を提供します。この投稿では、さまざまなデプロイからAWSサーバーでMongoDBを管理するための6つのベストプラクティスを共有します。

    1. ディスクパフォ​​ーマンス

      長年にわたり、これはAmazon EC2の問題でしたが、Provisioned IOPSのリリースにより、この問題はほぼ完全に解消されました。一貫したディスクパフォ​​ーマンスが必要な本番クラスターがある場合は、プロビジョンドIOPSを使用してください。さらに一歩進めて、アプリケーショントラフィックとディスクトラフィックのパフォーマンスを分離したい場合は、EBS最適化インスタンスを使用してください。何をしているのかがわからない限り、RAIDに近づかないでください。また、問題が発生した場合に備えて運用スタッフがサポートしてくれます。

    2. DNS名とIPアドレス

      デフォルトでは、インスタンスに割り当てられたDNS名とパブリックIPアドレスは静的ではありません。インスタンスを再起動すると(最終的には再起動します)、別のIP名とDNS名を取得する場合があります。これにより、アプリとデータベース間の接続が切断されます。これを回避するには、いくつかの方法があります。

      • 静的なエラスティックIPを使用する(追加コスト)
      • Route 53 DNSを設定し、独自のDNSマッピングを設定します
    3. アベイラビリティーゾーン

      レプリカセットをリージョン内のアベイラビリティーゾーンに分散します。これにより、特にAWSが定期的なメンテナンスを行っている場合に、レプリカセットの可用性が向上します。極端な場合、AWSのリージョン全体にレプリカセットをデプロイすることをお勧めします。

    4. セキュリティグループ

      セキュリティグループは、AWSプラットフォームの「ファイアウォール」です。これらは強力なツールであり、活用する必要があります。 MongoDBサーバーへのアクセスをロックダウンして、サーバーがインターネットに公開されないようにしてください。理想的には、フロントエンドサーバーまたは中間層サーバーのみがデータベースにアクセスできます。セキュリティグループは、AWSアカウント間でも、リージョンで使用できます。

    5. 予約済みインスタンス

      MongoDBサーバーが1年365日稼働している場合、AWSリザーブドインスタンスを購入することで、コストをほぼ50%削減できます。それはあなたが前払いで一定の金額を支払うことを要求するでしょうが、長期的にはあなたにお金を節約するでしょう。リザーブドインスタンスは課金構造であり、実行中の任意のインスタンスに適用できます。

    6. 10genのベストプラクティス

      10genは、各クラウドプラットフォームのベストプラクティスをまとめるのに最適です。 Amazonの10genのベストプラクティスを読んでください。

    AmazonにMongoDBをデプロイする際に考慮すべき、機能以外の側面もいくつかあります。詳細については、他の投稿「AWSでMongoDBをホストするときに尋ねる10の質問」を参照してください。

    ScaleGridでは、アベイラビリティーゾーンまたはリージョン全体にMongoDBレプリカセットをシングルクリックでデプロイできます。当社のプラットフォームは、バックアップとリカバリを自動化し、プロビジョンドIOPSのみを使用し、お客様がMongoDBのベンチマークを簡単に実行できるようにし、MongoDBクラスターでのフェイルオーバーをシミュレートします。他にご質問、コメント、機能のリクエストがございましたら、お気軽にお問い合わせください。 [email protected]までメールでお問い合わせください。


    1. MongoDBの単一フィールドの配列内の文字列値を連結します

    2. 条件付きで2つの追加コレクションに参加する方法

    3. MongoDB$text検索でANDとNOTを行う方法

    4. 本番環境で使用するためにMongoDBJavaドライバーMongoOptionsを構成するにはどうすればよいですか?