August 26, 2022
💡 AWS CDK & SDK 차이점
TL;DR
CDK : 인프라 생성 및 관리하는데 사용
SDK : 애플리케이션을 개발하는데 사용
ex) CDK를 사용하여 DynamoDB 테이블을 생성하고 SDK를 이용해 해당 테이블의 데이터를 읽고 쓴다.
CDK는 Cloudformation을 python, js와 같은 프로그래밍 언어로 작성한다. 또한 코드와 Cloudformation 렌더링 사이에 중간 계층에 위치하여 원하는 작업을 이해하고 변환이 가능하다. 따라서, CDK는 배포 및 상태관리가 가능하다.
SDK는 AWS API를 사용하기 위한 CLI를 프로그래밍 언어로 추상화한 라이브러리에 가깝다. AWS API는 Cloudformation을 지원하지 않고 배포 관리 및 상태관리를 지원하지 않기때문에 SDK도 마찬가지로 배포 및 상태관리는 불가능하다.
다만, SDK는 AWS 대부분의 서비스에 상호작용하기 위해 사용된다. 예를 들어 Python으로 작성된 애플리케이션에서 SQS 대기열의 메시지를 처리해야 하는 경우 Python SDK를 사용하여 SQS 메시지를 처리한다. CDK는 상태관리가 가능하기 때문에 인프라를 생성하거나 삭제하거나 관리하는데 사용하며 보통 AWS 인프라를 구축하는데 사용하는 Cloudformation을 프로그래밍 언어로 작성하는데 사용한다.
하지만 어떤 AWS 서비스를 사용하든 반드시 구성해야 하는 특정 보안 기능이 있으며 예를 들면 다음과 같은 보안 설정을 해줘야 한다.
거버넌스 및 법적 요구 사항
지연시간
서비스 가용성
비용
10ms 미만의 지연시간이 필요한 수요가 있는 애플리케이션에서 사용을 고려해볼 수 있다.
💡 Cloudfront 에서의 엣지 로케이션 사용
클라우드프론트는 엣지로케이션 및 엣지 캐시 서버로 구성된 PoP(Point of Presence) 위치의 글로벌 네트워크를 통해 컨텐츠를 전송하다. 이중 기본적으로 사용하는 리전 엣지 캐시는 엣지 로케이션에 유지할 필요 없는 컨텐츠가 있을 때 활용 된다.