概要
AWS CDK v2.203.0では、RDSインスタンスのエンジンライフサイクルサポート、Lambda関数のログ削除ポリシー設定、CloudWatchダッシュボードのクロスアカウント監視機能など、複数の新機能が追加されました。また、EC2のClient VPNエンドポイントでクライアントルート強制機能がalphaモジュールで利用可能になりました。
新機能
RDS: インスタンスのエンジンライフサイクルサポート
RDSインスタンスでエンジンライフサイクルサポートを指定できるようになりました。既にRDSクラスターでは利用可能でしたが、今回インスタンスでもサポートされました。
import * as rds from 'aws-cdk-lib/aws-rds';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
const instance = new rds.DatabaseInstance(this, 'Instance', {
engine: rds.DatabaseInstanceEngine.postgres({
version: rds.PostgresEngineVersion.VER_15_2,
}),
vpc,
// エンジンライフサイクルサポートの指定
engineLifecycleSupport: rds.EngineLifecycleSupport.OPEN_SOURCE_RDS_EXTENDED_SUPPORT_DISABLED,
});
設定可能な値:
OPEN_SOURCE_RDS_EXTENDED_SUPPORT_DISABLED: 拡張サポートを無効化(オープンソースのライフサイクルに従う)OPEN_SOURCE_RDS_EXTENDED_SUPPORT: 拡張サポートを有効化(AWSによる延長サポート)
この機能により、RDSインスタンスのエンジンバージョンのサポート期間を明示的に制御できます。
関連PR: #34719
Backup: スケジュール式のタイムゾーン指定
AWS Backupのバックアッププランルールで、スケジュール式のタイムゾーンを指定できるようになりました。
import * as backup from 'aws-cdk-lib/aws-backup';
import * as events from 'aws-cdk-lib/aws-events';
const plan = backup.BackupPlan.dailyWeeklyMonthly(this, 'Plan', {
vault,
});
plan.addRule(new backup.BackupPlanRule({
scheduleExpression: events.Schedule.cron({
hour: '2',
minute: '0',
}),
// タイムゾーンの指定(デフォルト: UTC)
scheduleExpressionTimezone: 'Asia/Tokyo',
completionWindow: Duration.hours(2),
startWindow: Duration.hours(1),
}));
ポイント:
scheduleExpressionTimezoneプロパティで、バックアップスケジュールのタイムゾーンを指定できます- デフォルトはUTC
- IANAタイムゾーン形式(例:
Asia/Tokyo,America/New_York)を使用 - 特定のリージョンのビジネス時間に合わせたバックアップ計画が容易になります
関連PR: #34603
CloudWatch: クロスアカウント監視のサポート
CloudWatchダッシュボードの各ウィジェットで、クロスアカウント監視用のアカウントIDを指定できるようになりました。これにより、複数のAWSアカウントのメトリクスやログを単一のダッシュボードで表示できます。
import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';
const dashboard = new cloudwatch.Dashboard(this, 'Dashboard');
dashboard.addWidgets(
new cloudwatch.GraphWidget({
title: 'Cross Account Metric',
left: [metric],
// クロスアカウント監視: 他のアカウントのメトリクスを表示
accountId: '123456789012',
})
);
dashboard.addWidgets(
new cloudwatch.LogQueryWidget({
title: 'Cross Account Logs',
logGroupNames: ['/aws/lambda/my-function'],
// ログクエリウィジェットでも他のアカウントを指定可能
accountId: '123456789012',
})
);
対応ウィジェット:
GraphWidget: メトリクスグラフSingleValueWidget: 単一値表示GaugeWidget: ゲージ表示TableWidget: テーブル表示AlarmWidget: アラーム表示LogQueryWidget: ログクエリ
前提条件:
- 監視アカウントをCloudWatch設定で監視アカウントとして設定する必要があります
- ソースアカウントは、CloudWatchリソースポリシーを使用して監視アカウントにアクセス許可を付与する必要があります
- 適切なIAMロールとポリシーの構成が必要です
関連PR: #34793
Lambda: 関数ログの削除ポリシー設定
Lambda関数のCloudWatch Logsロググループに対して、削除ポリシーを設定できるようになりました。
import * as lambda from 'aws-cdk-lib/aws-lambda';
import { RemovalPolicy } from 'aws-cdk-lib';
const fn = new lambda.Function(this, 'MyFunction', {
runtime: lambda.Runtime.NODEJS_20_X,
handler: 'index.handler',
code: lambda.Code.fromAsset('lambda'),
// ログの削除ポリシーを設定
logRemovalPolicy: RemovalPolicy.DESTROY,
});
設定可能な値:
RemovalPolicy.RETAIN: スタック削除時にロググループを保持(デフォルト)RemovalPolicy.DESTROY: スタック削除時にロググループも削除RemovalPolicy.SNAPSHOT: サポートされていません(ロググループには適用不可)
ユースケース:
- 開発環境で、スタック削除時にログも自動削除したい場合は
DESTROYを指定 - 本番環境では、監査やトラブルシューティングのために
RETAINを使用 - CI/CDパイプラインで一時的な環境を作成・削除する場合に便利
関連PR: #34723
その他の機能
フィーチャーフラグ設定のCloud Assemblyへのレポート
フィーチャーフラグの設定情報がCloud Assemblyに含まれるようになり、デプロイ時の設定を追跡しやすくなりました。
関連PR: #34798
Pipelines: cdk-assetsバージョンの設定
CDK Pipelinesで使用するcdk-assetsのバージョンを設定できるようになりました。
関連PR: #34802
Alphaモジュール
EC2: Client VPNエンドポイントのクライアントルート強制機能
Client VPNエンドポイントで、クライアントルート強制機能を有効化できるようになりました。この機能により、VPNクライアントが特定のルートのみを使用するように制御できます。
import * as ec2 from '@aws-cdk/aws-ec2-alpha';
const endpoint = new ec2.ClientVpnEndpoint(this, 'Endpoint', {
vpc,
cidr: '10.100.0.0/16',
serverCertificateArn: 'arn:aws:acm:...',
// クライアントルート強制を有効化
enableClientRouteEnforcement: true,
});
機能の説明:
enableClientRouteEnforcement: クライアントルート強制を有効化(デフォルト:false)- 有効にすると、VPNクライアントは、Client VPNエンドポイントで明示的に追加されたルートのみを使用できます
- セキュリティ強化とトラフィック制御に有用
関連PR: #34405
バグ修正
Step Functions Tasks: CallAwsServiceCrossRegion Lambda レスポンスのシリアライズ修正
CallAwsServiceCrossRegionタスクで、Lambda関数のレスポンスが正しくシリアライズされない問題が修正されました。
EC2: inferenceAccelerators を不要な場合に使用しない
EC2インスタンスのコンストラクタで、inferenceAcceleratorsが不要な場合に使用されないように修正されました(alphaモジュール)。
破壊的変更(実験的機能)
CloudFormation: L1リソースの一部で破壊的変更
CloudFormationリソース定義の更新により、一部のL1リソースで破壊的変更が含まれています。
影響を受けるリソース:
aws_kendra.CfnDataSource.TemplateConfigurationProperty:templateプロパティの型がstringからjsonに変更されました
この変更は実験的機能(L1リソース)に対するものです。L1リソースを直接使用している場合は、コードの修正が必要になる可能性があります。
まとめ
AWS CDK v2.203.0では、運用の柔軟性とクロスアカウント監視機能が大幅に向上しました。特に、Lambda関数のログ削除ポリシー設定やBackupのタイムゾーン指定は、マルチリージョン・マルチアカウント環境での運用をより効率的にします。CloudWatchのクロスアカウント監視機能により、複数のAWSアカウントを一元管理するダッシュボードの構築が容易になりました。
RDSインスタンスのエンジンライフサイクルサポートにより、データベースエンジンのサポート期間を明示的に制御でき、長期運用計画の策定に役立ちます。