코드형 인프라(IaC) - AWS Serverless Application Model

코드형 인프라(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 지원 섹션을 참조하세요.

자세히 알아보기