AWS Proton (서버리스 CICD)

grovince·2024년 9월 17일

참고 사이트
1. https://aws.amazon.com/ko/blogs/tech/scaling-iac-and-ci-cd-pipelines-with-terraform-github-actions-and-aws-proton/
2. https://docs.aws.amazon.com/ko_kr/proton/latest/userguide/Welcome.html

내가 지금 개인적으로 진행하고 있는 프로젝트에 CICD 파이프라인을 구축해야 하는데 AWS Technic Blog를 보다가 CICD 관련된게 있길래 한번 들어가서 봤다 (1번 참고 사이트)

내가 구축해야 하는 CICD 파이프라인에 대해서 고민이 굉장히 많았다

처음에 프로젝트의 CICD 파이프라인을 구상할 때 생각 없이 서버리스로 구축을 해보고 싶다! 라는 생각이 들어서 현재 가장 많이 사용되고 있는 CICD 툴인 Jenkins를 같이 사용을 하려고 했다
AWS Fargate를 사용해서 Jenkins를 구축하려고 했는데 서버리스가 서버 관리 부담이 덜 되고 운영 비용이 최적화된다는 이점이 있을 것 같긴 하지만 서버리스 + 젠킨스 조합은 현업에서 많이 쓰이질 않을 것 같다는 생각이 들었다 재미있는 도전이 될 것 같아서 해보고 싶었는데 ㅎㅎ!

그래서 서버리스 CICD, 전통 CICD 이렇게 둘 중 고민하다가 전통 CICD 부터 맛 봐야하지 않겠나 싶어서 그냥 쿠버네티스로 젠킨스와 아르고 CD를 구축해서 CICD를 만들어 보기로 하였다

언젠가는 서버리스 CICD를 만들어 보고 싶다는 생각이 들었는데 마침 이 글을 발견해서 신기했다 호호

이 블로그를 통해서 AWS Proton 서비스를 처음 접하게 되었다


AWS Proton

  • AWS Proton을 통해서 관리자는 서버리스 및 컨테이너 기반 애플리케이션을 위한 인프라 및 배포 도구를 정의하는 버전이 지정된 서비스 템플릿을 생성할 수 있고, 애플리케이션 개발자는 관리자가 생성한 사용 가능한 서비스 템플릿 중에서 선택하여 애플리케이션 또는 서비스 배포를 자동화할 수 있다

즉, AWS Proton은 컨테이너 및 서버리스 애플리케이션을 위한 완전관리형 배포 서비스이다

AWS Technic Blog의 아키텍처를 보자면


  1. 플랫폼 팀이 Proton 템플릿(Terraform 기반)을 생성한다
  • 해당 템플릿은 웹 애플리케이션 인프라(ALB, VPC, Subnet 등), CI/CD 파이프라인 인프라(ECR repository, AWS CodePipeline 등)의 설정이다
  1. Environment, Service가 템플릿 기반으로 환경이 생성된다

  2. Proton 템플릿으로 CICD와 개발 환경을 쉽게 생성할 수 있고, 개발자는 GitHub를 사용해 변경사항을 push할 수 있고 CICD를 통해 Git Action로 이미지 빌드 후 변경사항을 애플리케이션에 적용할 수 있다

대충 이런 맥락으로 이해하면 될 것 같다

이 아키텍처와 글을 통해 알 수 있는건,

  1. AWS Proton을 사용하면 Jenkins, Argo CD 등을 직접 구축할 필요가 없어서 관리의 부담이 줄어든다.
  2. 가장 큰 이점은 플랫폼 팀에서 미리 만든 템플릿(ex, 인프라 구성 등의 애플리케이션 수정 사항)을 개발 팀이 자유롭게 애플리케이션에 배포하여 애플리케이션 환경을 최신 상태로 유지할 수 있는 것이지 않을까 싶다

이런 점들을 보면 서버리스 CICD도 매력적인 것 같다

현재 프로젝트에 구성된 젠킨스, 아르고 CD를 사용해 먼저 구축해보고 나중에 AWS Proton 을 사용해서 서버리스 CICD도 구축해봐야겠다

profile
고인물이 되는 그날까지

0개의 댓글