본문 바로가기

퍼블릭 클라우드

우분투에서 AWS CDK를 설치하고 간단한 샘플을 실행하는 방법

반응형

우분투에서 AWS CDK(Cloud Development Kit)를 설치하고 간단한 샘플을 실행하는 방법

AWS CDK(AWS Cloud Development Kit)은 클라우드 리소스를 코드로 정의하고 배포할 수 있는 도구입니다.

1. AWS CDK 설치

Node.js 설치

AWS CDK는 Node.js 환경에서 동작하므로 먼저 Node.js를 설치해야 합니다.

 

Node.js 설치

sudo apt update
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

설치 확인

node -v
npm -v
$ node -v
v20.18.1

$ npm -v
10.8.2

AWS CDK 설치

npm으로 AWS CDK 설치

npm install -g aws-cdk

설치 확인

cdk --version
$ cdk --version
2.171.1 (build a95560c)

2. AWS CLI 설정

AWS CDK를 사용하려면 AWS CLI가 구성되어 있어야 합니다.

 

AWS CLI 설치

sudo apt install awscli

설치 확인

$ aws --version
aws-cli/2.22.5 Python/3.12.6 Linux/6.8.0-49-generic exe/x86_64.ubuntu.24

AWS account ID 및 AWS Region 확인

aws sts get-caller-identity --query "Account" --output text
aws configure get region

AWS CLI 설정

aws configure
  • Access Key : AWS IAM 사용자 액세스 키 입력
  • Secret Key : AWS IAM 사용자 비밀 키 입력
  • Region : 원하는 AWS 리전(e.g., us-east-1)
  • Output Format: json으로 설정

3. CDK 프로젝트 생성

프로젝트 디렉토리 생성

mkdir my-cdk-app
cd my-cdk-app

CDK 프로젝트 초기화

cdk init app --language=typescript
$ cdk init app --language=typescript
Applying project template app for typescript
# Welcome to your CDK TypeScript project

This is a blank project for CDK development with TypeScript.

The `cdk.json` file tells the CDK Toolkit how to execute your app.

## Useful commands

* `npm run build`   compile typescript to js
* `npm run watch`   watch for changes and compile
* `npm run test`    perform the jest unit tests
* `npx cdk deploy`  deploy this stack to your default AWS account/region
* `npx cdk diff`    compare deployed stack with current state
* `npx cdk synth`   emits the synthesized CloudFormation template

Initializing a new git repository...
...
✅ All done!

필요한 의존성 설치

npm install
npm run build

4. 샘플 코드 작성

CDK 프로젝트를 초기화하면 lib/my-cdk-app-stack.ts 파일이 생성됩니다.

이 파일에 간단한 S3 버킷 생성 코드를 추가합니다.

vim bin/cdk-s3-example.ts
#!/usr/bin/env node
import * as cdk from 'aws-cdk-lib';
import { CdkS3ExampleStack } from '../lib/cdk-s3-example-stack';

const app = new cdk.App();

new CdkS3ExampleStack(app, 'CdkS3ExampleStack', {
  env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: process.env.CDK_DEFAULT_REGION },
});
vim lib/cdk-s3-example-stack.ts
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as s3 from 'aws-cdk-lib/aws-s3';

export class CdkS3ExampleStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // S3 버킷 생성
    new s3.Bucket(this, 'MyS3Bucket', {
      bucketName: `example-bucket-${cdk.Aws.ACCOUNT_ID}-${cdk.Aws.REGION}`,  // 고유한 이름으로 변경
      removalPolicy: cdk.RemovalPolicy.DESTROY, // 스택 삭제 시 버킷 삭제
      autoDeleteObjects: true, // 객체 자동 삭제
    });
  }
}

5. CDK 스택 배포

5.1 AWS 계정 부트스트래핑

AWS 계정을 CDK에 사용할 수 있도록 부트스트래핑합니다.

cdk bootstrap

5.2 스택 배포

CDK 코드를 배포합니다.

cdk deploy

배포 중 확인 메시지가 나오면 y를 입력합니다.

6. 배포 확인

AWS Management Console에서 S3 서비스를 확인하여 MyFirstBucket이라는 버킷이 생성되었는지 확인합니다.

7. 스택 삭제

생성된 리소스를 삭제하려면:

cdk destroy

 

참고URL

- AWS Documentation : AWS CDK(Cloud Development Kit)

- AWS Documentation : Getting started with the AWS CDK

 

728x90
반응형