Back to Releases
v2.214.0 2025年9月2日

AWS CDK v2.214.0 リリース解説

ACM証明書エクスポート、CloudWatch円グラフラベル、Cognito認証トークンローテーション、DynamoDB Contributor Insightsモード、RDS自動バックアップ保持、ECS EBSボリューム初期化レート、EventBridgeアーカイブKMS、SNS条件追加など、11の新機能と複数のバグ修正を含むリリース

acmcloudwatchcognitodynamodbrdsecseventssnsdockerbedrockekss3tables

概要

AWS CDK v2.214.0は、多数の新機能とバグ修正を含む大型アップデートです。特に、ACM証明書のエクスポート機能、DynamoDB Contributor Insightsモードの設定、RDS自動バックアップの保持機能など、11の新機能が追加されています。また、AlphaモジュールではBedrock GuardrailsのL2コンストラクトやS3 TablesのTablePolicyサポートが追加されています。

L1リソースの変更に関する注意事項

aws-ecs: AWS::ECS::ServiceAvailabilityZoneRebalancingプロパティのデフォルト値が"ENABLED"から"DISABLED"に変更されました。この変更はCloudFormationリソーススキーマの実際の状態をより正確に反映するためのものです。

新機能

ACM: エクスポート可能な公開証明書のサポート

影響を受けるモジュール: @aws-cdk/aws-certificatemanager

ACM(AWS Certificate Manager)で、証明書の秘密鍵をエクスポート可能にする新機能がサポートされました。この機能により、他のベンダーから購入した証明書をACMで管理する証明書に置き換えることが容易になります。

追加されたプロパティ:

  • certificateExportEnabled: 証明書のエクスポートを有効化するかどうか(boolean)

コード例:

import * as acm from 'aws-cdk-lib/aws-certificatemanager';
import * as route53 from 'aws-cdk-lib/aws-route53';

const hostedZone = route53.HostedZone.fromLookup(this, 'HostedZone', {
  domainName: 'example.com',
});

// エクスポート可能な公開証明書
const certificate = new acm.Certificate(this, 'Certificate', {
  domainName: 'example.com',
  subjectAlternativeNames: ['*.example.com'],
  validation: acm.CertificateValidation.fromDns(hostedZone),
  // エクスポート機能を有効化
  certificateExportEnabled: true,  // デフォルト: false
});

// プライベート証明書でもサポート
const privateCertificate = new acm.PrivateCertificate(this, 'PrivateCert', {
  domainName: 'internal.example.com',
  certificateAuthority: certificateAuthority,
  certificateExportEnabled: true,  // プライベート証明書でもエクスポート可能
});

関連リソース: PR #35079


CloudWatch: 円グラフでのラベル表示オプション

影響を受けるモジュール: @aws-cdk/aws-cloudwatch

CloudWatch Dashboardの円グラフウィジェットで、ラベルを表示するかどうかを制御できるようになりました。AWS コンソールでは以前から利用可能でしたが、CDKでもサポートされました。

追加されたプロパティ:

  • displayLabelsOnChart: 円グラフ上にラベルを表示するかどうか(boolean)

コード例:

import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';

const dashboard = new cloudwatch.Dashboard(this, 'Dashboard', {
  dashboardName: 'MyDashboard',
});

// Lambda関数のメトリクス
const invocationsMetric = new cloudwatch.Metric({
  namespace: 'AWS/Lambda',
  metricName: 'Invocations',
  dimensionsMap: {
    FunctionName: 'MyFunction',
  },
  statistic: 'Sum',
});

const errorsMetric = new cloudwatch.Metric({
  namespace: 'AWS/Lambda',
  metricName: 'Errors',
  dimensionsMap: {
    FunctionName: 'MyFunction',
  },
  statistic: 'Sum',
});

// ラベル表示を有効にした円グラフ
dashboard.addWidgets(
  new cloudwatch.GraphWidget({
    title: 'Lambda Metrics Pie Chart',
    left: [invocationsMetric, errorsMetric],
    view: cloudwatch.GraphWidgetView.PIE,
    // 円グラフ上にラベルを表示(デフォルト: false)
    displayLabelsOnChart: true,
  })
);

関連リソース: PR #34745


Cognito: リフレッシュトークンローテーションのサポート

影響を受けるモジュール: @aws-cdk/aws-cognito

Cognitoユーザープールクライアントで、短命なリフレッシュトークンを使用するためのトークンローテーション機能がサポートされました。この機能により、セキュリティを向上させながら、トークンの有効期限切れによる影響を最小限に抑えることができます。

追加されたプロパティ:

  • refreshTokenRotationGracePeriod: リフレッシュトークンローテーションの猶予期間(Duration)

コード例:

import * as cognito from 'aws-cdk-lib/aws-cognito';
import { Duration } from 'aws-cdk-lib';

const userPool = new cognito.UserPool(this, 'UserPool', {
  userPoolName: 'MyUserPool',
  selfSignUpEnabled: true,
});

const userPoolClient = new cognito.UserPoolClient(this, 'UserPoolClient', {
  userPool,
  // OAuth設定
  oAuth: {
    flows: {
      authorizationCodeGrant: true,
    },
    scopes: [cognito.OAuthScope.OPENID],
    callbackUrls: ['https://example.com/callback'],
  },
  // リフレッシュトークンの設定
  refreshTokenValidity: Duration.days(30),  // リフレッシュトークンの有効期限
  // リフレッシュトークンローテーションの猶予期間
  // 古いトークンがまだ使用できる期間(新しいトークンとの重複期間)
  refreshTokenRotationGracePeriod: Duration.hours(1),  // デフォルト: 未設定(ローテーション無効)
});

動作の詳細:

  • refreshTokenRotationGracePeriodを設定すると、リフレッシュトークンを使用して新しいアクセストークンを取得する際に、新しいリフレッシュトークンも発行されます
  • 猶予期間内は古いリフレッシュトークンも使用できるため、複数のデバイスやクライアントでトークンローテーションによる影響を最小限に抑えられます
  • 猶予期間を過ぎると、古いリフレッシュトークンは無効になります

関連リソース: PR #34360


Docker: DockerBuildOptionsでのnetworkパラメータのサポート

影響を受けるモジュール: @aws-cdk/core

Dockerビルド時にネットワークモードを指定できるようになりました。DockerRunOptionsでは以前からサポートされていましたが、DockerBuildOptionsでも利用可能になりました。

追加されたプロパティ:

  • network: Dockerビルド時のネットワークモード(string、例: “default”, “host”, “none”)

コード例:

import * as lambda from 'aws-cdk-lib/aws-lambda';
import { DockerImage } from 'aws-cdk-lib';

// Lambda関数でカスタムDockerイメージをビルド
const fn = new lambda.Function(this, 'Function', {
  runtime: lambda.Runtime.FROM_IMAGE,
  handler: lambda.Handler.FROM_IMAGE,
  code: lambda.Code.fromAssetImage('.', {
    // Dockerビルドオプション
    buildArgs: {
      BASE_IMAGE: 'public.ecr.aws/lambda/python:3.13',
    },
    // ネットワークモードを指定(例: プライベートレジストリへのアクセス)
    network: 'default',  // オプション: "default", "host", "none" など
  }),
});

// PythonレイヤーでのDocker build例
import { PythonLayerVersion } from '@aws-cdk/aws-lambda-python-alpha';

const layer = new PythonLayerVersion(this, 'Layer', {
  entry: './lambda-layer',
  compatibleRuntimes: [lambda.Runtime.PYTHON_3_13],
  bundling: {
    // Dockerビルド時のネットワーク設定
    network: 'host',  // ホストネットワークを使用
  },
});

関連リソース: PR #34725


DynamoDB: ContributorInsightsModeの追加

影響を受けるモジュール: @aws-cdk/aws-dynamodb

DynamoDBテーブルおよびTableV2で、Contributor Insightsのモードを設定できるようになりました。Contributor Insightsは、最もアクセスされているキーやスロットリングされているリクエストを特定するのに役立つ機能です。

追加されたプロパティ:

  • contributorInsightsMode: Contributor Insightsのモード(ContributorInsightsMode.ENABLEDまたはContributorInsightsMode.DISABLED

コード例:

import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import { RemovalPolicy } from 'aws-cdk-lib';

// Table (V1) での例
const table = new dynamodb.Table(this, 'Table', {
  partitionKey: {
    name: 'id',
    type: dynamodb.AttributeType.STRING,
  },
  sortKey: {
    name: 'timestamp',
    type: dynamodb.AttributeType.NUMBER,
  },
  // Contributor Insightsを有効化
  contributorInsightsMode: dynamodb.ContributorInsightsMode.ENABLED,  // デフォルト: DISABLED
  removalPolicy: RemovalPolicy.DESTROY,
});

// GSI (Global Secondary Index) でも設定可能
table.addGlobalSecondaryIndex({
  indexName: 'gsi1',
  partitionKey: {
    name: 'status',
    type: dynamodb.AttributeType.STRING,
  },
  // GSIごとにContributor Insightsを設定
  contributorInsightsMode: dynamodb.ContributorInsightsMode.ENABLED,
});

// TableV2 での例
const tableV2 = new dynamodb.TableV2(this, 'TableV2', {
  partitionKey: {
    name: 'pk',
    type: dynamodb.AttributeType.STRING,
  },
  // テーブル全体のContributor Insights設定
  contributorInsights: {
    mode: dynamodb.ContributorInsightsMode.ENABLED,
  },
  globalSecondaryIndexes: [
    {
      indexName: 'gsi1',
      partitionKey: {
        name: 'gsi1pk',
        type: dynamodb.AttributeType.STRING,
      },
      // GSIごとの設定
      contributorInsights: {
        mode: dynamodb.ContributorInsightsMode.ENABLED,
      },
    },
  ],
});

Contributor Insightsの利点:

  • 最もアクセスされているパーティションキーを特定
  • スロットリングされているリクエストの原因を分析
  • テーブルのパフォーマンス最適化に役立つ

関連リソース: PR #35332


RDS: データベースクラスターの自動バックアップ保持

影響を受けるモジュール: @aws-cdk/aws-rds

RDS Aurora クラスターで、クラスターを削除する際に自動バックアップを保持できるようになりました。これにより、クラスター削除後もバックアップからデータを復元することが可能になります。

追加されたプロパティ:

  • deleteAutomatedBackups: クラスター削除時に自動バックアップも削除するかどうか(boolean)

コード例:

import * as rds from 'aws-cdk-lib/aws-rds';
import * as ec2 from 'aws-cdk-lib/aws-ec2';

const vpc = ec2.Vpc.fromLookup(this, 'VPC', {
  vpcId: 'vpc-xxxxx',
});

const cluster = new rds.DatabaseCluster(this, 'Database', {
  engine: rds.DatabaseClusterEngine.auroraMysql({
    version: rds.AuroraMysqlEngineVersion.VER_3_09_0,
  }),
  vpc,
  writer: rds.ClusterInstance.provisioned('writer', {
    instanceType: ec2.InstanceType.of(
      ec2.InstanceClass.R6G,
      ec2.InstanceSize.LARGE
    ),
  }),
  // 自動バックアップ設定
  backup: {
    retention: Duration.days(7),  // バックアップ保持期間
  },
  // クラスター削除時の動作
  deleteAutomatedBackups: false,  // false: バックアップを保持、true: バックアップも削除(デフォルト)
});

注意事項:

  • deleteAutomatedBackups: falseに設定すると、クラスターを削除してもバックアップは保持されます
  • 保持されたバックアップから新しいクラスターを作成できます
  • バックアップの保存にはコストがかかるため、不要になったバックアップは手動で削除してください

関連リソース: PR #35372


ECS: EBSボリューム初期化レート

影響を受けるモジュール: @aws-cdk/aws-ecs

ECS Fargateタスクで、サービス管理のEBSボリュームの初期化レートを設定できるようになりました。この機能は、EBSボリュームのプロビジョンド初期化レートをカスタマイズするために使用します。

追加されたプロパティ:

  • volumeInitializationRate: EBSボリュームの初期化レート(number、IOPS値)

コード例:

import * as ecs from 'aws-cdk-lib/aws-ecs';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import { Size } from 'aws-cdk-lib';

const vpc = ec2.Vpc.fromLookup(this, 'VPC', {
  vpcId: 'vpc-xxxxx',
});

const cluster = new ecs.Cluster(this, 'Cluster', {
  vpc,
});

// Fargateタスク定義
const taskDefinition = new ecs.FargateTaskDefinition(this, 'TaskDef', {
  memoryLimitMiB: 2048,
  cpu: 1024,
});

taskDefinition.addContainer('app', {
  image: ecs.ContainerImage.fromRegistry('nginx:latest'),
  memoryLimitMiB: 512,
});

// Fargateサービス
const service = new ecs.FargateService(this, 'Service', {
  cluster,
  taskDefinition,
  // サービス管理のEBSボリューム設定
  volumeConfigurations: [
    {
      name: 'storage',
      managedEBSVolume: {
        size: Size.gibibytes(20),           // ボリュームサイズ
        volumeType: ec2.EbsDeviceVolumeType.GP3,
        encrypted: true,
        // ボリューム初期化レート(IOPS)
        volumeInitializationRate: 3000,     // デフォルト: 未設定(EBSタイプのデフォルト値)
        iops: 3000,                         // プロビジョンドIOPS
        throughput: 125,                    // スループット (MiB/s)
      },
    },
  ],
});

ユースケース:

  • データベースやキャッシュなどの高IOPSワークロード
  • 大量のデータを扱うアプリケーション
  • 初期化時のパフォーマンスを最適化したい場合

関連リソース: PR #34962


EventBridge: アーカイブでのKMSキーのサポート

影響を受けるモジュール: @aws-cdk/aws-events

EventBridge Archiveで、カスタマーマネージドKMSキーを使用した暗号化がサポートされました。この機能は2025年3月にAWSで追加されましたが、CDKでもサポートされました。

追加されたプロパティ:

  • kmsKey: アーカイブの暗号化に使用するKMSキー(IKey)

コード例:

import * as events from 'aws-cdk-lib/aws-events';
import * as kms from 'aws-cdk-lib/aws-kms';
import { Duration } from 'aws-cdk-lib';

// イベントバス
const eventBus = new events.EventBus(this, 'EventBus', {
  eventBusName: 'MyEventBus',
});

// カスタマーマネージドKMSキー
const key = new kms.Key(this, 'ArchiveKey', {
  description: 'KMS key for EventBridge Archive encryption',
  enableKeyRotation: true,
});

// KMSキーで暗号化されたアーカイブ
const archive = new events.Archive(this, 'Archive', {
  eventPattern: {
    source: ['my.application'],
    detailType: ['order.placed'],
  },
  sourceEventBus: eventBus,
  archiveName: 'OrderArchive',
  // 保持期間
  retention: Duration.days(365),
  description: 'Archive for order events',
  // カスタマーマネージドKMSキーを指定
  kmsKey: key,  // デフォルト: AWS管理キー
});

セキュリティのベストプラクティス:

  • カスタマーマネージドKMSキーを使用することで、暗号化キーのライフサイクルを完全に制御できます
  • キーローテーションを有効化してセキュリティを向上させることができます
  • KMSキーポリシーで、誰がアーカイブにアクセスできるかを細かく制御できます

関連リソース: PR #35253


SNS: notExistsConditionメソッドの追加

影響を受けるモジュール: @aws-cdk/aws-sns

SNSサブスクリプションのフィルターポリシーで、特定のプロパティが存在しない場合の条件を設定できるようになりました。

追加されたメソッド:

  • SubscriptionFilter.notExistsCondition(): プロパティが存在しない場合の条件

コード例:

import * as sns from 'aws-cdk-lib/aws-sns';
import * as sqs from 'aws-cdk-lib/aws-sqs';
import * as subscriptions from 'aws-cdk-lib/aws-sns-subscriptions';

const topic = new sns.Topic(this, 'Topic', {
  topicName: 'OrderTopic',
});

const queue = new sqs.Queue(this, 'Queue', {
  queueName: 'OrderQueue',
});

// プロパティの存在チェックを含むフィルターポリシー
topic.addSubscription(
  new subscriptions.SqsSubscription(queue, {
    filterPolicy: {
      // 通常の条件: orderType が "standard" または "express" の場合
      orderType: sns.SubscriptionFilter.stringFilter({
        allowlist: ['standard', 'express'],
      }),
      // 新機能: discount プロパティが存在しない場合
      discount: sns.SubscriptionFilter.notExistsCondition(),
    },
  })
);

// 別のキューで、discount が存在する場合のみ処理
const discountQueue = new sqs.Queue(this, 'DiscountQueue');

topic.addSubscription(
  new subscriptions.SqsSubscription(discountQueue, {
    filterPolicy: {
      // discount プロパティが存在する場合
      discount: sns.SubscriptionFilter.existsFilter(),
    },
  })
);

メッセージのフィルタリング例:

// このメッセージは最初のキューに配信される(discountプロパティが存在しない)
{
  "orderType": "standard",
  "customerId": "12345",
  "amount": 100
}

// このメッセージは2番目のキューに配信される(discountプロパティが存在する)
{
  "orderType": "express",
  "customerId": "67890",
  "amount": 200,
  "discount": 10
}

関連リソース: PR #34712


L1リソースの更新

AWS CloudFormationリソース定義が更新されました(PR #35320PR #35382)。詳細は各PRを参照してください。


Alphaモジュール

Bedrock: GuardrailsのL2コンストラクト

影響を受けるモジュール: @aws-cdk/aws-bedrock-alpha

Amazon Bedrock Guardrailsの包括的なL2コンストラクトが追加されました。Guardrailsは、基盤モデル(LLM)のレスポンスをフィルタリングし、有害なコンテンツや機密情報の漏洩を防ぐための機能です。

主な機能:

  • コンテンツフィルター: 有害なコンテンツ、ヘイトスピーチ、性的コンテンツ、暴力的コンテンツのフィルタリング
  • 単語フィルター: 特定の単語やフレーズのブロック
  • PII(個人識別情報)フィルター: 機密情報の検出とマスキング
  • トピックフィルター: 特定のトピックに関する質問の制限
  • コンテキストグラウンディング: 提供されたコンテキストに基づいて回答を制限

コード例:

import * as bedrock from '@aws-cdk/aws-bedrock-alpha';

// 基本的なGuardrailの作成
const guardrail = new bedrock.Guardrail(this, 'MyGuardrail', {
  name: 'my-guardrail',
  description: 'Guardrail for customer-facing chatbot',
  // コンテンツフィルター
  contentFilters: [
    {
      type: bedrock.ContentFilterType.SEXUAL,      // 性的コンテンツ
      inputStrength: bedrock.FilterStrength.HIGH,  // 入力の強度
      outputStrength: bedrock.FilterStrength.HIGH, // 出力の強度
    },
    {
      type: bedrock.ContentFilterType.VIOLENCE,    // 暴力的コンテンツ
      inputStrength: bedrock.FilterStrength.MEDIUM,
      outputStrength: bedrock.FilterStrength.HIGH,
    },
    {
      type: bedrock.ContentFilterType.HATE,        // ヘイトスピーチ
      inputStrength: bedrock.FilterStrength.HIGH,
      outputStrength: bedrock.FilterStrength.HIGH,
    },
  ],
  // 単語フィルター
  wordFilters: [
    {
      words: ['badword1', 'badword2'],  // ブロックする単語
      action: bedrock.WordFilterAction.BLOCK,
    },
  ],
  // PIIフィルター
  piiFilters: [
    {
      type: bedrock.PiiType.EMAIL,              // メールアドレス
      action: bedrock.PiiAction.ANONYMIZE,      // 匿名化
    },
    {
      type: bedrock.PiiType.PHONE,              // 電話番号
      action: bedrock.PiiAction.BLOCK,          // ブロック
    },
  ],
});

// Bedrockエージェントと統合
import * as agents from '@aws-cdk/aws-bedrock-alpha';

const agent = new agents.Agent(this, 'MyAgent', {
  name: 'customer-support-agent',
  foundationModel: agents.BedrockFoundationModel.ANTHROPIC_CLAUDE_V2,
  instruction: 'You are a helpful customer support agent.',
  // Guardrailを適用
  guardrail: guardrail,
});

関連リソース: PR #34765


EKS v2: Kubernetes 1.33のサポート

影響を受けるモジュール: @aws-cdk/aws-eks-v2-alpha

EKS v2 alpha モジュールで、Kubernetes 1.33がサポートされました。

関連リソース: PR #34713


S3 Tables: TablePolicyのL2サポート

影響を受けるモジュール: @aws-cdk/aws-s3tables-alpha

S3 Tablesで、テーブルレベルのIAMリソースポリシーを管理するためのTablePolicyコンストラクトと、便利なアクセス権限付与メソッドが追加されました。

新しいコンストラクト:

  • TablePolicy: テーブルのIAMポリシーを定義

新しいメソッド:

  • table.addToResourcePolicy(): テーブルのIAMポリシーにステートメントを追加
  • table.grantRead(): 読み取り権限を付与
  • table.grantWrite(): 書き込み権限を付与
  • table.grantReadWrite(): 読み取りおよび書き込み権限を付与

コード例:

import * as s3tables from '@aws-cdk/aws-s3tables-alpha';
import * as iam from 'aws-cdk-lib/aws-iam';

const tableBucket = new s3tables.TableBucket(this, 'TableBucket', {
  tableBucketName: 'my-table-bucket',
});

const table = new s3tables.Table(this, 'MyTable', {
  tableBucket,
  tableName: 'customer-data',
  columns: [
    { name: 'customerId', type: s3tables.DataType.STRING },
    { name: 'name', type: s3tables.DataType.STRING },
    { name: 'createdAt', type: s3tables.DataType.TIMESTAMP },
  ],
  partitionKeys: ['customerId'],
});

// IAMユーザーに読み取り権限を付与
const user = iam.User.fromUserName(this, 'User', 'data-analyst');
table.grantRead(user);  // s3tables:Get* 権限を付与

// IAMロールに書き込み権限を付与
const role = iam.Role.fromRoleName(this, 'Role', 'data-ingestion-role');
table.grantWrite(role);  // s3tables:PutTableData, UpdateTableMetadataLocation, RenameTable

// 別のロールに読み取りと書き込み権限を付与
const adminRole = iam.Role.fromRoleName(this, 'AdminRole', 'admin-role');
table.grantReadWrite(adminRole);  // s3tables:Get*, PutTableData, UpdateTableMetadataLocation, CreateTable

// カスタムポリシーステートメントを追加
table.addToResourcePolicy(
  new iam.PolicyStatement({
    actions: ['s3tables:DeleteTable'],
    principals: [new iam.AccountPrincipal('123456789012')],
    resources: [table.tableArn],
  })
);

権限の詳細:

メソッドIAM アクション説明
grantReads3tables:Get*テーブルからデータを読み取る権限
grantWrites3tables:PutTableData
s3tables:UpdateTableMetadataLocation
s3tables:RenameTable
テーブルにデータを書き込む権限
grantReadWrites3tables:Get*
s3tables:PutTableData
s3tables:UpdateTableMetadataLocation
s3tables:CreateTable
テーブルの読み取りと書き込み権限

関連リソース: PR #35223


バグ修正

起動時間の最適化に関する修正

問題: v2.172.0で導入された遅延読み込み(lazy loading)により、小規模なプログラムでは起動時間が改善されましたが、大規模なプログラムでは逆に遅くなる問題がありました。

修正内容: 遅延読み込みのロジックが最適化され、大規模なCDKアプリケーションでもパフォーマンスが向上しました。

関連リソース: PR #35335


CloudWatch: AlarmRule.concatでの空オペランド処理

問題: AlarmRule.concat()メソッドで空の配列を渡すとエラーが発生していました。

修正内容: 空のオペランドを適切に処理し、エラーを回避できるようになりました。

関連リソース: PR #34757


ECS Patterns: カスタムセキュリティグループ使用時のopenListener設定

問題: ECSパターンでカスタムセキュリティグループを提供した場合でも、openListenerがデフォルトでtrueになっていました。

修正内容: カスタムセキュリティグループを指定した場合、openListenerは自動的にfalseに設定されるようになりました。

関連リソース: PR #35297


EKS: kubectlProviderでの適切なマネージドポリシーの使用

問題: EKSのkubectlProviderで、不適切なIAMマネージドポリシーが使用されていました。

修正内容: AmazonEC2ContainerRegistryReadOnlyからAmazonEC2ContainerRegistryPullOnlyに変更され、より適切な権限が付与されるようになりました。

関連リソース: PR #35248


Step Functions: Bedrock AgentサービスのIAMプレフィックスマッピング

問題: Step FunctionsからBedrock Agentを呼び出す際のIAMプレフィックスが不正確でした。

修正内容: bedrockagentサービスがbedrock IAMプレフィックスに正しくマッピングされるようになりました。

関連リソース: PR #35147


非推奨プロパティの削除

問題: 非推奨のプロパティがCfnコンストラクトに渡され続けていました。

修正内容: 非推奨のプロパティがCloudFormationテンプレートに含まれなくなりました。

関連リソース: PR #35080


S3 Deployment: CloudFront無効化エラーの修正

問題: S3デプロイメント後のCloudFront無効化処理で、間欠的にCreateInvalidationエラーや待機エラーが発生していました。

修正内容: エラーハンドリングとリトライロジックが改善され、無効化処理がより安定しました。

関連リソース: PR #34859


まとめ

AWS CDK v2.214.0は、11の新機能と複数のバグ修正を含む大型リリースです。特に以下の機能が注目されます:

  • ACM証明書のエクスポート: 証明書の秘密鍵をエクスポート可能にし、他のベンダーからの移行を容易に
  • DynamoDB Contributor Insights: テーブルのパフォーマンス分析を強化
  • RDS自動バックアップ保持: クラスター削除後もバックアップを保持可能に
  • EventBridge Archive KMS: カスタマーマネージドキーでアーカイブを暗号化
  • Cognito トークンローテーション: リフレッシュトークンのセキュリティを向上

Alphaモジュールでは、Bedrock Guardrailsの包括的なL2コンストラクトと、S3 Tablesのアクセス制御機能が追加されています。

v2.214.0にアップグレードする際は、ECS AvailabilityZoneRebalancingプロパティのデフォルト値変更に注意してください。この変更により、既存のECSサービスの動作が影響を受ける可能性があります。