概要
AWS CDK v2.183.0では、Amazon BedrockでのDeepSeek R1モデルのサポート、複数リソースへの削除ポリシー一括適用を可能にするRemovalPolicies.of()API、CloudWatch Logsのフィールドインデックスポリシーのサポートなど、複数の新機能が追加されました。また、RDSでは新しいMySQLおよびMariaDBエンジンバージョンが利用可能になり、EC2では複数のVPCインターフェースエンドポイントが追加されています。
新機能
Amazon Bedrock: DeepSeek R1モデルのサポート
Amazon BedrockでDeepSeek R1モデルがサポートされるようになりました。DeepSeek R1は推論に特化した大規模言語モデルで、複雑な推論タスクに対応します。
import * as bedrock from 'aws-cdk-lib/aws-bedrock';
// DeepSeek R1モデルの利用
const model = bedrock.FoundationModel.fromFoundationModelId(
this,
'DeepSeekR1',
bedrock.FoundationModelIdentifier.DEEPSEEK_R1
);
参考:
関連PR: #33727
Core: RemovalPolicies.of() APIの追加
複数のリソースに対して削除ポリシーを一括で適用できる新しいAPI RemovalPolicies.of() が追加されました。これまでは各リソースに個別に設定するか、Tagsをワークアラウンドとして使用する必要がありましたが、より直感的で型安全な方法でリソースの削除ポリシーを管理できるようになりました。
import * as cdk from 'aws-cdk-lib';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
// CloudFormationリソースタイプ文字列を使用した指定
cdk.RemovalPolicies.of(scope).retain({
applyToResourceTypes: ['AWS::S3::Bucket', 'AWS::DynamoDB::Table']
});
// CDKリソースクラスを使用した型安全な指定
const bucket = new s3.Bucket(scope, 'MyBucket');
cdk.RemovalPolicies.of(scope).retain({
applyToResourceTypes: [
bucket.cfnResourceType, // S3バケットのリソースタイプ
dynamodb.CfnTable.CFN_RESOURCE_TYPE_NAME, // DynamoDBテーブルのリソースタイプ
]
});
// 混在した使用方法
cdk.RemovalPolicies.of(scope).retain({
applyToResourceTypes: [
bucket.cfnResourceType,
'AWS::DynamoDB::Table'
]
});
// 特定のリソースタイプを除外
cdk.RemovalPolicies.of(scope).destroy({
excludeResourceTypes: ['AWS::S3::Bucket'] // S3バケット以外を削除
});
// よく使われる削除ポリシーのための便利メソッド
cdk.RemovalPolicies.of(scope).destroy(); // 削除時にリソースを削除
cdk.RemovalPolicies.of(scope).retain(); // 削除時にリソースを保持
cdk.RemovalPolicies.of(scope).snapshot(); // 削除時にスナップショットを作成
cdk.RemovalPolicies.of(scope).retainOnUpdateOrDelete(); // 更新・削除時に保持
主な機能:
Tags.of()と同様の直感的なインターフェース- CloudFormationリソースタイプ文字列による型安全な指定
- 特定のリソースタイプを含める/除外する機能
- よく使われる削除ポリシーのための便利メソッド
関連PR: #32283
CloudWatch Logs: フィールドインデックスポリシーのサポート
CloudWatch LogsのLogGroupコンストラクト(L2)で、フィールドインデックスポリシー(fieldIndexPolicies)がサポートされるようになりました。これは2024年11月にリリースされたフィールドインデックス機能を利用するためのプロパティです。
フィールドインデックスを設定することで、特定のフィールドに対するクエリのパフォーマンスを向上させることができます。
import * as logs from 'aws-cdk-lib/aws-logs';
// フィールドインデックスポリシーの作成
const fieldIndexPolicy = new logs.FieldIndexPolicy({
fields: ['Operation', 'RequestId'], // インデックスを作成するフィールド名
});
// LogGroupでフィールドインデックスポリシーを使用
const logGroup = new logs.LogGroup(this, 'LogGroupLambda', {
logGroupName: '/aws/lambda/my-function',
retention: logs.RetentionDays.ONE_WEEK,
fieldIndexPolicies: [fieldIndexPolicy], // フィールドインデックスポリシーの配列
});
設定可能なプロパティ:
fields: インデックスを作成するフィールド名の配列
ユースケース:
- 頻繁にクエリされるフィールド(例: RequestId, UserId, Operation)にインデックスを作成
- CloudWatch Logs Insightsのクエリパフォーマンスを向上
AWS Lambda: 欠落していたEnumの追加
Lambda Event Source Mappingで欠落していたEnumが追加されました。これにより、より型安全にLambdaのイベントソースマッピングを構成できるようになります。
関連PR: #33651
Amazon RDS: 新しいMySQLエンジンバージョンの追加
以下の新しいMySQLエンジンバージョンが利用可能になりました:
- MySQL 5.7.44 (パッチバージョン: rds.20250103, rds.20250213)
- MySQL 8.0.41
- MySQL 8.4.4
import * as rds from 'aws-cdk-lib/aws-rds';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
// MySQL 8.0.41を使用
const instance = new rds.DatabaseInstance(this, 'Instance', {
engine: rds.DatabaseInstanceEngine.mysql({
version: rds.MysqlEngineVersion.VER_8_0_41, // 新しいバージョン
}),
vpc,
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MICRO),
});
// MySQL 8.4.4を使用
const instance84 = new rds.DatabaseInstance(this, 'Instance84', {
engine: rds.DatabaseInstanceEngine.mysql({
version: rds.MysqlEngineVersion.VER_8_4_4, // 新しいバージョン
}),
vpc,
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MICRO),
});
参考: AWS公式発表
関連PR: #33732
Amazon RDS: 新しいMariaDBエンジンバージョンの追加
以下の新しいMariaDBエンジンバージョンが利用可能になりました:
- MariaDB 10.5.28
- MariaDB 10.6.21
- MariaDB 10.11.11
- MariaDB 11.4.5
import * as rds from 'aws-cdk-lib/aws-rds';
// MariaDB 11.4.5を使用
const instance = new rds.DatabaseInstance(this, 'MariaDBInstance', {
engine: rds.DatabaseInstanceEngine.mariaDb({
version: rds.MariaDbEngineVersion.VER_11_4_5, // 新しいバージョン
}),
vpc,
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MICRO),
});
関連PR: #33665
Amazon EC2: 新しいVPCインターフェースエンドポイントの追加
以下のAWSサービス向けのVPCインターフェースエンドポイントが追加されました:
AWS Location Service
import * as ec2 from 'aws-cdk-lib/aws-ec2';
const vpc = new ec2.Vpc(this, 'VPC');
// Location Serviceのエンドポイント
vpc.addInterfaceEndpoint('LocationEndpoint', {
service: ec2.InterfaceVpcEndpointAwsService.LOCATION,
});
関連PR: #33667
AWS WAF V2
// WAF V2のエンドポイント
vpc.addInterfaceEndpoint('WafV2Endpoint', {
service: ec2.InterfaceVpcEndpointAwsService.WAFV2,
});
関連PR: #33685
Amazon EMR Serverless
// EMR Serverlessのエンドポイント
vpc.addInterfaceEndpoint('EmrServerlessEndpoint', {
service: ec2.InterfaceVpcEndpointAwsService.EMR_SERVERLESS,
});
関連PR: #33715
Amazon Security Lake
// Security Lakeのエンドポイント
vpc.addInterfaceEndpoint('SecurityLakeEndpoint', {
service: ec2.InterfaceVpcEndpointAwsService.SECURITY_LAKE,
});
関連PR: #33728
AWS CodeBuild: ValidationErrorの導入
CodeBuildモジュールで、型付けされていないErrorの代わりにValidationErrorをスローするようになりました。これにより、エラーハンドリングがより型安全になります。
L1リソース定義の更新
CloudFormationのL1リソース定義が最新版に更新されました。
関連PR: #33718
バグ修正
Core: Ctrl-Cによるアセットバンドルの中断時の問題を修正
コンテンツのバンドル中にCtrl-Cを押すと、壊れたアセットが残る問題が修正されました。
関連PR: #33692 関連Issue: #33201, #32869, #14474
Custom Resources: カスタムロール提供時の循環依存を修正
Providerにカスタムロールを提供した際に発生する循環依存の問題が修正されました。
Amazon EFS: 統合テストの問題を修正
transitionToArchivePolicyが指定され、throughputModeがundefinedの場合に統合テストが実行できない問題が修正されました。
関連PR: #33713
Amazon EKS: 認証モードが変更されない場合のクラスタデプロイ問題を修正
認証モードが変更されていない場合でもクラスタのデプロイに問題が発生していたバグが修正されました。
関連PR: #33680
Alphaモジュール
破壊的変更(実験的機能)
scheduler-targets-alpha: InspectorStartAssessmentRunターゲットの変更
InspectorStartAssessmentRunターゲットのコンストラクタが、CfnAssessmentTemplateの代わりにIAssessmentTemplateを受け取るように変更されました。
移行方法:
import * as scheduler from '@aws-cdk/aws-scheduler-targets-alpha';
import * as inspector from 'aws-cdk-lib/aws-inspector';
// 以前(v2.182.x以前)
const target = new scheduler.InspectorStartAssessmentRun(cfnTemplate);
// 移行後(v2.183.0以降)
const template = inspector.AssessmentTemplate.fromCfnAssessmentTemplate(cfnTemplate);
const target = new scheduler.InspectorStartAssessmentRun(template);
AssessmentTemplate.fromCfnAssessmentTemplate()メソッドを使用して、既存のCfnAssessmentTemplateインスタンスをIAssessmentTemplateに変換してください。
関連PR: #33682
新機能
kinesisanalytics-flink-alpha: 欠落していたEnumの追加
Kinesis Analytics Flinkモジュールで欠落していたEnumが追加されました。
関連PR: #33632
kinesisfirehose-destinations-alpha: 欠落していたEnumの追加
Kinesis Firehose Destinationsモジュールで欠落していたEnumが追加されました。
関連PR: #33633
バグ修正
scheduler-alpha: GroupをScheduleGroupに非推奨化
Groupクラスが非推奨となり、代わりにScheduleGroupの使用が推奨されるようになりました。
// 非推奨
import { Group } from '@aws-cdk/aws-scheduler-alpha';
const group = new Group(this, 'MyGroup');
// 推奨
import { ScheduleGroup } from '@aws-cdk/aws-scheduler-alpha';
const group = new ScheduleGroup(this, 'MyScheduleGroup');
関連PR: #33678
まとめ
AWS CDK v2.183.0では、Amazon BedrockでのDeepSeek R1モデルのサポートや、複数リソースへの削除ポリシーを一括適用できるRemovalPolicies.of() APIなど、開発者体験を向上させる機能が追加されました。また、CloudWatch LogsのフィールドインデックスポリシーやRDSの新しいエンジンバージョンのサポートにより、より多くのAWSサービスの機能を活用できるようになっています。
特にRemovalPolicies.of() APIは、複数のリソースに対して削除ポリシーを統一的に管理できるため、スタックのライフサイクル管理が容易になります。これまでタグをワークアラウンドとして使用していた場合は、この新しいAPIの利用を検討してください。
Alphaモジュールでは、scheduler-targets-alphaに破壊的変更が含まれているため、該当モジュールを使用している場合は移行作業が必要です。