Code Series

  • AWS에서 Developer Tools로 분류되어 있는 CodeCommit, CodeBuild, CodeDeploy, Codepipeline을 통칭하는 단어
  • CI/CD를 단계적으로 수행할 수 있도록 적용 가능

 

CodeCommit

  • repository를 담당하고 있는 서비스
  • AWS에서 제공하는 완전 관리형 개발자 도구로, 안전하고 확장 가능한 git 리포지토리 호스팅 서비스
  • 개발팀은 CodeCommit을 사용하여 소스 코드, 문서, 구성 파일 등의 버전 관리를 수행하고 협업 가능

 

CodeBuild

  • Build를 담당하는 서비스
  • Codecommit, S3, Github 등의 Repository로 부터 resource를 가져와서 buildspec(yml)으로 정의된 절차대로 build를 진행
  • build는 별도로 구성된 docker에서 실행되며 docker에 대한 구성은 어느 정도 커스텀이 가능
  • 이 docker가 실행될 VPC와 Subnet, Security group에 대해서도 지정이 가능
  • CodeBuild를 사용하면 소스 코드를 컴파일하고 테스트하며, 배포 가능한 애플리케이션 빌드를 자동화 가능

 

CodeDeploy

  • 애플리케이션의 배포를 자동화하기 위한 서비스
  • 소프트웨어 배포 프로세스를 자동화하여 빠르고 안정적인 애플리케이션 업데이트를 가능
  • Application과 Deployment groups으로 구성
  • Application은 배포하고자 하는 대상을 의미하고 다수의 Deployment group을 가질 수 있음.
  • Deployment group은 Deploy 대상이 되어 EC2/On-premises, AWS Lambda, AWS ECS로 총 3가지 유형이며 유형별로 필요한 IAM policy와 config 파일이 달라질 수 있음.

 

CodeDeploy 작동 방식

1. S3의 특정 revision 아카이브 파일을 EC2인스턴스로 가져온다.

2. 아카이브 파일의 압축을 푼다.

3. Deploy Agent는 압축을 푼 소스에서 AppSpec.yml에 명세된 지시사항을 처리한다.

    3-1. WAS를 정지 시킨다.

    3-2 소스의 내용을 WAS의 폴더로 복사

    3-3 WAS를 시작

 

+ Recent posts