consul で、外部のネットワークからは public IP で名前解決するようにしたい
AWS ec2 インスタンスと、手元の mac を consul で繋いでみる試みを行っています。
素直にクラスターを組むと、以下のように、手元の mac は localhost を、リモートの Mac はプライベートIP でもってそれぞれ IP が解決されるようになりました。
% consul members
Node Address Status Type Build Protocol DC Segment
ec2 172.31.27.123:8301 alive server 1.5.1 2 dc1 <all>
my-macbook.local 127.0.0.1:8301 alive server 1.4.4 2 dc1 <all>
これは、それぞれのノードが内部のみで通信を行う分には、問題ないのですが、ネットワークを超えてアクセスしようとすると、それぞれがプライベートIPなので、当然、アクセスできないです。
質問
AWS Ec2 のインスタンス上で consul を動作させる際に、 ec2 同士であったら private IP を、それ以外であったら public IP でもって DNS サーバーの名前解決を行わせたいです。これを実現する方法はありますでしょうか。