ec2SumTImeoutEnabledの謎に迫る
よ〜んです。
本記事の内容は、JAWS-UG大阪2025 忘年勉強会 FSFで発表したAWSあるあるにて10個発表したうちの8個目について掘り下げていきます。
現在(2026/01/23)、aws-cdkには、642個のバージョンがあります。

今回やること
いつ頃ec2SumTImeoutEnabledがcdk.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.jsonのec2SumTimeoutEnabledがec2SumTImeoutEnabledになるのかと思っていましたが、最初からec2SumTImeoutEnabledだったようです。
意図したものなのでしょうかね…これ以上の深掘りはできないので、ここら辺で切り上げようと思います。
ここまで読んでいただき、ありがとうございました。