Back to Releases
v2.223.0 2025年11月10日

AWS CDK v2.223.0 リリース解説

Cloud WAN Core Network ルートのサポート、S3デプロイメントにセキュリティグループ設定追加、DynamoDB/EventsのL1リソース破壊的変更を含むリリース

ec2s3-deploymentstepfunctionsdynamodbevents

概要

AWS CDK v2.223.0 は、VPC ルーティングに Cloud WAN Core Network のサポートを追加し、S3 デプロイメントでセキュリティグループを指定できるようにする新機能が含まれています。また、DynamoDB と EventBridge の L1 リソースに破壊的変更があるため、アップグレード時には注意が必要です。

新機能

EC2: Cloud WAN Core Network ルートのサポート

AWS Cloud WAN Core Network を経由するルートを VPC ルートテーブルに追加できるようになりました。Cloud WAN は、グローバルネットワークを構築および管理するための中心的なダッシュボードを提供するサービスです。

主な変更点

  • RouterType enum に CORE_NETWORK が追加されました
  • VPC ルートテーブルで Core Network をターゲットとして指定可能になりました

使用例

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

const vpc = new ec2.Vpc(this, 'MyVpc');

// Cloud WAN Core Network を経由するルートを追加
vpc.publicSubnets[0].addRoute('CoreNetworkRoute', {
  routerId: 'core-network-12345678',         // Core Network の ID
  routerType: ec2.RouterType.CORE_NETWORK,   // Core Network をルーターとして指定
  destinationCidrBlock: '10.1.0.0/16',       // 送信先 CIDR ブロック
});

このルートを追加することで、VPC から Cloud WAN Core Network を経由して他のネットワークにトラフィックをルーティングできるようになります。

関連リンク

S3デプロイメント: セキュリティグループのサポート

BucketDeployment コンストラクトで、デプロイ用の Lambda 関数にカスタムセキュリティグループを指定できるようになりました。これにより、より細かいネットワークセキュリティ制御が可能になります。

主な変更点

  • BucketDeploymentPropssecurityGroups プロパティ(オプション)が追加されました
  • VPC 内で動作する BucketDeployment に対して、特定のセキュリティグループを割り当てられるようになりました
  • 後方互換性を維持しており、既存のコードには影響ありません

使用例

import * as s3 from 'aws-cdk-lib/aws-s3';
import * as s3deploy from 'aws-cdk-lib/aws-s3-deployment';
import * as ec2 from 'aws-cdk-lib/aws-ec2';

const vpc = new ec2.Vpc(this, 'MyVpc');
const bucket = new s3.Bucket(this, 'MyBucket');

// カスタムセキュリティグループを作成
const deploymentSecurityGroup = new ec2.SecurityGroup(this, 'DeploymentSG', {
  vpc,
  description: 'Security group for S3 deployment Lambda',
  allowAllOutbound: true,  // S3 へのアクセスを許可
});

// 必要に応じてイングレス/エグレスルールを追加
deploymentSecurityGroup.addEgressRule(
  ec2.Peer.anyIpv4(),
  ec2.Port.tcp(443),
  'Allow HTTPS outbound for S3 access'
);

// セキュリティグループを指定して BucketDeployment を作成
new s3deploy.BucketDeployment(this, 'DeployWebsite', {
  sources: [s3deploy.Source.asset('./website-dist')],
  destinationBucket: bucket,
  vpc,                                          // VPC を指定(必須)
  vpcSubnets: {                                 // デプロイ先のサブネット
    subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
  },
  securityGroups: [deploymentSecurityGroup],    // カスタムセキュリティグループを指定
});

ユースケース

  • コンプライアンス要件により、特定のエグレスルールのみを許可する必要がある場合
  • VPC エンドポイント経由でのみ S3 にアクセスさせたい場合
  • 社内ネットワークポリシーに準拠したセキュリティ設定が必要な場合
  • EFS マウントポイントへのアクセスなど、追加のネットワークリソースにアクセスする必要がある場合

関連リンク

バグ修正

StepFunctions: DistributedMap の ResultWriter でクエリ言語を正しく選択

修正内容

DistributedMapResultWriter を使用する際、ステートマシン全体が JSONPath を使用していても、ResultWriter で JSONata を使用する場合にテンプレートが正しく生成されない問題が修正されました。

この修正により、JSONPath から JSONata への段階的な移行が容易になります。以前は、ResultWriter で JSONata を使用するためにはステートマシン全体を JSONata に切り替える必要がありましたが、現在は部分的に JSONata を使用できるようになりました。

影響範囲

  • DistributedMapResultWriter で JSONata を使用している場合
  • ステートマシン全体のクエリ言語と、DistributedMap のクエリ言語が異なる場合

使用例

import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
import * as s3 from 'aws-cdk-lib/aws-s3';

// ステートマシン全体は JSONPath を使用
const stateMachine = new sfn.StateMachine(this, 'StateMachine', {
  definitionBody: sfn.DefinitionBody.fromChainable(
    // DistributedMap の ResultWriter で JSONata を使用可能
    new sfn.DistributedMap(this, 'Map', {
      itemsPath: sfn.JsonPath.stringAt('$.items'),
      resultWriter: {
        bucket: new s3.Bucket(this, 'ResultBucket'),
        prefix: 'results',
      },
      // JSONata のクエリ言語を指定
      queryLanguage: sfn.QueryLanguage.JSONATA,
    }).itemProcessor(
      new sfn.Pass(this, 'ProcessItem')
    )
  ),
});

この修正前は、上記のコードで生成される CloudFormation テンプレートが正しくない場合がありましたが、現在は正しく生成されるようになりました。

関連リンク

Events: onEvent 関数のオプション引数の修正

EventBridge の onEvent 関数が、すべてのオプションを Rule リソースに正しく渡すように修正されました。

関連リンク

L1リソースの更新

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

関連リンク

破壊的変更

L1 リソースの CloudFormation スキーマ更新による変更

L1 リソースは CloudFormation のパブリックリソーススキーマから自動生成されており、CloudFormation の実際の状態を正確に反映するように構築されています。このリリースでは、以下のプロパティと属性が削除されました。

DynamoDB の変更

AWS::DynamoDB::GlobalTable

  • GlobalTableSettingsReplicationMode プロパティが削除されました
  • GlobalTableSourceArn プロパティが削除されました

AWS::DynamoDB::Table

  • GlobalTableSettingsReplicationMode プロパティが削除されました

これらのプロパティは CloudFormation のスキーマから削除されたため、CDK の L1 リソースからも削除されました。

影響と対応

L1 リソース(CfnGlobalTableCfnTable)でこれらのプロパティを使用している場合は、コードの修正が必要です。ただし、L2 コンストラクト(Table など)を使用している場合は影響ありません。

// 変更前(動作しなくなります)
const cfnGlobalTable = new dynamodb.CfnGlobalTable(this, 'GlobalTable', {
  // ...
  globalTableSettingsReplicationMode: 'FULL', // このプロパティは削除されました
});

// 変更後: このプロパティを削除してください
const cfnGlobalTable = new dynamodb.CfnGlobalTable(this, 'GlobalTable', {
  // 他のプロパティのみを指定
  attributeDefinitions: [/*...*/],
  keySchema: [/*...*/],
  replicas: [/*...*/],
});

EventBridge の変更

AWS::Events::EventBusPolicy

  • Id 属性が削除されました

影響と対応

CfnEventBusPolicyattrId を参照している場合は、コードの修正が必要です。

// 変更前(動作しなくなります)
const policy = new events.CfnEventBusPolicy(this, 'Policy', {
  // ...
});
const policyId = policy.attrId; // この属性は削除されました

// 変更後: Id 属性の参照を削除してください
const policy = new events.CfnEventBusPolicy(this, 'Policy', {
  // ...
});
// attrId は使用できません

Alphaモジュール

このリリースには、Alphaモジュール(2.223.0-alpha.0)に関する変更内容の詳細は記載されていません。Alphaモジュールを使用している場合は、リリースノートを確認してください。

まとめ

AWS CDK v2.223.0 は、以下の重要な変更を含むリリースです:

新機能

  • EC2 で Cloud WAN Core Network ルートをサポート
  • S3 デプロイメントでセキュリティグループを指定可能に

バグ修正

  • StepFunctions の DistributedMap で ResultWriter のクエリ言語選択を修正
  • EventBridge の onEvent 関数のオプション引数の処理を修正

破壊的変更

  • DynamoDB の L1 リソースから GlobalTableSettingsReplicationModeGlobalTableSourceArn プロパティが削除
  • EventBridge の L1 リソースから Id 属性が削除

L1 リソース(Cfn* クラス)を直接使用している場合は、破壊的変更の影響を受ける可能性があるため、アップグレード前にコードの確認が必要です。L2 コンストラクトを使用している場合は、通常影響ありません。

新機能を活用することで、より柔軟なネットワーク構成とセキュリティ設定が可能になります。