デプロイを通常のEC2からVPCに移行しています。パブリッククラウドには、ドメイン「A」レコードが多数示されている2つのロードバランサーがありますが、パブリックElasticIPができないことに気づいていませんでした。 VPCインスタンスに接続するには、VPCベースのElasticIPを使用する必要があります。
つまり、LBはHAProxyベースのインスタンスであり、Elastic LoadBalancerではありません。したがって、Apacheが私の質問に答えるのに役立つか、代替手段を提供する場合は、ここでApacheを使用できます。
パブリックLBを指す問題のドメインのすべてが私の管理下にあるわけではないため、DNSへの変更を全員でスケジュールすることは非常に困難であり、不可能と言えます。
だから私の質問は、私たちのパブリックLBへの呼び出しをVPC内のそれらの代替にリダイレクトすることは可能ですか?これは、クライアントを調べてDNSを更新する間、透過的である必要があります。
どんな提案でも大歓迎です!
編集:少し拡張するには、EC2機能を使用してこれを実行できれば、2つのパブリックLBインスタンスを実行し続ける必要がないという利点があります。それができない場合、「リダイレクト」を実行する方法を具体的に知る必要があります。それはDNSで実行されるのでしょうか、それとも他の場所で実行されるのでしょうか。
編集2:LBインスタンスをアップしたままにする必要のない、Amazon固有の解決策についての洞察を提供できなかったため、以下の選択した回答でHAProxyを使用して行ったことの概要を説明しました。
誰も詳細を提供できなかったので、これが私たちがしたことです:
まず、私たちはRightScaleクライアントなので、あなたもそうであれば、提供されている操作スクリプトを使用して、15分ごとに実行されるreconverge
スクリプトをオフにする必要があります。これにより、アクティブなアプリサーバーが見つからず、参照が削除されたときにスクリプトが変更を上書きするのを防ぐことができます。
次に、/etc/haproxy
でhaproxy.cfg
バックエンドセクションを更新しました。デフォルトのものと思われるものの最終行は次のとおりです。
# Special server line that allow HAProxy to start with cookies enabled and no valid servers.
server disabled-server 127.0.0.1:1 disabled
そのため、アプリサーバーが定義される場所のすぐ下に次のものを含めました。
server THE-INSTANCE-REF_ID 123.123.123.123:80 check inter 3000 rise 2 fall 3 maxconn 500
LBが2つあるので、それぞれ古いものと新しいものをそれぞれ指し示しました。すべてが魅力のように機能しています。クライアントがDNSを更新し、その後それらをダウンさせる間、これら2つの古いLBを数週間稼働させたままにします。これにより、全員のITをスケジュールされた移動に編成するのではなく、多くの頭痛の種を節約できます。
通常のEC2ロードバランサーへのリクエストをVPCロードバランサーにリダイレクトできます。これは、DNSを更新していないすべての人にとっては余分なホップですが、クライアントができるだけ早く更新するのは一時的で良い動機にすぎません。
ローカルDNS情報を非表示にしようとしている場合は、次のいずれかをお勧めします。
a)システム内のDNS要求のみを処理するように適切にファイアウォールで保護された内部DNSサーバーを立ち上げます。
b)個々の/ etc/hostsファイル(Chef、Puppet、CFEngine、Ansibleなど)の管理を自動化します。
パブリッククエリを介してDNS情報を公開することに関心がない場合は、外部DNSプロバイダー(またはAWSのRoute53)でCNAME情報を使用してみませんか。
example.yourdomain.com => ec2-10-10-10-10.compute-1.amazonaws.com