年中アイス

いろいろつらつら

ECS Service Discovery DNSのTTLを変更するコマンドを作りました

前回コマンドベースで書いたこの記事の変更を行いやすくするrnsdコマンドを作りました。

reiki4040.hatenablog.com

rnsd

github.com

単純にリスト表示と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を使ってます。

reiki4040.hatenablog.com