Amazon AWSで本番のMongoDBインスタンスをホストしていますか? ScaleGridでは、AWSで数百の本番MongoDBインスタンスを管理し、その過程でいくつかのことを学びました。これは、展開を管理し続けるときに自分自身に尋ねて答える必要がある10の質問のセットです。以下の情報のほとんどすべては、他のクラウドサービスプロバイダーにも当てはまります。
-
高可用性(HA)プランは何ですか?
単一のインスタンスを使用している場合は、レプリカセットを確認する必要があるかもしれません。レプリカセットを使用するときは、MongoDBの高可用性のために各レプリカセットを異なるアベイラビリティーゾーンにデプロイするように注意してください。
-
ディザスタリカバリ(DR)計画は何ですか?
すべてのレプリカセットを1つのリージョンにデプロイする場合、2011年4月のようにAWSリージョン全体が溶けてしまうとどうなりますか? MongoDBレプリカセットをリージョン間で分散することを検討することをお勧めします。
-
DR計画をテストしましたか?
マシン、ネットワーク、およびディスクの障害をシミュレートして、障害状態でのクラスターの動作を理解します。本番環境で最初のフェイルオーバーが発生することは望ましくなく、MongoDBクラスターがAWSの停止に耐えられることを確認する必要があります。
-
インスタンスをバックアップしていますか?
はい、レプリカセットがある場合でもバックアップが必要です。誤って消去した場合や、アプリの新しいバージョンですべてのデータが破損した場合に対処するには、バックアップが必要です。定期的に、できれば数時間ごとにバックアップしていることを確認してください。プライマリに大きな影響を与えないように、セカンダリからバックアップできます。 MongoDBバックアップオプションの一般的な概要については、ブログ投稿-MongoDBバックアップオプションを参照してください。
-
バックアップは機能しますか?
MongoDBバックアップのリカバリを試しましたか?すべてのレプリカを回復して再同期するのにどのくらい時間がかかりますか?答えがわからない場合は、今がドライランを実行してエンドツーエンドのリカバリを試す良い機会です。
-
本番データを使用してアプリケーションのアップグレードをどのようにテストしますか?
MongoDBアプリケーションのアップグレードで最も難しい部分の1つは、既存の本番データを使用したテストです。本番データを使用してアプリケーションのアップグレードをテストできる、隔離された本番環境のような環境を構築します。
-
どのような種類のEBSボリュームを使用していますか?
AWSでMongoDBに標準のEBSボリュームを使用している場合は、新しくプロビジョニングされたIOPSボリュームに切り替えることを検討してください。少し高価ですが、1ペニーの価値があります。 IOパフォーマンスの変動がはるかに少なくなり、一晩中眠りやすくなります。
-
MongoDBインスタンスのパフォーマンスをベンチマークしましたか?
まだの場合は、Yahooクラウドサーバーベンチマーク(YCSB)またはmongoperfを使用してMongoDBのベンチマークを行うことができます。データベースから何を得ているかを知ることは良いことです。
-
インスタンスをどのように監視しますか?
インスタンスを監視していない場合は、今から始めるのがよいでしょう。 ScaleGridのMongoDBMonitoringConsoleをお試しください。または、10genには無料で利用できるMongo Monitoring Service(MMS)があり、MongoDBクラスターの監視に使用できます。
-
データベースをインターネットに公開していますか?
今日、強力なCPUおよびパスワードクラッキングツールは、数時間のうちにパスワードをクラッキングします。 Amazonセキュリティグループを使用して、MongoDBデータベースへのアクセスをロックダウンし、DBへのフロント/ミッドティアアクセスのみを許可します。
ScaleGridでは、お客様のためにこれらの質問の多くに回答するのを支援し、AWSでのMongoDBデプロイメントの管理に役立つこれらのヒントを共有したいと考えています。可用性ゾーンまたはリージョン全体にMongoDBレプリカセットをシングルクリックでデプロイし、バックアップとリカバリのプロセスを自動化し、プロビジョニングされたIOPSのみを使用し、お客様がMongoDBのベンチマークを行い、MongoDBクラスターのフェイルオーバーをシミュレートする簡単な方法を提供します。他に質問/コメントまたは機能のリクエストがある場合は、ぜひご連絡ください。 [email protected]までメールでお問い合わせください。