riex - Reserved Instanceの期限切れを検知 - fujiwara-ware 2024 day 12
この記事は fujiwara-ware advent calendar 2024 の12日目です。
riex とは
riex は、AWS の Reserved Instance (RI) の期限切れを検知するためのコマンドラインツールです。
RI は、EC2, ElastiCache, RDS, Redshift, OpenSearch などのリソースを予約することで、割引価格で利用できるサービスです。RI は1年契約または3年契約ですが、契約期間が終了しても自動的に更新されません。そのため、期限切れを検知しておくことが重要です。
riex は、指定した日数以内に期限切れになる RI を検知して、表示します。
なぜ作ったのか
RI の更新をうっかり忘れてしまったことで、無駄な支払いをしてしまったことがあります。RI はそれぞれのサービスごとに別々に管理されているため、マネージメントコンソールで確認するのは手間がかかります。そこで、全てのサービスの RI を横断して、期限切れを検知するためのコマンドラインツールを作りました。
使い方
使い方は極めてシンプルです。期限切れを検知する日数を引数に指定します。例えば30を指定すると、30日以内に期限切れになる RI を表示します。
$ riex 30
{"service":"Redshift","name":"140aad98-3ab6-435d-bcd4-60d1e65375bc","description":"","instance_type":"ra3.xlplus","count":1,"start_time":"2021-12-21T09:17:32.937Z","end_time":"2022-12-21T09:17:32.937Z","state":"active"}
デフォルトの出力形式は JSON ですが、--format
オプションで出力形式を変更できます。json, tsv, markdown が指定できます。
$ riex 30 --format markdown
| service | name | description | instance_type | count | start_time | end_time | state |
| --- | --- | --- | --- | --- | --- | --- | --- |
| RDS | prod-ce-8x-2 | aurora-mysql | db.r6g.8xlarge | 1 | 2022-10-14T08:09:30Z | 2023-10-14T08:09:30Z | active |
| Redshift | c36868e7-5421-41d0-ab87-841a0d162d1f | | ra3.xlplus | 1 | 2022-12-21T08:02:18Z | 2023-12-21T08:02:18Z | active |
| ElastiCache | ri-2023-08-21-01-24-15-492 | redis | cache.r6g.large | 2 | 2023-08-21T01:24:40Z | 2024-08-20T01:24:40Z | active |
markdown で出力した結果を GitHub issue などに貼り付ければ、見やすく共有できます。
service | name | description | instance_type | count | start_time | end_time | state |
---|---|---|---|---|---|---|---|
RDS | prod-ce-8x-2 | aurora-mysql | db.r6g.8xlarge | 1 | 2022-10-14T08:09:30Z | 2023-10-14T08:09:30Z | active |
Redshift | c36868e7-5421-41d0-ab87-841a0d162d1f | ra3.xlplus | 1 | 2022-12-21T08:02:18Z | 2023-12-21T08:02:18Z | active | |
ElastiCache | ri-2023-08-21-01-24-15-492 | redis | cache.r6g.large | 2 | 2023-08-21T01:24:40Z | 2024-08-20T01:24:40Z | active |
まとめ
riex は、AWS の RI の期限切れを検知するためのコマンドラインツールです。シンプルですが役に立つツールです。うっかりミスで無駄な支払いをしないためにも、定期的に実行しておくと良いでしょう。ぜひお試しください。
それでは、明日もお楽しみに!
Discussion