Back to Releases
v2.199.0 2025年5月27日

AWS CDK v2.199.0 リリース解説

AppConfigのConfiguration Profile削除保護、ECS Fargateのヘルスチェック設定、EKS Addonの設定値サポート、EventBridge SNSターゲットのIAMロールサポート、Step FunctionsのBedrock統合など、多数の新機能とバグ修正を含むリリースです。

appconfigecsekseventbridgestepfunctionsbedrockcloudformationvpclatticeelbrds

AWS CDK v2.199.0 がリリースされました。このバージョンでは、AppConfigのConfiguration Profile削除保護、ECS Fargateのヘルスチェック設定、EKS Addonの設定値サポート、EventBridgeのSNSターゲットでのIAMロールサポート、Step FunctionsとBedrockのモデルカスタマイズジョブ統合など、多数の新機能とバグ修正が含まれています。

新機能

AppConfig: Configuration Profileの削除保護 (#34418)

AppConfigのConfiguration Profileで削除保護がサポートされました。これまでEnvironmentのみで利用可能だった削除保護が、Configuration Profileでも設定できるようになりました。

対応する設定クラス:

  • HostedConfigurationProfile
  • SourcedConfigurationProfile
import * as appconfig from 'aws-cdk-lib/aws-appconfig';

// Hosted Configuration Profileでの削除保護
const hostedProfile = new appconfig.HostedConfigurationProfile(this, 'MyHostedProfile', {
  application: myApplication,
  content: appconfig.ConfigurationContent.fromInlineText('my config content'),
  // 新機能: Configuration Profileの削除保護を有効化
  deletionProtectionCheck: appconfig.DeletionProtectionCheck.ACCOUNT, // アカウントレベルで削除保護
});

// Sourced Configuration Profileでの削除保護
const sourcedProfile = new appconfig.SourcedConfigurationProfile(this, 'MySourcedProfile', {
  application: myApplication,
  location: appconfig.ConfigurationSource.fromParameter(myParameter),
  // 新機能: ACCOUNT_WITH_NOTIFICATION を指定すると削除時に通知を受け取る
  deletionProtectionCheck: appconfig.DeletionProtectionCheck.ACCOUNT_WITH_NOTIFICATION,
});

利用可能なオプション:

  • DeletionProtectionCheck.ACCOUNT - アカウントレベルで削除保護を有効化
  • DeletionProtectionCheck.ACCOUNT_WITH_NOTIFICATION - 削除時に通知を受け取る

ECS Patterns: Fargateサービスのヘルスチェックパーセンテージ設定 (#34516)

NetworkMultipleTargetGroupsFargateServiceminHealthyPercentmaxHealthyPercent プロパティが追加され、デプロイ中のタスク数を細かく制御できるようになりました。

import * as ecsPatterns from 'aws-cdk-lib/aws-ecs-patterns';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as ecs from 'aws-cdk-lib/aws-ecs';

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

const loadBalancedService = new ecsPatterns.NetworkMultipleTargetGroupsFargateService(this, 'Service', {
  cluster,
  taskImageOptions: {
    image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'),
  },
  // 新機能: デプロイ中のタスク数を制御
  minHealthyPercent: 50,  // デプロイ中に最低50%のタスクを稼働
  maxHealthyPercent: 200, // デプロイ中に最大200%のタスクまで起動可能(デフォルト: 200)
});

この設定により、デプロイ戦略を最適化し、ダウンタイムを最小限に抑えることができます。

EKS: Addonの設定値サポート (#34061)

EKS Addonで configurationValues プロパティがサポートされました。Addonの動作をカスタマイズするための設定値をJSON形式で指定できます。

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

const cluster = new eks.Cluster(this, 'Cluster', {
  version: eks.KubernetesVersion.V1_31,
});

// 新機能: Addonに設定値を指定
const addon = new eks.CfnAddon(this, 'VpcCniAddon', {
  clusterName: cluster.clusterName,
  addonName: 'vpc-cni',
  // カスタム設定値をJSON形式で指定
  configurationValues: JSON.stringify({
    env: {
      ENABLE_PREFIX_DELEGATION: 'true',  // Prefix Delegationを有効化
      WARM_PREFIX_TARGET: '1',           // ウォームプレフィックス数
    },
  }),
});

Alpha版でも利用可能: @aws-cdk/aws-eks-v2-alpha モジュールでも同様の機能が利用できます。

EventBridge: SNSターゲットでのIAMロール使用 (#34259)

EventBridgeの SnsTopic ターゲットで、IAMロールを使用した認可が選択できるようになりました。KMS暗号化されたSNSトピックへのメッセージ送信時の権限問題を解決します。

import * as events from 'aws-cdk-lib/aws-events';
import * as targets from 'aws-cdk-lib/aws-events-targets';
import * as sns from 'aws-cdk-lib/aws-sns';
import * as iam from 'aws-cdk-lib/aws-iam';

const topic = new sns.Topic(this, 'MyTopic');
const rule = new events.Rule(this, 'MyRule', {
  eventPattern: {
    source: ['aws.ec2'],
  },
});

// デフォルトの動作(リソースベースポリシーを使用)
rule.addTarget(new targets.SnsTopic(topic));

// 新機能: IAMロールを使用した認可(KMS暗号化トピックで推奨)
rule.addTarget(new targets.SnsTopic(topic, {
  authorizeUsingRole: true, // IAMロールを自動作成して使用
}));

// 新機能: カスタムIAMロールを指定
const customRole = new iam.Role(this, 'CustomRole', {
  assumedBy: new iam.ServicePrincipal('events.amazonaws.com'),
});
rule.addTarget(new targets.SnsTopic(topic, {
  role: customRole, // カスタムロールを使用
}));

メリット:

  • KMS暗号化されたSNSトピックでのメッセージ送信が確実に動作
  • EventBridgeターゲットのベストプラクティスに準拠
  • 統一された権限ポリシー管理

Step Functions: Bedrockモデルカスタマイズジョブの統合 (#31913)

Step Functionsで、Bedrockのモデルカスタマイズジョブ(ファインチューニング)を実行できる新しいタスク統合が追加されました。

import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
import * as tasks from 'aws-cdk-lib/aws-stepfunctions-tasks';
import * as bedrock from 'aws-cdk-lib/aws-bedrock';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as kms from 'aws-cdk-lib/aws-kms';
import * as ec2 from 'aws-cdk-lib/aws-ec2';

const trainingBucket = new s3.Bucket(this, 'TrainingBucket');
const outputBucket = new s3.Bucket(this, 'OutputBucket');
const validationBucket = new s3.Bucket(this, 'ValidationBucket');
const kmsKey = new kms.Key(this, 'Key');
const vpc = new ec2.Vpc(this, 'VPC');

// Bedrockモデルカスタマイズジョブタスク
const customizationJob = new tasks.BedrockCreateModelCustomizationJob(this, 'CustomizeModel', {
  baseModel: 'amazon.titan-text-express-v1',              // ベースモデル
  customizationType: tasks.CustomizationType.FINE_TUNING, // カスタマイズタイプ
  customModelName: 'my-custom-model',                     // カスタムモデル名
  jobName: 'my-customization-job',                        // ジョブ名
  // トレーニングデータの場所
  trainingDataS3Uri: trainingBucket.s3UrlForObject('training-data.jsonl'),
  // 出力先
  outputDataS3Uri: outputBucket.s3UrlForObject('output/'),
  // オプション: 検証データ
  validationDataS3Uri: [validationBucket.s3UrlForObject('validation-data.jsonl')],
  // オプション: ハイパーパラメータ
  hyperParameters: {
    batchSize: '10',
    learningRate: '0.0001',
    epochs: '3',
  },
  // オプション: KMS暗号化キー
  kmsKey,
  // オプション: カスタムモデルのタグ
  customModelTags: [
    { key: 'Environment', value: 'Production' },
    { key: 'Team', value: 'ML' },
  ],
  // オプション: ジョブのタグ
  jobTags: [
    { key: 'CostCenter', value: 'AI-Research' },
  ],
  // オプション: VPC設定(プライベートサブネットで実行)
  vpcConfig: {
    securityGroups: [new ec2.SecurityGroup(this, 'SG', { vpc })],
    subnets: vpc.isolatedSubnets,
  },
  // オプション: クライアントリクエストトークン(冪等性保証)
  clientRequestToken: 'my-unique-token',
});

const stateMachine = new sfn.StateMachine(this, 'StateMachine', {
  definitionBody: sfn.DefinitionBody.fromChainable(customizationJob),
});

ユースケース:

  • 独自のデータセットでLLMをファインチューニング
  • ドメイン特化型モデルの作成
  • モデルのカスタマイズプロセスを自動化

CloudFormation: L1リソース定義の更新 (#34555)

CloudFormationのL1リソース定義が最新版に更新されました。新しいAWSサービスとプロパティがサポートされています。

バグ修正

Application Load Balancer: HTTP証明書の検証強化 (#34233)

Application Load Balancerのリスナーで、HTTPプロトコル使用時に証明書が設定されている場合にエラーを出すバリデーションが追加されました。

import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2';

// これはエラーになる(HTTPプロトコルに証明書は不要)
const listener = alb.addListener('Listener', {
  protocol: elbv2.ApplicationProtocol.HTTP, // HTTPプロトコル
  certificates: [certificate],               // 証明書を指定 -> エラー
});

この修正により、デプロイ前に設定ミスを検出できます。

RDS: Aurora MySQLバージョンのインポート/エクスポート判定修正 (#33564)

AuroraMysqlEngineVersion.of() メソッドで、バージョン文字列からインポート/エクスポート機能の利用可能性を判定するロジックが修正されました。

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

// カスタムバージョンを指定
const engine = rds.DatabaseClusterEngine.auroraMysql({
  version: rds.AuroraMysqlEngineVersion.of('8.0.mysql_aurora.3.05.2'),
});

// インポート/エクスポート機能の利用可能性が正しく判定されるようになった

破壊的変更(実験的機能)

VPC Lattice: プロパティの必須化

影響を受けるリソース:

  • CfnResourceConfiguration: nameresourceConfigurationType プロパティが必須に変更
  • CfnResourceGateway: name, subnetIds, vpcIdentifier プロパティが必須に変更

この変更は、CloudFormationの仕様変更に伴うものです。VPC Latticeを使用している場合は、該当プロパティを明示的に指定してください。

CloudFormation: L1リソースの破壊的変更

一部のL1リソース(CfnXxx)で、CloudFormationの仕様更新に伴う破壊的変更が含まれています。L1リソースを直接使用している場合は、各モジュールの変更ノートを確認してください。

Alphaモジュールの変更

このリリースには、Alphaモジュール(2.199.0-alpha.0)の変更も含まれています。Alphaモジュールは実験的機能を含み、互換性のない変更が行われる可能性があります。

まとめ

AWS CDK v2.199.0 は、AppConfigの削除保護、ECS Fargateのヘルスチェック設定、EKS Addonのカスタマイズ、EventBridgeのIAMロールサポート、Step FunctionsとBedrockの統合など、多数の新機能を提供しています。

特に注目すべき機能は以下の通りです:

  • AppConfig Configuration Profile削除保護: 誤削除を防ぐ重要な保護機能
  • ECS Fargateヘルスチェック設定: デプロイ戦略の柔軟な制御
  • EKS Addon設定値: Addonの動作を細かくカスタマイズ
  • EventBridge SNSターゲットのIAMロール: KMS暗号化トピックへの確実な送信
  • Step Functions Bedrock統合: モデルカスタマイズジョブの自動化

バグ修正により、ALBの設定ミス検出やRDS Aurora MySQLのバージョン判定が改善されました。

VPC LatticeとCloudFormationのL1リソースに破壊的変更が含まれているため、該当機能を使用している場合はアップグレード前に変更内容を確認してください。