AWS CDK의 re:Invent 특별 업데이트

발행: (2025년 12월 11일 오전 03:22 GMT+9)
7 min read
원문: Dev.to

Source: Dev.to

TL;DR

2025년을 마무리하면서, 우리 놀라운 CDK 커뮤니티에 깊은 감사를 전합니다! 올해는 CDK Mixins 개발자 프리뷰, AI‑지원 AWS IaC MCP Server, 포괄적인 EC2 Image Builder L2 지원, Bedrock AgentCore construct, 그리고 다른 construct를 매개변수로 받는 L1 construct와 같은 강력한 새로운 패턴 등 흥미로운 업데이트가 있었습니다. 커뮤니티(내부 AWS와 외부)에서 놀라운 기여가 이어졌고, 새로운 Grants 패턴을 출시했으며, Lambda Managed Instances, Lambda durable functions, Lambda multi‑tenancy, Route 53 failover routing, DynamoDB GSI용 복합 키, ACM/ACM‑PCA용 VPC 엔드포인트 등 다양한 L2 construct를 추가했습니다. 매일 CDK를 더 나은 방향으로 이끌어 주셔서 감사합니다!

A Message of Gratitude

2025년을 마무리하며, 멋진 CDK 커뮤니티에 잠시 감사를 전하고 싶습니다. 올해는 우리가 출시한 기능들뿐만 아니라 CDK를 특별하게 만드는 놀라운 사람들 덕분에 비범한 해였습니다.

  • 외부 기여자: PR을 제출하고, 이슈를 제기하며, 질문에 답하고, CDK로 멋진 것을 만들어 주셨습니다. 주요 L2 construct부터 작은 버그 수정까지, 여러분의 기여가 모두에게 더 나은 CDK를 만들고 있습니다. 시간과 전문성, 헌신에 감사드립니다.
  • 커뮤니티 구성원: Stack Overflow에서 질문을 하든, Slack에서 지식을 나누든, GitHub Discussions에서 다른 사람을 돕든, 여러분이 만든 환영하고 협력적인 커뮤니티가 CDK를 특별하게 만듭니다.

연말을 맞이하며 여러분 한 사람 한 사람에게 감사드립니다. 2026년에도 멋진 일들이 가득하길! 🎄✨

Major Features

CDK Mixins – Developer Preview

CDK Mixins은 인프라 추상화를 구성하고 재사용하는 방식을 근본적으로 바꿉니다. 특정 구현에 얽매이지 않고 L1, L2, 혹은 커스텀 construct에 정교한 기능을 적용할 수 있습니다.

import { Mixins } from '@aws-cdk/mixins-preview';
import '@aws-cdk/mixins-preview/with';
import { EncryptionAtRest, AutoDeleteObjects } from '@aws-cdk/mixins-preview/aws-s3/mixins';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as logs from 'aws-cdk-lib/aws-logs';

// Fluent syntax
const bucket = new s3.CfnBucket(this, 'Bucket')
  .with(new EncryptionAtRest())
  .with(new AutoDeleteObjects());

// Cross‑service abstractions
const logGroup = new logs.CfnLogGroup(this, 'LogGroup');
Mixins.of(logGroup).apply(new EncryptionAtRest());

// Apply at scale
Mixins.of(this).apply(new EncryptionAtRest());

Vended Log Deliveries

47개 이상의 AWS 리소스에 대해 로그 전달을 자동으로 구성합니다:

import { LogDelivery } from '@aws-cdk/mixins-preview';
import * as s3 from 'aws-cdk-lib/aws-s3';

const bucket = new s3.CfnBucket(this, 'Bucket');
Mixins.of(bucket).apply(new LogDelivery());

EventBridge Event Patterns

26개 서비스에 대한 타입‑안전한 EventBridge 이벤트 패턴을 생성하는 헬퍼:

import { BucketEvents } from '@aws-cdk/mixins-preview/aws-s3/events';
import * as events from 'aws-cdk-lib/aws-events';
import * as targets from 'aws-cdk-lib/aws-events-targets';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as lambda from 'aws-cdk-lib/aws-lambda';

// Works with L2 constructs
const bucket = new s3.Bucket(this, 'Bucket');
const bucketEvents = BucketEvents.fromBucket(bucket);

new events.Rule(this, 'Rule', {
  eventPattern: bucketEvents.objectCreatedPattern({
    object: { key: ['uploads/*'] },
  }),
  targets: [new targets.LambdaFunction(fn)],
});

// Also works with L1 constructs
const cfnBucket = new s3.CfnBucket(this, 'CfnBucket');
const cfnBucketEvents = BucketEvents.fromBucket(cfnBucket);

new events.CfnRule(this, 'CfnRule', {
  state: 'ENABLED',
  eventPattern: cfnBucketEvents.objectCreatedPattern(),
  targets: [{ arn: fn.functionArn, id: 'Target' }],
});

New Grants Pattern

전용 grant 클래스를 사용해 권한 관리를 간소화했습니다. 이제 S3, DynamoDB, Step Functions, Route 53에 적용됩니다.

// S3
bucket.grants.read(role);
bucket.grants.write(role);

// DynamoDB
table.grants.readData(role);
table.grants.writeData(role);
table.streamGrants.read(role);

// Step Functions
stateMachine.grants.startExecution(role);
stateMachine.grants.read(role);

// Route53
hostedZone.grants.delegation(role);

시작하기:

npm install @aws-cdk/mixins-preview

L1 Constructs Accept Constructs as Parameters

DX(Developer Experience)가 크게 향상되었습니다! 알려진 리소스 관계에 대해 ARN/ID를 추출하는 대신 construct 자체를 직접 전달할 수 있습니다.

// Before
new lambda.CfnFunction(this, 'Function', {
  role: role.roleArn,  // Manual extraction
});

// After
new lambda.CfnFunction(this, 'Function', {
  role: role,  // Pass construct directly!
});

이 패턴은 모든 L1 construct에 적용되어 코드가 더 깔끔하고 직관적입니다.

AI‑Powered Development

AWS IaC MCP Server

AWS IaC MCP Server는 Model Context Protocol을 CDK 워크플로에 도입해 Amazon Q Developer, Claude Desktop, Cursor, VS Code와 같은 AI 어시스턴트와 통합합니다.

주요 기능

  • 최신 문서, API 레퍼런스, 모범 사례와 함께 CDK 빌드
  • TypeScript, Python, Java, C#, Go 등 다양한 언어의 CDK 코드 샘플 검색
  • cfn‑lint 로 CloudFormation 템플릿 검증
  • cfn‑guard 로 규정 준수 검사
  • 패턴 매칭을 통한 배포 문제 트러블슈팅

설정 (~/.aws/amazonq/mcp.json)

{
  "mcpServers": {
    "awslabs.aws-iac-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.aws-iac-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "your-named-profile"
      }
    }
  }
}

Documentation

Service L2 Constructs

EC2 Image Builder (Alpha)

EC2 Image Builder에 대한 포괄적인 L2 지원이 추가되었습니다. 컴포넌트, 레시피, 파이프라인, 워크플로, 라이프사이클 정책을 위한 construct를 제공합니다.

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

const component = new imagebuilder.Component(this, 'Component', {
  platform: imagebuilder.Platform.LINUX,
  data: imagebuilder.ComponentData.fromAsset(this, 'ComponentAsset', 'component.yaml'),
});

const recipe = new imagebuilder.ImageRecipe(this, 'Recipe', {
  parentImage: 'ami-12345678',
  components: [component],
});

const pipeline = new imagebuilder.ImagePipeline(this, 'Pipeline', {
  imageRecipe: recipe,
  infrastructureConfiguration,
  schedule: imagebuilder.Schedule.cron({ hour: '0', minute: '0' }),
});

const lifecycle = new imagebuilder.LifecyclePolicy(this, 'Lifecycle', {
  resources: [imagebuilder.LifecycleResource.AMI],
  rules: [{
    action: imagebuilder.LifecycleAction.DELETE,
    selection: {
      type: imagebuilder.SelectionType.AGE,
      value: 90,
      unit: imagebuilder.TimeUnit.DAYS,
    },
  }],
});

Bedrock AgentCore (Alpha)

런타임, 게이트웨이, 메모리, 툴 통합을 갖춘 완전한 AI 에이전트를 구축합니다.

Runtime – ECR 이미지와 이미지‑URI를 지원하는 컨테이너 기반 에이전트 실행:

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

// Example placeholder – replace with actual construct usage
const agent = new agentcore.Agent(this, 'MyAgent', {
  runtime: {
    imageUri: '123456789012.dkr.ecr.us-east-1.amazonaws.com/my-agent:latest',
  },
  // Additional configuration (gateway, memory, tools) goes here
});

추가 문서와 예제는 프리뷰 패키지에서 확인할 수 있습니다.

Back to Blog

관련 글

더 보기 »