본문 바로가기
AWS

초간단 AWS CDK 개념

by 붕어사랑 티스토리 2023. 8. 5.
반응형

1. AWS CDK(Cloud Development Kit)란?

AWS에 올라가는 서버 인프라를 코드로 구성해줄 수 있게 만드는 tool kit 이다.

 

 

왜 필요한데?

우리가 AWS에 서버를 올린다고 생각해보자. AWS 페이지 들어가서 마우스로 딸깍딸깍 이것 저것 사람이 손으로 다다다닥 눌러주고 설정해주어야 하고. 생각만해도 피곤하다.

 

이걸 코드 스크립트 같은걸로 적어서 자동화하고, 사람이 실수하는것도 줄일 수 있으면 얼마나 좋을까? 바로 그래서 AWS CDK가 나온것이다.

 

코드로 나의 AWS 인프라를 구성하고 배포할 수 있다.

 

 

 

 

2. AWS CDK의 중요 컨셉

 

CDK에는 App, Stack, Construct 라는 세가지 중요 컨셉이 있다.

 

 

App

앱은 AWS 인프라를 define하는 코드가 작성된 어플리케이션을 말한다. typeScript, JavaScript, Python, Java, C# or Go 등의 언어를 지원한다. 그리고 앱은 하나 이상의 stack을 define한다

 

 

Stack

스택은 AWS 리소스들의 집합을 구성하는 단위이다. 이 리소스들의 단위는 Construct라고 부르며 Constoruct는 하나이상의 AWS 리소스들을 가진다. 예를들어 Amazon S3 buckets, Lambda functions, or Amazon DynamoDB table 등이 있다.

 

 

Construct

위에 언급한 내용과 동일, 하나이상의 AWS 리소스들의 모음이다. AWS리소스들을 모아서 하나의 기능을 만들수도 있다.

Construct는 총 3단계의 레벨이 있다.

 

L1 : AWS CloudFormation으로 만들어진 기능이고, 리소스 앞에 항상 Cfn이라는 prefix가 붙는다

L2 :  L1을 wrapping해서 좀더 이것저것 기능을 추가한것

L3 : AWS 리소스들을 모아서 하나의 기능덩어리를 만든것. pattern이라는 단어가 포함되어있고, 유저가 커스텀하게 만들수도 있다.

 

 

 

요약하자면 다음과 같다.

 

Constuct : 여러개의 AWS 리소스를 모아 무언가 기능하는걸 만듬

Stack : Construct를 모아서 하나의 인프라를 만듬

App : 여러개의 Infra를 모아놓음

 

대충 스택단위로 보는게 가장 중요할듯

 

 

 

 

3. 지원하는 언어는?

TypeScript, JavaScript, Python, Java, C#, and Go가 공식적으로 지원되고, 다른 JVM이나 .NET같은것도 이론상 된다기는 하는데, 걍 공식적인것 쓰자.

 

CDK는 기본적으로 TypeScript를 이용해 만들어 졌고, 다른언어들은 language binding으로 진행된다고 한다.

 

 

 

 

4. 사용법은?

언어별로 설치하는 방법은 아래 링크를 참고하여 진행하자.

https://docs.aws.amazon.com/cdk/v2/guide/work-with.html

 

Working with the AWS CDK - AWS Cloud Development Kit (AWS CDK) v2

Some programming languages supported by the AWS CDK don't have an interface feature. In these languages, interfaces are just ordinary classes. You can identify them by their names, which follow the pattern of an initial "I" followed by the name of some oth

docs.aws.amazon.com

 

앞서 말했듯이 CDK는 타입스크립트로 짜여 있으므로 어떤 언어를 사용하든 NodeJs가 필요하다.

 

 

 

반응형

댓글