概要
AWS CDK v2.174.1は、L1 CloudFormationリソース定義の定期更新を含むメンテナンスリリースです。このリリースでは、AmazonMQ、AWS Batch、Amazon Bedrock、AWS Clean Rooms、AWS DMS、Amazon DocumentDB、AWS MediaConvert、Amazon QuickSightなど、多数のAWSサービスで最新のCloudFormation仕様に対応した新しいプロパティやタイプ定義が追加されています。
新機能
1. AmazonMQ Broker - Jolokia API アクセス制御
Amazon MQのBrokerリソースで、ユーザーごとにJolokia APIへのアクセスを制御できる新しいプロパティが追加されました。
import * as amazonmq from 'aws-cdk-lib/aws-amazonmq';
const broker = new amazonmq.CfnBroker(this, 'Broker', {
brokerName: 'MyBroker',
engineType: 'ACTIVEMQ',
engineVersion: '5.18',
hostInstanceType: 'mq.t3.micro',
publiclyAccessible: false,
users: [{
username: 'admin',
password: 'MySecurePassword123!',
// 新機能: Jolokia APIアクセスの制御
jolokiaApiAccess: 'ENABLED', // ENABLED または DISABLED を指定可能
}],
deploymentMode: 'SINGLE_INSTANCE',
});
主な用途: Jolokia APIは、JMXを介してApache ActiveMQのメトリクスや管理操作にアクセスするためのHTTP/JSONベースのプロトコルです。この設定により、特定のユーザーのみにJolokia APIへのアクセスを許可することで、セキュリティを強化できます。
2. AWS Batch - Volume型定義の統合
AWS BatchのJobDefinitionリソースで、EFS(Elastic File System)ボリューム関連の型定義が統合され、より一貫性のある構造になりました。
主な変更点:
Volume型とVolumes型が統合され、Volumes型に一本化EFSVolumeConfiguration型がEfsVolumeConfiguration型に統合AuthorizationConfigがEFSAuthorizationConfigとして明確に定義
import * as batch from 'aws-cdk-lib/aws-batch';
const jobDefinition = new batch.CfnJobDefinition(this, 'JobDef', {
type: 'container',
containerProperties: {
image: 'my-image:latest',
vcpus: 2,
memory: 2048,
// 改善された型定義によるボリューム設定
volumes: [{
name: 'my-efs-volume',
efsVolumeConfiguration: {
fileSystemId: 'fs-12345678',
rootDirectory: '/data',
transitEncryption: 'ENABLED', // EFS転送時の暗号化
transitEncryptionPort: 2999, // カスタムポート指定
authorizationConfig: {
accessPointId: 'fsap-12345678', // EFSアクセスポイントID
iam: 'ENABLED', // IAM認証を有効化
},
},
}],
mountPoints: [{
sourceVolume: 'my-efs-volume',
containerPath: '/mnt/efs',
readOnly: false,
}],
},
});
さらに、EKSベースのジョブ定義の型でも後方互換性フラグが追加され、既存のコードとの互換性が保たれています(PR #32768)。
3. Amazon Bedrock - Tool Use ドキュメント改善
Amazon Bedrockのプロンプトリソースで、Tool Use(関数呼び出し)機能に関連するドキュメントが強化されました。
import * as bedrock from 'aws-cdk-lib/aws-bedrock';
const prompt = new bedrock.CfnPrompt(this, 'Prompt', {
name: 'MyPrompt',
variants: [{
name: 'default',
templateType: 'TEXT',
modelId: 'anthropic.claude-3-sonnet-20240229-v1:0',
templateConfiguration: {
text: {
text: 'あなたは役立つアシスタントです。',
},
},
// Tool Useの設定
inferenceConfiguration: {
text: {
temperature: 0.7,
maxTokens: 2048,
},
},
}],
});
改善されたドキュメント:
Tool: Converse APIで使用可能なツールの定義ToolChoice: モデルがリクエストすべきツールの決定方法ToolSpecification: ツールの仕様(スキーマ、説明、パラメータ)ToolInputSchema: ツールの入力スキーマ(トップレベルはobject型である必要がある)
すべてのドキュメントにCall a tool with the Converse APIへのリファレンスリンクが追加され、実装時の参照が容易になりました。
4. AWS Clean Rooms - 機械学習機能の支払い設定
AWS Clean RoomsのCollaborationとMembershipリソースに、機械学習(ML)ワークロード用の支払い設定プロパティが追加されました。
import * as cleanrooms from 'aws-cdk-lib/aws-cleanrooms';
const collaboration = new cleanrooms.CfnCollaboration(this, 'Collaboration', {
name: 'MyCollaboration',
creatorDisplayName: 'Creator',
creatorMemberAbilities: ['CAN_QUERY', 'CAN_RECEIVE_RESULTS'],
members: [{
accountId: '123456789012',
displayName: 'Member1',
memberAbilities: ['CAN_QUERY'],
// 新機能: MLメンバー権限の設定
mlMemberAbilities: {
customMLMemberAbilities: ['CAN_TRAIN_MODEL', 'CAN_INVOKE_MODEL'],
},
}],
queryLogStatus: 'ENABLED',
// 新機能: ML機能の支払い設定
creatorMLMemberAbilities: {
customMLMemberAbilities: ['CAN_TRAIN_MODEL', 'CAN_INVOKE_MODEL'],
},
paymentConfiguration: {
queryCompute: {
isResponsible: true,
},
// 新機能: MLワークロードの支払い責任者設定
machineLearning: {
modelTraining: {
isResponsible: true, // モデルトレーニングの費用負担責任
},
modelInference: {
isResponsible: false, // モデル推論の費用負担責任
},
},
},
});
主な用途: Clean Roomsで機械学習を使用する場合、モデルトレーニングと推論の費用をコラボレーションメンバー間でどのように分担するかを明確に定義できます。
5. AWS DMS - Data Providerドキュメント改善
AWS Database Migration Service (DMS)のDataProviderリソースで、DocumentDB、MongoDB、Redshift設定のドキュメントが強化されました。
import * as dms from 'aws-cdk-lib/aws-dms';
const dataProvider = new dms.CfnDataProvider(this, 'DataProvider', {
engine: 'mongodb',
// DocumentDB設定(ドキュメントが改善)
settings: {
mongoDbSettings: {
serverName: 'my-mongodb-server.example.com', // MongoDBサーバー名
port: 27017, // 接続ポート番号
databaseName: 'myDatabase', // データベース名
authType: 'password', // 認証タイプ(password または scram-sha-1)
authMechanism: 'default', // 認証メカニズム
authSource: 'admin', // 認証データベース
},
},
});
各設定項目に詳細な説明が追加され、DMS移行タスクの設定がより明確になりました。
6. Amazon DocumentDB - マスターユーザーパスワード管理
Amazon DocumentDBクラスターで、AWS Secrets Managerによるマスターユーザーパスワードの自動管理機能が追加されました。
import * as docdb from 'aws-cdk-lib/aws-docdb';
import * as kms from 'aws-cdk-lib/aws-kms';
const key = new kms.Key(this, 'Key');
const cluster = new docdb.CfnDBCluster(this, 'Cluster', {
dbClusterIdentifier: 'my-docdb-cluster',
engineVersion: '5.0.0',
// 新機能: Secrets Managerによる自動パスワード管理
manageMasterUserPassword: true, // マスターユーザーパスワードの自動管理を有効化
masterUserSecretKmsKeyId: key.keyId, // Secrets Manager用のKMSキー(オプション)
masterUsername: 'admin', // マスターユーザー名
// masterPassword は指定不要(Secrets Managerが自動生成)
// 新機能: パスワードの自動ローテーション
rotateMasterUserPassword: true, // パスワードの定期的な自動ローテーションを有効化
vpcSecurityGroupIds: ['sg-12345678'],
dbSubnetGroupName: 'my-subnet-group',
});
セキュリティ上の利点:
- マスターパスワードをコード内にハードコーディングする必要がない
- Secrets Managerによる暗号化されたパスワード保管
- 自動的なパスワードローテーション機能
- KMSカスタマー管理キーによる暗号化制御
7. AWS MediaConvert - キュー同時実行数の設定
AWS MediaConvertのキューリソースで、同時に実行可能なジョブ数を制限できる新しいプロパティが追加されました。
import * as mediaconvert from 'aws-cdk-lib/aws-mediaconvert';
const queue = new mediaconvert.CfnQueue(this, 'Queue', {
name: 'MyMediaConvertQueue',
// 新機能: 同時実行ジョブ数の制限
concurrentJobs: 10, // 最大10個のジョブを同時に実行可能
pricingPlan: 'ON_DEMAND',
status: 'ACTIVE',
});
主な用途:
- コスト管理: 同時実行数を制限することで、予期しない大量のジョブ実行による費用超過を防ぐ
- リソース管理: エンコーディングリソースの使用を適切にコントロール
- キュー優先度制御: 複数のキューで異なる同時実行数を設定し、優先度を管理
8. Amazon QuickSight - Geospatial/Image機能のドキュメント拡充
Amazon QuickSightのAnalysisリソースで、地理空間ビジュアル(Geospatial Map)やイメージ機能に関する多数のドキュメントが追加・改善されました。
改善された主要な型:
GeospatialLayerMapConfiguration: マップ定義、マップスタイル、地理空間レイヤーの設定GeospatialLayerItem: 個々の地理空間レイヤーのプロパティGeospatialColor: ソリッド、グラデーション、カテゴリカルカラーの可視化プロパティGeospatialCircleSymbolStyle: ポイントレイヤー用のサークルシンボルスタイルGeospatialLineSymbolStyle: ラインレイヤー用のラインシンボルスタイルGeospatialPolygonSymbolStyle: ポリゴンレイヤー用のポリゴンシンボルスタイルSheetImage: シート上に配置される画像の設定ImageCustomAction: 画像に定義されたカスタムアクションLayerMapVisual: レイヤーマップビジュアルの完全な定義PluginVisual: カスタムチャートを作成できる柔軟なビジュアルタイプ
import * as quicksight from 'aws-cdk-lib/aws-quicksight';
const analysis = new quicksight.CfnAnalysis(this, 'Analysis', {
analysisId: 'my-analysis',
awsAccountId: '123456789012',
name: 'My Geospatial Analysis',
definition: {
dataSetIdentifierDeclarations: [{
identifier: 'dataset1',
dataSetArn: 'arn:aws:quicksight:us-east-1:123456789012:dataset/...',
}],
sheets: [{
sheetId: 'sheet1',
name: 'Geo Sheet',
visuals: [{
// LayerMapVisualの使用例
layerMapVisual: {
visualId: 'map1',
dataSetIdentifier: 'dataset1',
chartConfiguration: {
mapLayers: [{
layerId: 'layer1',
layerType: 'POINT',
label: 'Store Locations',
visibility: 'VISIBLE',
dataSource: {
staticFileDataSource: {
staticFileId: 'geojson-file-1',
},
},
layerDefinition: {
pointLayer: {
style: {
circleSymbolStyle: {
fillColor: {
solid: {
color: '#FF0000', // 赤色のポイント
state: 'ENABLED',
},
},
circleRadius: {
radius: 8, // ポイントサイズ
},
strokeColor: {
solid: {
color: '#000000', // 黒色の枠線
state: 'ENABLED',
},
},
strokeWidth: {
lineWidth: 2, // 枠線の太さ
},
},
},
},
},
joinDefinition: {
shapeKeyField: 'location_id',
colorField: {
colorDimensionsFields: [{
fieldId: 'revenue',
column: {
dataSetIdentifier: 'dataset1',
columnName: 'Revenue',
},
}],
},
},
}],
mapState: {
mapNavigation: {
panZoom: 'ENABLED', // パンとズームを有効化
},
},
mapStyle: {
baseMapStyle: 'LIGHT_GRAY', // ライトグレーのベースマップ
baseMapVisibility: 'VISIBLE',
backgroundColor: '#FFFFFF',
},
},
},
}],
// 画像の配置例
images: [{
sheetImageId: 'logo',
source: {
sheetImageStaticFileSource: {
staticFileId: 'company-logo', // 静的ファイルIDを参照
},
},
scaling: {
scalingType: 'SCALE_TO_WIDTH', // 幅に合わせてスケーリング
},
interactions: {
imageMenuOption: {
availabilityStatus: 'ENABLED', // 画像メニューを有効化
},
},
actions: [{
customActionId: 'action1',
name: 'Navigate to Dashboard',
trigger: 'CLICK', // クリックでトリガー
status: 'ENABLED',
actionOperations: [{
navigationOperation: {
localNavigationConfiguration: {
targetSheetId: 'sheet2',
},
},
}],
}],
imageContentAltText: 'Company Logo', // アクセシビリティ用の代替テキスト
tooltip: {
tooltipText: {
plainText: 'Click to navigate', // ツールチップテキスト
},
visibility: 'VISIBLE',
},
}],
}],
staticFiles: [{
staticFileId: 'geojson-file-1',
source: {
s3Options: {
bucketName: 'my-geojson-bucket',
key: 'data/stores.geojson',
region: 'us-east-1',
},
},
}],
},
});
すべてのビジュアルタイプにvisualContentAltTextプロパティの説明が追加され、アクセシビリティ対応が強化されました。
Alpha modules (2.174.1-alpha.0)
このリリースのAlphaモジュールには、新しい機能や変更は含まれていません。
バグ修正
このリリースには、ユーザーが報告したバグ修正は含まれていません。L1リソース定義の更新のみです。
破壊的変更
このリリースには破壊的変更は含まれていません。
まとめ
AWS CDK v2.174.1は、L1 CloudFormationリソース定義の定期更新を含むメンテナンスリリースです。主な更新内容は以下の通りです:
- AmazonMQ: Jolokia APIアクセス制御の追加
- AWS Batch: Volume型定義の統合とEKS関連の後方互換性改善
- Amazon Bedrock: Tool Use機能のドキュメント強化
- AWS Clean Rooms: 機械学習ワークロード用の支払い設定追加
- AWS DMS: Data Provider設定のドキュメント改善
- Amazon DocumentDB: Secrets Managerによる自動パスワード管理機能
- AWS MediaConvert: キュー同時実行数の制限設定
- Amazon QuickSight: Geospatial/Image機能の包括的なドキュメント拡充
これらの更新により、最新のAWSサービス機能をCDKから利用できるようになります。特に、DocumentDBのマスターパスワード管理機能やClean Roomsの機械学習支払い設定は、セキュリティとコスト管理の面で重要な追加機能です。
既存のCDKアプリケーションへの影響はなく、安全にアップグレード可能です。新しいプロパティを使用する場合は、上記のコード例を参考に実装してください。