서버리스 앱의 환경 설정

이번 섹션에서는 서버리스 앱의 환경 설정을 위한 최적의 방법을 살펴보겠습니다. 하지만 그 전에 관련된 몇 가지 개념을 간단히 짚고 넘어가겠습니다.

사용량 기반 과금 = 여러 개발 환경

서버리스 앱과 관련 서비스(Lambda, API Gateway, DynamoDB 등)는 모두 사용량 기반 과금 모델을 사용합니다. 그리고 더 많은 AWS 서비스가 이 모델로 전환될 가능성이 높습니다. 또한 서버리스가 사용하는 인프라를 코드로 관리하는 개념 덕분에 환경을 복제하기가 매우 쉽습니다. 따라서 여러 개발/스테이징 환경을 만드는 것은 매우 권장되는 사항입니다.

장기 실행 환경

서버리스 환경에서도 장기 실행 스테이지를 설정하는 방식은 변하지 않습니다. 여전히 일반적인 dev 스테이지와 prod 스테이지를 사용합니다. 그리고 그 사이에 staging, qa, preprod 같은 중간 스테이지도 있습니다. 팀 규모가 클수록 중간 스테이지가 더 많아지는 경향이 있습니다.

임시 환경

개발 중에는 보통 기능 브랜치나 핫픽스 브랜치와 같은 여러 개발 Git 브랜치를 사용합니다. 전통적인 서버 환경에서는 많은 팀이 각 브랜치마다 환경을 설정하지 않습니다. 이는 새로운 환경을 설정하는 데 드는 인프라 비용과 수동 작업 때문입니다. 또한 브랜치가 병합 준비가 되면 보통 풀 리퀘스트를 생성합니다. 이상적으로는 임시로 병합된 코드 버전을 풀 리퀘스트 환경에 배포하고 싶을 것입니다. 과거에 Heroku를 사용해본 적이 있다면, 이는 그들의 Review Apps의 아이디어와 같습니다.

하지만 서버리스 환경에서는 새로운 환경을 만드는 것이 편리하고 저렴하기 때문에, 이러한 임시 단계를 만드는 것이 최선의 방법으로 간주됩니다. 여러분은 CI/CD 파이프라인을 설정하여 이러한 단계를 자동으로 올리고, 테스트한 후, 작업이 끝나면 제거하도록 하고 싶을 것입니다.

Seed는 브랜치 생성 시 기능 브랜치PR 생성 시 PR에 대한 단계를 자동으로 생성할 수 있습니다. 또한 브랜치가 삭제되거나 PR이 병합되면 단계와 관련된 모든 리소스를 자동으로 제거합니다.

다음으로, 환경을 설정해 보겠습니다!