Back to Releases
v2.183.0 2025年3月12日

AWS CDK v2.183.0 リリース解説

DeepSeek R1モデルのサポート、RemovalPolicies APIの追加、CloudWatch Logsのフィールドインデックスポリシーのサポートなど、複数の新機能とバグ修正が含まれています。

bedrockrdslogslambdaec2corecodebuildcustom-resourcesefseks

概要

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のクエリパフォーマンスを向上

関連PR: #33416 関連Issue: #33366

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をスローするようになりました。これにより、エラーハンドリングがより型安全になります。

関連PR: #33700 関連Issue: #32569

L1リソース定義の更新

CloudFormationのL1リソース定義が最新版に更新されました。

関連PR: #33718

バグ修正

Core: Ctrl-Cによるアセットバンドルの中断時の問題を修正

コンテンツのバンドル中にCtrl-Cを押すと、壊れたアセットが残る問題が修正されました。

関連PR: #33692 関連Issue: #33201, #32869, #14474

Custom Resources: カスタムロール提供時の循環依存を修正

Providerにカスタムロールを提供した際に発生する循環依存の問題が修正されました。

関連PR: #33600 関連Issue: #20360

Amazon EFS: 統合テストの問題を修正

transitionToArchivePolicyが指定され、throughputModeundefinedの場合に統合テストが実行できない問題が修正されました。

関連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

新機能

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に破壊的変更が含まれているため、該当モジュールを使用している場合は移行作業が必要です。