2016-07-12 8 views
0

現在の設定は、Angularフロントエンドを提供するNode.jsアプリケーション、Expressを持ちAPIとして機能する第2のNode.jsアプリケーション、およびMongoDBインスタンスです。単に、クライアントサイドのアプリはバックエンドアプリに、バックエンドのアプリはMongoDBに、それぞれ話します。AWTのDockerを使用した2層MEANアプリケーションのスケーリング

私はこれらのアプリケーションをDockerizeする方法を検討していましたが、いくつかの例がリンクを使用しているようです。だから、私の質問は、同じホスト(AWS上の単一のEC2インスタンス)または複数のEC2インスタンスでのみ動作するリンクですか?前者だけの場合、アプリとMongoが1つのインスタンスでコンテナ化されている場合、どのようにスケールアウトするのですか? 2番目のEC2インスタンスをスピンアップする場合と同様に、2番目のインスタンスにコンテナ化されたNodeアプリケーションとMongoの両方を再度配置しますか? Nodeアプリケーションと同じインスタンスにMongoコンテナを持っているのは、単一の障害点ですか?そのフォールトトレラントなのはどうですか?

私の頭を抱き締めようとしているだけで、その件に関する私の無知を謝ります。ありがとう!

答えて

1

あなたはMongoDBサーバーと同様にMongoDBサーバーを別々のコンテナー(私が思う)に配置し、リンク(Docker-Composeまたは他の方法による)はネットワーキングです。 Dockerリンクを使用すると、プライベートネットワークが作成されます。お互いに話すために、LAN、WAN、その他にも、他のネットワークを作ることができます。

はい、すべて同じEC2インスタンスに配置すると、SPOFが作成されます。

それが心配だ場合は、に見て:https://docs.docker.com/swarm/networking/

ドッカー群れがドッカーのネットワーク機能と完全に互換性があります。 これには、マルチホストネットワーク機能が含まれており、複数のDockerホストにまたがるカスタムコンテナネットワークを作成することができます( )。

また、アプリケーションの負荷を分散し、AWSでホストされているMongoDBクラスタを使用してください。あなたのニーズと予算に基づいて、多くの可能なアプローチがあります。

関連する問題