AWS サービスの EoL 情報をまとめた JSON データセット「aws-service-eol-data」を試してみた

AWS サービスの EoL 情報をまとめた JSON データセット「aws-service-eol-data」を試してみた

aws-service-eol-data は、AWS サービスのバージョンごとの EoL 情報を 1 つの JSON にまとめたデータセットです。RDS・Aurora MySQL を例に、終了日と終了後の挙動を jq で抽出し、Kiro CLI にも渡してみます。
2026.09.26

はじめに

2026年9月16日、awslabs のリポジトリで、AWS サービスの EoL・EoS 情報をまとめたデータセット aws-service-eol-data が公開されました。

https://github.com/awslabs/aws-service-eol-data

このデータセットを紹介する投稿を見かけたので、試してみました。

https://x.com/AWSOpen/status/2103167579195920528

JSON から RDS for MySQL と Aurora MySQL の EoL 期限を jq で抽出し、手元の Aurora クラスタとの結合を試みた結果を紹介します。

データセットの構造

リポジトリの data/eol.json には、EKS・RDS・Aurora・Lambda など複数サービスの EoL 情報が、バージョン単位で 1 ファイルにまとめられています。EoL の判断に使うフィールドは次のとおりです。

フィールド 内容
version エンジンメジャーバージョン(例: 8.0, 3)
status STANDARD_SUPPORT / EXTENDED_SUPPORT / DEPRECATED / END_OF_LIFE
standardSupportEnd 標準サポート終了日(YYYY-MM-DD)
extendedSupport.start/end Extended Support 開始・終了日
postDeprecationBehavior 標準サポート終了後の挙動(CHARGES_APPLY=Extended Support 課金開始 / CREATE_BLOCKED=新規作成不可 等)
postExtendedSupportBehavior Extended Support 終了後の挙動
dateConfidence COMMITTED(確定)/ PROJECTED(推定)/ TENTATIVE(未確定)
sourceUrl 一次ドキュメント URL

ファイルの先頭には、このデータの位置づけと鮮度が記載されています。

{
  "lastUpdated": "2026-09-13",
  "_disclaimer": "This is community-maintained data, NOT an official AWS API. Verify dates against sourceUrl before making business decisions. For production use, pin to a tagged release rather than tracking main branch."
}

公式 API ではなくコミュニティメンテナンスのデータであり、最終的には各エントリの sourceUrl が指す公式ドキュメントを正とする、というのが注意書きの趣旨です。

RDS/Aurora MySQL の EoL 情報を確認する

まずリポジトリを clone するか、eol.json だけを取得します。

# clone する場合
git clone --depth 1 https://github.com/awslabs/aws-service-eol-data.git
cd aws-service-eol-data
# data/eol.json が対象ファイル

# または curl でファイル単体取得
curl -s https://raw.githubusercontent.com/awslabs/aws-service-eol-data/main/data/eol.json \
  -o eol.json

以降のコマンドは、取得した eol.json をカレントディレクトリに置いた状態で実行しています。clone した場合はファイルが data/eol.json にあるため、パスを読み替えてください。

RDS for MySQL のバージョンを一覧表示します。

jq -r '
  .services[]
  | select(.serviceCode == "rds" and .engine == "mysql")
  | .versions[]
  | [.version, .status, .standardSupportEnd, (.extendedSupport.end // "-")]
  | @tsv
' eol.json | column -t -s $'\t'

出力(eol.json lastUpdated: 2026-09-13):

8.4  STANDARD_SUPPORT  2029-07-31  2032-07-31
8.0  EXTENDED_SUPPORT  2026-07-31  2029-07-31
5.7  EXTENDED_SUPPORT  2024-02-29  2027-02-28

列はバージョン / ステータス / 標準サポート終了 / Extended Support 終了です。

Aurora MySQL では確定していない日付が混ざるため、dateConfidence を列に加えています。

jq -r '
  .services[]
  | select(.serviceCode == "aurora" and .engine == "mysql")
  | .versions[]
  | [.version, .status, .standardSupportEnd, (.extendedSupport.end // "-"), .dateConfidence]
  | @tsv
' eol.json | column -t -s $'\t'

出力(Aurora MySQL):

8.4  STANDARD_SUPPORT  2032-04-30  -           PROJECTED
3    STANDARD_SUPPORT  2028-04-30  2029-07-31  COMMITTED
2    EXTENDED_SUPPORT  2024-10-31  2029-06-30  COMMITTED

列はバージョン / ステータス / 標準サポート終了 / Extended Support 終了 / dateConfidence です。8.4 の日付は PROJECTED のため、移行計画の期限として確定させるには一次ドキュメントでの裏取りが必要です。

Aurora MySQL のエントリ全体(eol.json から抽出)
{
  "serviceCode": "aurora",
  "serviceName": "Amazon Aurora",
  "engine": "mysql",
  "versionType": "engineMajorVersion",
  "versions": [
    {
      "version": "8.4",
      "status": "STANDARD_SUPPORT",
      "standardSupportEnd": "2032-04-30",
      "extendedSupport": null,
      "postDeprecationBehavior": "CHARGES_APPLY",
      "dateConfidence": "PROJECTED",
      "sourceUrl": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html",
      "postExtendedSupportBehavior": "AUTO_UPGRADE"
    },
    {
      "version": "3",
      "status": "STANDARD_SUPPORT",
      "standardSupportEnd": "2028-04-30",
      "extendedSupport": {
        "start": "2028-05-01",
        "end": "2029-07-31"
      },
      "postDeprecationBehavior": "CHARGES_APPLY",
      "dateConfidence": "COMMITTED",
      "sourceUrl": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html",
      "postExtendedSupportBehavior": "AUTO_UPGRADE"
    },
    {
      "version": "2",
      "status": "EXTENDED_SUPPORT",
      "standardSupportEnd": "2024-10-31",
      "extendedSupport": {
        "start": "2024-12-01",
        "end": "2029-06-30"
      },
      "postDeprecationBehavior": "CHARGES_APPLY",
      "dateConfidence": "COMMITTED",
      "sourceUrl": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html",
      "postExtendedSupportBehavior": "AUTO_UPGRADE"
    }
  ]
}

標準サポートが終了したバージョンだけに絞るには、status で選択します。RDS と Aurora の MySQL は、1 つのクエリでまとめて抽出できます。

jq '
  .services[]
  | select(.serviceCode == "rds" or .serviceCode == "aurora")
  | select(.engine == "mysql")
  | {service: .serviceCode, engine: .engine, versions: [
      .versions[]
      | select(.status == "EXTENDED_SUPPORT" or .status == "DEPRECATED" or .status == "END_OF_LIFE")
    ]}
  | select(.versions | length > 0)
' eol.json

手元のインスタンス・クラスタと結合(応用例)

eol.json があれば、あとは手元のインスタンス・クラスタのバージョンと結合するだけです。

jq で結合

eol.json と describe-db-clusters の出力は、jq だけで結合できます。ここでは MySQL 互換の Aurora(aurora-mysql)だけを対象にし、Aurora PostgreSQL などは除外します。結合キーは serviceCode・engine・メジャーバージョンです。Aurora の EngineVersion(8.0.mysql_aurora.3.10.3 や 5.7.mysql_aurora.2.11.5)からメジャー番号 2 / 3 を取り出し、データセット側のバージョンと突き合わせます。

# describe-db-clusters の出力を clusters.json に保存してから結合
# Engine == "aurora-mysql" のクラスタだけを対象にする
aws rds describe-db-clusters --region ap-northeast-1 \
  --query 'DBClusters[?Engine==`aurora-mysql`].{DBClusterIdentifier:DBClusterIdentifier, Engine:Engine, EngineVersion:EngineVersion}' \
  --output json > clusters.json

jq -n --slurpfile eol eol.json --slurpfile cl clusters.json '
  # eol.json から aurora-mysql の「メジャー → EoL 情報」ルックアップを作る
  ($eol[0].services[]
   | select(.serviceCode == "aurora" and .engine == "mysql")
   | .versions
   | map({ (.version): {status, standardSupportEnd, extEnd: (.extendedSupport.end // "-")} })
   | add) as $lut
  # aurora-mysql のクラスタだけに絞り、EngineVersion からメジャー番号を取り出して結合
  | ($cl[0] | map(select(.Engine == "aurora-mysql")))
  | map(
      (.EngineVersion
        | if test("mysql_aurora\\.2\\.") then "2"
          elif test("mysql_aurora\\.3\\.") then "3"
          elif startswith("8.4") then "8.4"
          else "unknown" end) as $major
      | {major: $major} + $lut[$major]
    )
  | group_by(.major)
  | map({major: .[0].major, status: .[0].status, count: length,
         standardSupportEnd: .[0].standardSupportEnd, extendedSupportEnd: .[0].extEnd})
' | jq -r '["major","status","台数","標準SP終了","ExtSP終了"],
          (.[] | [.major, .status, (.count|tostring), .standardSupportEnd, .extendedSupportEnd]) | @tsv' \
  | column -t -s $'\t'

出力(実クラスタ名は含めず、メジャー別に集計):

major  status            台数  標準SP終了   ExtSP終了
2      EXTENDED_SUPPORT  10    2024-10-31  2029-06-30
3      STANDARD_SUPPORT  27    2028-04-30  2029-07-31

メジャー 2(5.7 系)は標準サポート対象から外れ、Extended Support(CHARGES_APPLY で追加課金対象)に入っています。

Kiro CLI に任せる

同じ結合を、jq のクエリを書かずに日本語の指示だけで実行させることもできます。Kiro CLI をヘッドレス(--no-interactive)で動かします。

kiro-cli chat --no-interactive --trust-tools=fs_read,use_aws \
  "カレントディレクトリの eol.json(awslabs/aws-service-eol-data のデータ)を読み、\
use_aws で ap-northeast-1 の Aurora クラスタ(describe-db-clusters)を取得してください。\
aurora-mysql の各クラスタの EngineVersion からメジャーバージョン(5.7系=2, 8.0系=3)を取り出し、\
eol.json の aurora/mysql エントリと突き合わせて、メジャーごとに status・台数・\
標準サポート終了日・Extended Support 終了日を集計してください。\
出力は集計表のみとし、個々のクラスタ名は出力しないでください。"

--trust-tools=fs_read,use_aws は、ファイル読み取り(fs_read)と AWS CLI 呼び出し(use_aws)を都度の確認なしで実行することを許可する指定です。なお、呼び出す API を describe-db-clusters に限定しているのは --trust-tools ではなく指示文です。EngineVersion からのメジャー番号の取り出しと eol.json との結合は、エージェント側が行います。結果は jq と同じでした。

| メジャー | status | 台数 | 標準サポート終了 | Extended Support 終了 |
|---|---|---|---|---|
| 3 | STANDARD_SUPPORT | 27 | 2028-04-30 | 2029-07-31 |
| 2 | EXTENDED_SUPPORT | 10 | 2024-10-31 | 2029-06-30 |

違いは、jq の結合クエリを書くか、日本語の指示文を書くかだけです。自前でコードを書きたい場合のサンプルは、公式リポジトリの README(Usage Examples)にも用意されています。

まとめ

AWS サービスの EoL・EoS(サポート終了)情報は、これまで公式ドキュメントやリリースノート、GitHub ロードマップなど複数の情報源を横断して確認する必要がありました。

https://dev.classmethod.jp/articles/tsnote-aws-how-do-i-know-about-aws-service-updates-eol-and-eos/

aws-service-eol-data を使えば、RDS・Aurora のバージョンごとの EoL 情報を 1 つの JSON ファイルだけで参照できます。定期的な棚卸しや事前検出の自動化では、このデータセットをフィルタとして使えます。さらに、同じ作者(ihartzaws)が公開しているデータセット aws-service-extended-support-pricing を組み合わせれば、Extended Support のコスト把握にも役立ちそうです。

https://github.com/awslabs/aws-service-extended-support-pricing

なお、冒頭でも触れたとおり、このデータセットはコミュニティによってメンテナンスされています。最終的な判断は、各エントリの sourceUrl が指す公式ドキュメントを根拠にしてください。また main ブランチを直接参照する場合は、対象サービスの情報が最新の状態に更新されているかを確かめてご利用ください。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事