반응형
우분투에서 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
반응형
'퍼블릭 클라우드' 카테고리의 다른 글
AWS Lambda에서 Layer를 사용하여 Node.js로 샘플 코드를 구현하는 방법 (0) | 2024.11.27 |
---|---|
AWS Lambda에서 Node.js 샘플 코드를 실행하는 방법 (0) | 2024.11.27 |
인스턴스 메타데이터에 액세스하는 방법 (0) | 2024.10.08 |
AWS EC2 인스턴스 메타데이터 서비스 v2를 사용하는 방법 (0) | 2024.09.25 |
AWS 리소스를 사용하여 URL 리다이렉트를 구현하는 방법 (0) | 2024.08.07 |