更新:2015年12月の時点で、AWSはマネージドEC2NATゲートウェイを提供しています。したがって、プライベートサブネットのNATを手動で展開して管理する必要がなくなりました。ただし、何らかの理由で独自のNATサーバーを導入する必要がある場合は、以下の手順を使用できます。
Amazon Virtual Private Cloud(Amazon VPC)を使用すると、Amazon Web Services(AWS)クラウドのプライベートな分離セクションをプロビジョニングして、仮想ネットワークでAWSリソースを起動できます。定義。 VPCを使用すると、独自のサブネットを定義したり、サブネット間のルートを制御したりできます。サブネットをインターネットに公開するかどうかを決定することもできます。 VPCの「プライベート」サブネットは、MongoDBサーバーにとって理想的なホストです。 NATが構成されていると、サブネット上のマシンはインターネットにアクセスできますが、インターネット上の誰もサーバーにアクセスできません。オンプレミスからmongoインスタンスにアクセスするために、サイト間VPN接続を設定することもできます。
ScaleGridを使用すると、VPCサブネットでMongoDBホスティングインスタンスを簡単にデプロイおよび管理できます。バックアップ、リカバリ、モニタリング、アラートなど、AWS上のMongoDBの既存のすべての機能は、VPC環境で完全に機能します。
Mongoのデプロイに使用されるプライベートVPCサブネットは、インターネットへのアウトバウンドアクセスが必要です。したがって、mongoインスタンスをデプロイする前に、必ずNATを設定してください。レプリカセットを展開する場合は、それぞれが別々のアベイラビリティーゾーンに3つのサブネットを作成してください。
これは、4つのサブネットを持つEU地域でセットアップしたVPC(10.20.0.0/16)の例です。
- サブネット1(10.20.0.0/24)–パブリックサブネット
- サブネット2(10.20.1.0/24)–アベイラビリティーゾーンeu-west-1aにマップされたプライベートサブネット
- サブネット3(10.20.2.0/24)–アベイラビリティーゾーンeu-west-1bにマップされたプライベートサブネット
- サブネット4(10.20.3.0/24)–アベイラビリティーゾーンeu-west-1cにマップされたプライベートサブネット
この投稿の目標は、サブネット2、3、4のそれぞれに1つのレプリカを持つ3ノードのMongoDBレプリカセットをデプロイすることです。
プライベートサブネット2、3、4からのインターネットアクセスを許可するために、パブリックサブネットにNATインスタンスが設定されています。また、MongoDBマシンでセキュリティグループ「MongoSecurityGroup」を作成しました。サブネット2、3、4がに関連付けられます。 NATのセキュリティグループ設定の詳細は次のとおりです(NAT設定のトリッキーな部分は、セキュリティグループがNATとのインバウンドおよびアウトバウンド通信を許可することを確認することです)。
NATセキュリティグループ
アウトバウンド: すべて許可(これがデフォルトです)
インバウンド: MongoSecurityグループから80,443および5671を許可する
MongoSecurityグループ
アウトバウンド: すべて許可(これがデフォルトです)
インバウンド: アプリケーションセキュリティグループとMongoセキュリティグループの27017、Mongoセキュリティグループの27019(シャード用)
トラブルシューティング
セキュリティグループルールを設定したら、すべてが正しく設定されていることを確認してください。セキュリティグループが正しく設定されているかどうかを確認する唯一の実際の方法は、インスタンスを作成することです。
- AWSコンソールからインスタンスを作成し、設定されたサブネットの1つに配置します。
- インスタンスへのSSH。 「wgetcnn.com」を実行してインターネット接続を確認します。これが失敗した場合、アウトバウンドインターネットアクセスは正しく設定されていません。
接続が機能していない場合の確認手順:
- NATインスタンスにSSHで接続し、wgetコマンドを実行してインターネットに接続できることを確認します。
- プライベートサブネット上のインスタンスがポート80、443、5671でNATインスタンスに接続していることを確認します
セットアップを確認したら、ここにMongoインスタンスをVPCサブネットにデプロイする方法の詳細なステップバイステップのプロセスがあります。
ステップ1:VPCサブネットごとにマシンプールを作成する
マシンプールまたは[クラウドプロファイル]タブに移動し、[作成]をクリックしてAWSクラウドアカウントに接続します。 AmazonAPIキーとシークレットキーを入力してください
VPCを作成したリージョンを選択します。
VPC展開構成を選択し、VPC、サブネット、およびセキュリティグループを選択します。レプリカセットをサブネット間で分散する場合は、サブネットごとにマシンプールを作成してから、作成ウィザードでインスタンスごとに適切なマシンプールを選択する必要があります。
ステップ2:MongoインスタンスをVPCサブネットのマシンプールにデプロイします
[デプロイメント]タブに移動し、[作成]をクリックして新しいMongoDBクラスターを作成します。ウィザードで、作成したばかりのマシンプールを展開ターゲットとして選択します。これにより、選択した特定のVPCサブネットにmongoインスタンスが作成されます。
他に質問/コメントや機能のリクエストがある場合は、ぜひお知らせください。 [email protected]までメールでお問い合わせください。