よ〜んです。

本記事の内容は、JAWS-UG大阪2025 忘年勉強会 FSFで発表したAWSあるあるにて10個発表したうちの8個目について掘り下げていきます。

現在(2026/01/23)、aws-cdkには、642個のバージョンがあります。

aws-cdk - npm

今回やること

いつ頃ec2SumTImeoutEnabledcdk.jsonに出力されるようになったのかを調査し、TImeout(Iが大文字)になったバージョンなどを調査しようと思います。

何もなければ、何もないで納得します。

調査開始

642バージョン全てでcdk initするのも可能ですが、今回は人力で二分探索します。

まずは、npmで確認できる最古のバージョン 0.8.0から

0.8.0 - 1回目の試行

npx aws-cdk@0.8.0 init -l ts


Need to install the following packages:
aws-cdk@0.8.0
Ok to proceed? (y) 

不正な値です:
  引数は language です。指定できるのは "ts" つです。選択してください: "java", "typescript"



npx aws-cdk@0.8.0 init -l typescript


# Useful commands

 * `npm run build`   compile typescript to js
 * `npm run watch`   watch for changes and compile
 * `cdk deploy`      deploy this stack to your default AWS account/region
 * `cdk diff`        compare deployed stack with current state
 * `cdk synth`       emits the synthesized CloudFormation template

では、cdk.jsonを見てみましょう

cdk.json

{
    "app": "node bin/v0.8.0.js"
}

これだけでした、非常にシンプルです。

ec2SumTImeoutEnabledが存在していることはわかっていますが、現在の最新のバージョンの出力を確認します。

2.1102.0 - 2回目の試行

npx aws-cdk@2.1102.0 init -l ts

cdk.json

    "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": true,
    "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": true,
    "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": true,
    "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": true,
    "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": true,

もちろんありました。

では、320番目のバージョンを見てみます。

2.0.0-rc.21 - 3回目の試行

npx aws-cdk@2.0.0-rc.21 init -l typescript

cdk.json

{
  "app": "npx ts-node --prefer-ts-exts bin/v2.0.0-rc.21.ts",
  "context": {
    "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true,
    "@aws-cdk/core:stackRelativeExports": "true",
    "@aws-cdk/aws-rds:lowercaseDbIdentifier": true,
    "@aws-cdk/aws-lambda:recognizeVersionProps": true,
    "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true
  }
}

ec2SumTImeoutEnabledはありませんが、contextに設定されている値がまだまだ少ないですね

では480番目のやつを見ます。

2.108.0 - 4回目の試行

npx aws-cdk@2.108.0 init -l typescript

cdk.json

ec2SumTImeoutEnabledはありませんでしたが、contextで設定されている値は結構増えました。

では、560番目を見てみます

2.167.0 - 5回目の試行

npx aws-cdk@2.167.0 init -l typescript

cdk.json

    "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": true,
    "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": true,
    "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": true,
    "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": true,
    "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": true,

ec2SumTImeoutEnabledがありました!次は少し戻って520番目を確認してみます!

2.140.0 -  6回目の試行

npx aws-cdk@2.140.0 init -l typescript

cdk.json

ec2SumTImeoutEnabledはありませんでした、次は中間地点の540番目を確認します。

2.153.0 - 7回目の試行

npx aws-cdk@2.153.0 init -l typescript

cdk.json

ec2SumTImeoutEnabledはありませんでした。次は550番目を見ます。

2.161.0 - 8回目の試行

npx aws-cdk@2.161.0 init -l typescript

cdk.json

    "@aws-cdk/aws-s3:keepNotificationInImportedBucket": false,
    "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": true,
    "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": true,
    "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": true,
    "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": true,

ec2SumTImeoutEnabledがいました!545番目を見ます。

2.157.0 - 9回目の試行

npx aws-cdk@2.157.0 init -l typescript

cdk.json

ec2SumTImeoutEnabledは無かったですが、かなり絞られてきました。547番目を見ます。

2.159.0 - 10回目の試行

npx aws-cdk@2.159.0 init -l typescript 

cdk.json

ec2SumTImeoutEnabledはありません。548番目を見ます。

2.159.1 - 11回目の試行

npx aws-cdk@2.159.1 init -l typescript

cdk.json

ec2SumTImeoutEnabledありません。549番目にいきます。

2.160.0 - 12回目の試行

npx aws-cdk@2.160.0 init -l typescript

cdk.json

    "@aws-cdk/aws-s3:keepNotificationInImportedBucket": false,
    "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": true,
    "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": true
  }
}

ec2SumTImeoutEnabledがありました!バージョン 2.160.0から追加されたようです。

では、2.160.0のリリースを見てみます。

ec2: instance resourceSignalTimeout overwrites initOptions.timeout (#31446) (a29bf19), closes #30052

Bug Fixesのところに記載がありますね。

まとめ(?)

どこかのタイミングでcdk.jsonec2SumTimeoutEnabledec2SumTImeoutEnabledになるのかと思っていましたが、最初からec2SumTImeoutEnabledだったようです。

意図したものなのでしょうかね…これ以上の深掘りはできないので、ここら辺で切り上げようと思います。

ここまで読んでいただき、ありがとうございました。