로컬 개발을 위한 인프라를 코드로 관리

로컬 개발을 위한 인프라를 코드로 관리 (Infrastructure as code for local development)

Lambda 애플리케이션을 구축할 때 인프라를 코드로 관리(IaC) 도구를 사용하면 로컬 개발과 배포를 간소화할 수 있어요. 이 페이지에서는 로컬 개발을 위한 IaC 접근 방식과 AWS 도구를 설명해요.

출처: AWS Lambda 개발자 안내서

본문

인프라를 코드로 관리(IaC)는 인프라를 선언적 코드로 정의하고 프로비저닝하는 관행이에요. Lambda 애플리케이션에 IaC를 사용하면 구성이 버전 관리되고, 재현 가능하며, 자동으로 배포될 수 있어요.

AWS IaC 도구 (AWS IaC tools)

AWS는 Lambda 애플리케이션용 IaC를 위한 여러 도구를 제공해요.

  • AWS CloudFormation – AWS 리소스를 선언적으로 프로비저닝하는 데 사용하는 기본 서비스예요.
  • AWS Serverless Application Model(AWS SAM) – 서버리스 애플리케이션을 위한 CloudFormation 확장으로, Lambda 함수 정의를 단순화해요.
  • AWS Cloud Development Kit(AWS CDK) – 익숙한 프로그래밍 언어로 클라우드 인프라를 코드로 정의할 수 있게 해줘요.

로컬 개발 (Local development)

Lambda 함수를 로컬에서 개발하려면 IaC 도구를 사용해 로컬에서 배포를 테스트할 수 있어요.

  • AWS SAM CLI – SAM 템플릿을 로컬에서 빌드, 테스트, 배포할 수 있게 해줘요.
  • AWS CDK – CDK 앱을 합성(synthesize)해 로컬에서 CloudFormation 템플릿을 생성하고 검증할 수 있어요.

IaC 사용 접근 방식 (Approach to using IaC)

로컬 개발을 위한 일반적인 접근 방식:

  1. IaC 템플릿이나 CDK 앱에서 Lambda 함수와 관련 리소스를 정의해요.
  2. AWS SAM CLI나 CDK를 사용해 정의를 로컬에서 빌드하고 검증해요.
  3. 함수를 로컬에서 테스트해요.
  4. 템플릿이나 앱을 AWS에 배포해요.

모범 사례 (Best practices)

  • 인프라 정의를 버전 관리에 보관해요.
  • 환경 간에 리소스를 재사용하기 위해 IaC 정의를 매개 변수화해요.
  • 배포를 자동화하기 위해 IaC를 지속적 통합/지속적 배포(CI/CD)와 통합해요.

더 알아보기 (Learn more)