MongoDBデータベースのデプロイ
MongoDBは、ドキュメント指向のデータベース・プログラムです。MongoDBはNoSQLデータベース・プログラムとして分類され、スキーマを持つJSONに似たドキュメントを使用します。
アーキテクチャ
このリファレンス・アーキテクチャでは、3つのMongoDBノードと1つのMongoDB Ops ManagerをOracle Cloud Infrastructureにデプロイします。
次の図は、この参照アーキテクチャを示しています。
図mongodb-oci.pngの説明
アーキテクチャには、次のコンポーネントがあります。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。地域は他の地域から独立しており、広大な距離で(国または大陸間で)分離できます。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定するカスタマイズ可能なソフトウェア定義ネットワークです。従来のデータ・センター・ネットワークと同様に、VCNを使用すると、ネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる複数の重複しないCIDRブロックを含めることができます。VCNは、リージョンまたは可用性ドメインにスコープ指定できるサブネットにセグメント化できます。各サブネットは、VCN内の他のサブネットと重複しない連続したアドレス範囲で構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックまたはプライベートにできます。
- 動的ルーティング・ゲートウェイ(DRG)
DRGは、VCNとリージョン外のネットワーク(別のOracle Cloud InfrastructureリージョンのVCN、オンプレミス・ネットワーク、別のクラウド・プロバイダのネットワークなど)との間のプライベート・ネットワーク・トラフィックのパスを提供する仮想ルーターです。
- ルート表
仮想ルート表には、通常はゲートウェイを介して、サブネットからVCN外部の宛先にトラフィックをルーティングするルールが含まれます。
- セキュリティ・リスト
サブネットごとに、サブネット内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。
- インターネット・ゲートウェイ
インターネット・ゲートウェイでは、VCNのパブリック・サブネットとパブリック・インターネット間のトラフィックが許可されます。
- 可用性ドメイン
可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。可用性ドメインは、電源や冷却などのインフラストラクチャや内部可用性ドメイン・ネットワークを共有しません。したがって、ある可用性ドメインで障害が発生しても、リージョン内の他の可用性ドメインに影響する可能性はほとんどありません。
- フォルト・ドメイン
フォルト・ドメインとは、可用性ドメイン内のハードウェアおよびインフラストラクチャをグループ化したものです。各可用性ドメインには、独立した電源とハードウェアを持つ3つのフォルト・ドメインがあります。リソースを複数のフォルト・ドメインに分散する場合、アプリケーションでは、フォルト・ドメイン内の物理サーバー障害、システム・メンテナンスおよび電源障害を許容できます。
- Ops Manager
Ops Managerは、MongoDBデプロイメントを管理します。クラスタを最適化し、操作上のリスクを軽減できる機能を提供します。
- MongoDBノード
これらは、MongoDBを実行しているコンピュート・ノードです。
- ブロック・ボリューム
ブロック・ストレージ・ボリュームを使用すると、ストレージ・ボリュームを作成、アタッチ、接続および移動し、ストレージ、パフォーマンスおよびアプリケーション要件を満たすようにボリューム・パフォーマンスを変更できます。ボリュームをアタッチしてインスタンスに接続した後、通常のハード・ドライブと同様にボリュームを使用できます。データを失うことなく、ボリュームを切断して別のインスタンスにアタッチすることもできます。
複数の可用性ドメインを持つリージョンで同じアーキテクチャを使用できます。
推奨事項
実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。開始点として次の推奨事項を使用します。
- コンピュート・シェイプ、Ops Manager
スループットを向上させるには、VM.Standard2.24以上のシェイプ(少なくとも2つの仮想ネットワーク・インタフェース・カード(VNIC))を使用します。この設定では、Ops Managerを効率的にホストするのに十分なCPUおよびメモリーが提供されます。
- コンピュート・シェイプ、MongoDBノード
VM.DenseIO2.24シェイプを使用します。これにより、1秒当たりのI/O操作が増加し、最大24.6 Gbpsのネットワーク帯域幅を確保するために、ローカルにアタッチされたストレージが提供されます。RAID構成(RAID 10)を使用して、ローカルに接続されたディスクでのデータ保護を強化します。
- ブロック・ボリューム
ローカルにアタッチされたストレージに加えて、複数のアタッチされた機能を使用して3つ以上のブロック・ボリューム(32 TB)を使用します。この追加により、より多くの記憶域が提供されます。
- VCN
VCNを作成する場合、VCNのサブネットにアタッチする予定のリソースの数に基づいて、必要なCIDRブロックの数と各ブロックのサイズを決定します。標準のプライベートIPアドレス空間内にあるCIDRブロックを使用します。
プライベート接続を設定する予定の他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ内)と重複しないCIDRブロックを選択します。
サブネットを設計する際には、トラフィック・フローとセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能する同じサブネットにアタッチします。
VCNを作成した後、CIDRブロックを変更、追加および削除できます。
可用性ドメインの数に関係なく、デプロイメントにリージョナル・サブネットを使用します。
- セキュリティ・リスト
セキュリティ・リストを使用して、サブネット全体に適用されるイングレス・ルールおよびエグレス・ルールを定義します。
たとえば、このアーキテクチャでは、プライベート・サブネット全体に対してICMPを内部的に使用できます。
- ネットワーク・セキュリティ・グループ(NSG)
NSGを使用して、特定のVNICに適用されるイングレス・ルールおよびエグレス・ルールのセットを定義できます。NSGではVCNのサブネット・アーキテクチャをアプリケーションのセキュリティ要件から分離できるため、セキュリティ・リストではなくNSGを使用することをお薦めします。
- セキュリティ・ゾーン
最大限のセキュリティが必要なリソースの場合、Oracleではセキュリティ・ゾーンを使用することをお薦めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースは、パブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成および更新する場合、Oracle Cloud Infrastructureはセキュリティ・ゾーン・レシピのポリシーに対して操作を検証し、ポリシーに違反する操作を拒否します。
注意事項
- パフォーマンス
最高のパフォーマンスを得るには、適切な帯域幅を持つ正しいコンピュート・シェイプを選択します。
- 可用性
デプロイメント要件およびリージョンに基づいて高可用性オプションを使用することを検討してください。オプションには、リージョンおよびフォルト・ドメインでの複数の可用性ドメインの使用が含まれます。
- コスト
DenseIOインスタンスを使用すると、I/O操作のパフォーマンスが向上し、コストが高くなります。要件を評価して、適切なコンピュート・シェイプを選択します。
- モニタリングとアラート
必要に応じてシェイプをスケール・アップまたはスケール・ダウンできるように、ノードのCPUおよびメモリー使用率の監視およびアラートを設定します。