코드형 인프라(IaC)
코드형 인프라(IaC)를 사용하면 서버리스 애플리케이션을 포함한 AWS 리소스의 배포 및 관리를 자동화할 수 있습니다. IaC를 사용하면 코드를 사용하여 인프라를 정의할 수 있으므로 배포를 버전 관리, 공유 및 복제하기가 더 쉽습니다. 이 접근 방식은 다음과 같은 이점을 제공합니다.
-
개발 주기 단축
-
구성 관리 간소화
-
배포의 안정성 및 일관성 향상
AWS 서버리스 애플리케이션을 위한 IaC 도구
AWS은(는) 클라우드 리소스를 빌드, 배포 및 관리하는 데 도움이 되는 여러 IaC 도구를 제공합니다. 이 섹션에서는 AWS SAM이(가) 이 생태계 내에서 어떻게 적용되며 다른 AWS IaC 도구와 어떻게 작동하는지 설명합니다.
- AWS CloudFormation
-
CloudFormation
을(를) 사용하면 YAML 또는 JSON 템플릿을 사용하여 전체 AWS 인프라를 모델링하고 프로비저닝할 수 있습니다. CloudFormation은(는) 리소스 생성, 업데이트 및 삭제를 자동으로 처리합니다. AWS SAM 애플리케이션을 배포할 때, CloudFormation은(는) 변환된 템플릿을 처리하여 리소스를 생성하고 관리합니다. - AWS Serverless Application Model (AWS SAM)
-
AWS SAM은(는) 서버리스 리소스 정의를 위한 간소화된 구문을 통해 서버리스 애플리케이션 구축을 돕습니다. AWS SAM 템플릿을 사용하여 간결한 YAML 구문으로 Lambda 함수, API, 데이터베이스 및 이벤트 소스를 프로비저닝할 수 있습니다. AWS SAM은(는) 배포 중에 이러한 템플릿을 CloudFormation 템플릿으로 변환합니다.
참고
AWS SAM이(가) 서버리스 애플리케이션에 특화되어 있지만, AWS SAM 템플릿에서 모든 CloudFormation 리소스 유형을 사용할 수 있습니다. 이를 통해 필요할 때 비서버리스 리소스를 유연하게 포함할 수 있습니다.
- AWS Cloud Development Kit(AWS CDK)
-
AWS CDK
을(를) 사용하면 TypeScript, Python, Java, C#/.Net, 또는 Go와 같은 친숙한 프로그래밍 언어를 사용하여 서버리스 인프라를 정의할 수 있습니다. 프로그래밍 구문(예: 루프 및 조건)을 사용하여 인프라를 정의할 수 있으며, AWS CDK은(는) 배포를 위해 CloudFormation 템플릿을 생성합니다. AWS SAM CLI을(를) 사용하여 AWS CDK로 생성된 애플리케이션을 로컬로 테스트하고 디버깅할 수 있습니다. 자세한 내용은 로컬에서 CDK 애플리케이션 테스트를 참조하세요.
서버리스 애플리케이션을 위한 IaC 도구 비교
서버리스 애플리케이션을 위한 IaC 도구를 선택할 때는 팀의 선호도, 프로젝트 요구 사항 및 기존 워크플로를 고려하세요. 다음 표는 서버리스 개발을 위한 AWS IaC 도구의 주요 특징을 비교합니다.
도구 |
프라이머리 사용 |
최적의 용도 |
AWS SAM와(과) 함께 작동 |
선택 시기 |
|---|---|---|---|---|
CloudFormation |
복잡한 AWS 인프라 관리 |
AWS 리소스에 대한 상세 제어가 필요한 애플리케이션 |
AWS SAM 배포 중 템플릿이 CloudFormation 템플릿으로 변환됨 |
비서버리스 리소스에 대한 세밀한 제어의 경우 |
AWS SAM |
서버리스 애플리케이션 개발 |
Lambda를 사용하여 서버리스 애플리케이션을 구축하는 팀 |
네이티브 기능 |
Lambda 함수, API Gateway API 및 기타 서버리스 리소스로 구성된 서버리스 아키텍처에 주로 초점을 맞출 때 |
AWS CDK |
프로그래밍 언어를 사용한 인프라 정의 |
입력한 언어와 코드 우선 접근 방식을 선호하는 팀 |
AWS SAM 템플릿 생성 및 AWS SAM CLI 테스트에 사용 |
프로그래밍 방식의 인프라 정의 또는 복잡한 리소스 구성 로직이 필요할 때 |
참고
이 가이드는 AWS 네이티브 IaC 도구에 중점을 두지만, Terraform은 서버리스 애플리케이션을 정의하는 데 사용할 수 있는 또 다른 인기 있는 IaC 솔루션입니다. AWS SAM CLI은(는) Terraform에 정의된 Lambda 함수의 로컬 테스트를 지원합니다. 자세한 내용은 AWS SAM CLI Terraform 지원 섹션을 참조하세요.
자세히 알아보기
-
AWS의 DevOps 관행에 대해 자세히 알아보려면 AWS에 대한 DevOps 소개를 참조하세요.
-
다양한 IaC 도구와 함께 Lambda를 사용하는 방법에 대한 자세한 내용은 코드형 인프라(IaC)와 함께 Lambda 사용을 참조하세요.