2017-10-26 17 views
1

ALBの後ろに1つのアプリを持つ典型的なECSインフラストラクチャがあります。私は、CDプロセスのための動的ホストマッピングを活用しています(ECSはポート衝突なしに同じホストに新しいコンテナを展開できます)。AWS ECSダイナミックポートマッピング+ nginx + app

ここでは、nginxのコンテナを(ALBからEC2へのSSLの場合)その前に追加したいと考えています。問題は、nginxの設定では、私はポートでアプリケーションのエンドポイントを指定する必要があります。ポートが動的に割り当てられているので、この値をnginx configにハードコードすることはできません。私はこれにどのように対処すればよいですか?

答えて

0

JWilder Nginx Proxyドッカーコンテナを使用できます。これにより、ECSで設定可能な環境変数を使用して動的マッピングを行うことができます。私は、この動的ポートは多くの意味を作る到達しようとは思わない

+0

に、その内部ドメイン名(またはあなたがルート53に割り当てられていたもの)に、ロードバランサ自体に到達することがありますあなたは動的ポートを照会しますか?タスクdefでは、単にホストポートとして0を使用します。 – Casper

+0

動的ポートマッピングに関する問題が発生したとき、このjwilder nginxプロキシ実装は、トラフィックを関連するコンテナにルーティングするための代替アプローチを提供しました。ここでは、動的にマップされたポートに頼る代わりに、仮想ホスト環境変数が各コンテナにDNS名で定義されています。その後、DNSレコードをALB(各EC2ホストインスタンスで実行されている複数のJwilderインスタンスを指し示す)にマップし、関連するコンテナにそれらを転送する方法を知ることができます。あなたの目的に合っていますか? – Ashan

+0

ありがとう、私はこれを試してみます。 – Casper

0

...

は現在、あなたの唯一のnginxのサーバーを実行しているので、あなたは、ポート上の着信トラフィックを指示したアプリケーションのロードバランサを、持っています80を、EC2インスタンスに、Webサーバーコンテナに対応するランダムポートで追加します。

<ALB domain name>:80 -> <container EC2 instance IP>:<container dynamic port> 

サービスが拡大していた場合は、2つの異なるポートで実行されている2つのコンテナが、異なるEC2インスタンス上にある可能性があります。

<ALB domain name>:80 -> <container EC2 instance IP>:<dynamic port> 
        -> <container2 EC2 instance IP>:<another dynamic port> 

あなたのALBは、代わりに、ラウンドロビンでは、これらのコンテナのそれぞれに接触します。

ダイナミックポート上のこれらのコンテナの1つに直接マッピングすると、ロードバランサをバイパスして利点が失われます。

だから、SSLを追加するプロキシは、私は私の質問が行う方法です推測ポート80

関連する問題