ECS Service Discovery DNSのTTLを変更するコマンドを作りました
前回コマンドベースで書いたこの記事の変更を行いやすくするrnsdコマンドを作りました。
rnsd
単純にリスト表示とTTL変更を行うだけのコマンドです。AWSコマンドではTTLの変更でJSON指定したり面倒なので、シンプルに変更できるようにしたものです。リストはページング対応してないので、たくさんあるところだと足りないかもしれません。自分で必要になるか、気が向いたらつける予定です。
使い方
command usage
NAME: rnsd - control AWS Service Discovery USAGE: rnsd [global options] command [command options] [arguments...] VERSION: 0.1.0(68ab404) COMMANDS: namespaces, ns show namespaces services, srv show services modify-ttl, ttl modify TTL of service help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --region value, -r value specify AWS region (default: "ap-northeast-1") --help, -h show help (default: false) --version, -v print the version (default: false)
まず、対象のDNSが所属するnamespace idを確認します。
# namespace一覧 rnsd ns ns-xxxxxxxxxxxxxxx your.private
次にnamespace idを使ってservice一覧を表示し、service idとTTLを確認します。
# namespace idを指定してservice一覧 rnsd srv -n ns-xxxxxxxxxxxxxxx srv-xxxxxxxxxxxxxxxa rp rp.your.private SRV 300 srv-xxxxxxxxxxxxxxxb rp2 rp2.your.private SRV 300 srv-xxxxxxxxxxxxxxxc rp3 rp3.your.private SRV 45
service idと変更後のTTLを指定して更新
# serviceのTTLを変更 rnsd ttl -s srv-xxxxxxxxxxxxxxxa -t 30
※コマンドの出力フォーマットは変える可能性あります。
インストール
インストールはhomebrew-tapを使うと一発です。
brew install reiki4040/tap/rnsd
AWSのSECRETは~/.aws/credentials
にあれば動きます。たぶんdefaultだけです。
余談
cliのライブラリと、context対応(といってもまだタイムアウトつけてないですが)をやってみたかったのもあって、独立コマンドになってます。情報表示、簡易オペレーション系はどこかでECS系のオペレーションコマンドとしてまとめるかもしれません。
リリースとhomebrew対応は、前に書いたGoReleaser+Github Actionsを使ってます。