セットアップ
- ECS (コンテナ化) アプリケーション (Node.js、API のみ)
- ECS コンテナ インスタンスの Auto Scaling グループ
- Auto Scaling グループの前のロードバランサー
- すべてのインスタンスと ELB をカバーする VPC
- 明示的に管理されていない別の VPC でホストされているデータベース ( MongoDB Atlas )。同じリージョンではない可能性があります。
問題
データベースで適切なセキュリティ ポリシーを使用する必要があるため、データベースを世界に公開するのではなく、Atlas が推奨するように IP をホワイトリストに登録することを選択します0.0.0.0/0
。
各サーバーには独自の IP アドレスがあり、自動スケーリング イベントでは、自動化によって Atlas セキュリティ ルールに追加する必要があります (これは可能ですが、理想的ではありません)。
(NAT ゲートウェイを使用して? Elastic IP を使用して?) 負荷分散されたすべてのインスタンスに対して 1 つの IP を取得するにはどうすればよいですか?
失敗したソリューション?
NAT ゲートウェイを使用してみました。基本的にシナリオ 2 では、すべてのインスタンスがプライベート サブネットにあり、NAT はインターネットにアクセスできるパブリック サブネットにあり、インスタンスはそれを経由してデータベースにアクセスしました。これはうまくいきました!NAT の Elastic IP と Atlas で承認できましたが、ping を実行すると断続的にインスタンスが 65 ~ 75 秒間応答しないという奇妙な問題がありました。これは、インターネット上で技術的に利用できず、発生していることを完全には理解していないルーティングがあるためだと思われます。すべてが200
正常に機能するようになると、しばらくの間、さらに 70 秒の遅延が発生し、再び正常に戻ります...
入力に本当に感謝しています。運が悪いのでしばらく探していました!