consul はサービスディスカバリツールで、その機能の一つに dns 機能があります。

$ dig @127.0.0.1 -p 8600 my-macbook.local.node.consul
# my-macbook.local.node.consul が 127.0.0.1 に解決されている風のリプライ

今、 consul を aws にデプロイしていくことを考えると、 「サーバー上のホスト解決は、 consul が解決できるホスト名については(xxxxx.consul) は consul dns に問い合わせて、それ以外は今まで通り通常のホスト解決を行う」ことをやりたくなりました。

ただ、これを実現するにあたって、一体そもそもどういう構成をとって、 ec2 サーバー上でどのような設定を行えばこれが実現できるのかが、不明瞭であると思っています。

原理的には、 ec2 サーバーに consul 自体をインストールして、(そして consul 自体の設定はおいおいやっていくとして)、あとは ec2 の OS 設定まわりをいじれば、これができるのではないかと思っているのですが、そもそもその設定箇所はどこなのだろう、と思っています。

質問

amazon linux 2 (つまりは、だいたい centos 7) 上で、そのホスト解決の一部分(xxxx.consul)を consul dns から取得するようにするための設定は、どのようになりますでしょうか?

  • consul 自体はサーバー自体にインストールする予定
  • 他のアプリが、たとえば db_host: mysql.service.consul みたいな形で、ホスト URL として解決できるようにしたい、というモチベーション。