数か月前に、OpsWorks で MongoDB の 3 ノード レプリカ セットをセットアップしようとしました。私の経験を少し共有します。
1) 単一の MongoDB をインストールする方法: EDelight Chef MongoDB Cookbook
を使用して、単一の mongodb を簡単にインストールできます。カスタム opsworks シェフ リポジトリにサブモジュールとして追加するだけです。
それを機能させるには、カスタムレイヤーを作成してMongoDBと呼び、次のレシピを実行します
- セットアップ: mongodb:10gen_repo
- 構成: mongodb :デフォルト
これにより、MongoDB の最新バージョンがインストールされます。
注: Ubuntu インスタンスを使用しました。
2) MongoDB のベスト プラクティス
MongoDB のエンジニアやカスタマー サービス担当者と話すと、MongoDB の推奨セットアップは 3 ノードのレプリカ セットであることがわかります。これは、1 つのマスターと 2 つのリード レプリカが異なるアベイラビリティ ゾーンにあることを意味します。また、例を挙げると、理想的なセットアップには大量の RAM があります。AWS マーケットプレイスで見つけることができる MongoDB によって提供される最小のインスタンスは、標準的な大規模です。
また、RAID10 で EBS を使用することを検討する必要があります。おそらく予約済み IOPS です...
詳細については、ホワイト ペーパーMongoDB on AWSを参照してください。
3) セキュリティに関する考慮事項
理想的には、アプリケーション インスタンスのみが DB インスタンスにアクセスできるようにします。AWS では、カスタム ルールを使用してセキュリティ グループを作成し、作成したばかりのグループに EC2 インスタンスを割り当てることができます... OpsWorks に関しては、非常に緩い制限を持つデフォルトのセキュリティ グループを使用する必要があるため、これとは異なります。AWS は常に、厳格なものよりも緩い権限を採用します。
4) 時間と費用に関する考慮事項
推奨される設定が、大規模なインスタンスを使用する 3 ノードのレプリカ セットである場合、DB に少なくとも 600 ドル (オンデマンド) が必要であり、これにより予約済み IOPS や EBS などが追加されることはありません。このセットアップを自動化することは可能ですが、単純ではありません。あなたを動かすには、時間か、その分野の専門家が必要です。これに対処するリソースと人員がいる場合は、それを選択してください。あなたが小さな開発チームの一員であり、より多くのコーディングを行い、操作を減らしたい場合は、読み進めてください。
5) 信頼できるマネージド ソリューションを見つける
最初は、MongoDB をサービスとして提供するサード パーティの会社を利用するという考えに消極的でした。さまざまなオプション (マネージド、AWS Marketplace、OpsWorks、EC2 の直接インストール) を十分に評価した結果、私たちの小さなチームにとって最善の方法は MongoLab または MongoHQ のいずれかを使用することであると結論付けました。すべてのサイズと価格の MongoDB インスタンスをホストおよび管理します。ホスティング (AWS、Rackspace など)、リージョン、および AZ を選択することもできます。価格的にはハードウェアだけで考えると割高になりますが、前述したように価格だけでなくMongoDBの運用時間も考慮する必要があります。
私はそこに行って、それを行い、MongodDB をホストするために OpsWorks を使用しなくなりました。うまくいけば、これで時間と頭痛の種を節約できます。