Infrastructure as Code(IaC)는 인프라를 일관성 있고 반복 가능하게 관리해 오늘날 DevOps 환경에 널리 도입되고 있습니다. IaC를 사용해 인프라를 코드로 정의하면 변경 사항을 추적하고 롤백할 수 있고요. 환경을 쉽게 복제하며, 구성 오류도 줄일 수 있습니다. 이로써 인프라를 프로비저닝하고 관리하는 방식을 더 효율화할 수 있고요. 구성 드리프트, 운영자 실수, 정보 손실 등 문제도 해결할 수 있죠.
시중에는 Terraform, Pulumi, Nitric 등 다양한 IaC 도구가 있는데요. AWS의 CloudFormation(이하 CFN)도 유용한 IaC 도구입니다. CFN을 사용하면, 별도 상태 저장소를 설정하거나 유지할 필요가 없고요. AWS에서 CFN을 직접 개발했기에 AWS 서비스와 원활하게 통합할 수 있습니다. 또 DependsOn
속성을 사용해 명시적으로 의존성을 지정할 수 있고요.
업계를 둘러보면 AWS 클라우드에서 인프라를 관리하는 조직이 많은데요. 이러한 조직에서 CFN으로 IaC를 구축하면 위 장점을 누릴 수 있습니다. 이 글에서는 GitLab과 AWS의 CFN을 연동해 Lambda를 배포하는 방법을 알아보겠습니다.
AWS의 GitLab 접근 권한 설정
GitLab과 AWS의 CFN 을 연동하려면, AWS에서 GitLab에 접근하도록 CodeConnections를 먼저 설정해야 합니다. 순서는 다음과 같습니다.
-
개발자 도구 > 설정 > 연결에서 연결 생성 버튼을 클릭합니다.
AWS 개발자 도구 설정 화면
-
연결 생성 > 공급자 선택에서 GitLab을 선택하고, GitLab 연결 생성에서 연결 이름을 입력합니다. 그다음, GitLab에 연결 버튼을 클릭하면 GitLab으로 리다이렉트됩니다.
AWS 개발자 도구 연결 생성 화면
-
아래 화면이 뜨면 Authorize 버튼을 클릭합니다.
AWS Connector for GitLab 권한 부여 관련 창
-
GitLab에 연결 > GitLab 연결 설정에서 연결 이름을 입력하고, 연결 버튼을 클릭합니다.
AWS 개발자 도구에서 GitLab 연결을 설정하는 화면
-
연결 설정 > 상태에 사용 가능이라고 뜨면, AWS에서 GitLab에 접근할 수 있습니다.
AWS에서 GitLab에 접근하도록 GitLab 연결 설정을 마무리한 결과
CFN 스택과 연동할 GitLab 프로젝트 생성
이어서 CFN 스택과 연동할 GitLab 프로젝트와 파일을 생성합니다. 순서는 다음과 같습니다.
-
GitLab 프로젝트를 생성합니다.
GitLab 프로젝트 생성 화면