퍼블릭 클라우드

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

변군이글루 2024. 12. 2. 14:35
반응형

우분투에서 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
반응형