본문 바로가기
CS 및 면접 질문

Code Deploy

by ho-bolt 2022. 9. 6.

작업 순서

  1. CodeDeploy 사용을 위한 EC2 IAM 인스턴스 프로파일 생성
  2. EC2 CdoeDeploy agent 설치
  3. CodeDeploy 애플리케이션 생성
  4. Github Action workflow를 위한 yml 파일 생성
  5. CodeDeploy Action를 위한 appspec.yml, script 파일 추가

1. CodeDeploy 사용을 위한 EC2 IAM 인스턴스 프로파일 생성 

 

가장먼저 AWS IAM에 들어와 역할 만들기 클릭 

EC2 클릭하고 S3, CodeDeploy에 모든 권한 넣어주고 네이밍을 만들어 역할을 만들어준다. 

배포 코드를 압축해 s3에 업로드하고, 해당 빌드 파일을 CodeDeploy를 통해 EC2로 배포할 것이라 두 권한을 부여해주는 것 

이제 만든 IAM Role를 우리의 인스턴스에 붙여줘야 한다. 인스턴스 목록에서 체크하고 작업, 보안 탭을 들어가면 IAM 역할을 수정하면 우리의 EC2는 S3, CodeDeploy에 대한 접근 권한을 부여받게 된다. 

2. EC2에 CodeDeploy agent 설치 

 

배포를 원하는 인스턴스에 CodeDeploy agent 를 설치해 해당 인스턴스를 배포에서 사용할 수 있도록 설정해주어야 한다. 

sudo service codedeploy-agent status 명령을 입력하여 에이전트가 실행 중인지 확인할 수 있습니다.

 

3. CodeDeploy 애플리케이션 생성 

자동 배포를 위한 메인 서비스인 CodeDeploy 애플리케이션을 만들어줘야 한다. 

 

CodeDeploy에서는 배포 EC2 인스턴스를 식별하기 위한 EC2 식별자와, CodeDeploy 권한이 있는 IAM 인스턴스 프로파일이 필요하다. 

이제 CodeDeploy 애플리케이션 설정을 해야한다. EC2를 사용하는 CodeDeploy를 하게 되므로 컴퓨팅 플랫폼을 EC2/온프레미스로 지정해준다. 컴퓨팅 플랫폼

 

배포를 위해선 배포 그룸을 만들어야 한다. 

배포 그룹에는 배포 대상 인스턴스를 포함하게 되며, 해당 그룹 내에서 우리의 배포 작업이 실행되게 된다. 

 

배포 그룹 이름 만들고 서비스 역할에 방금 만든 CodeDeploy 권한이 있는 IAM 인스턴스를 연결해준다. 

만약 배포간에 발생할 수 있는 DOWNTIME을 원하지 앟으면 BLUE/GREEN 설정을 하면 된다. 

 

환경 구성 탬에서 태깅했던 EC2 인스턴스를 추가해주고 

여러 인스턴스를 사용하지 않을 경우 배포 설정은 OneAtTime으로 한다. 

배포 설정에 관한 설명은 해당링크를 참고 

4. Github Action workflow를 위한 yml 파일 생성 

 

Github Action을 이용하여 respository main 브랜치에 merge 될 때마다 workflow가 트리거 되도록 설정한다. 

workflow는 .github/workflow를 만드셔서 추가해줘도 되고, New workflow를 클릭해서 추가해줄 수도 있습니다.

 

 

5. CodeDeploy Action을 위한 appspec.yml, script 파일 추가 

 

CodeDeploy가 어떤 시나리오로 동작할지 AppSpec 파일을 통해 결정되기 때문에, tar 파일에 우리는 appspec.yml을 넣어주어야 한다. 

루트 디렉토리에 appspec.yml을 만들어 다음과 같은 내용을 추가해준다. 

hooks를 자세히 봐야할 필요가 있다. 

AppSpec에서는 배포 수명 주기 이벤트 중에서 AWSLambda 훅을 한 번씩 실행하게 된다. 해당 링크 참조

 

참고 문헌 https://jhpa.tistory.com/10

 

야 너두 자동 배포 할 수 있어 with AWS CodeDeploy

안녕하세요 !! 오늘은 AWS CodeDeploy + Github Action + EC2 + S3 를 사용해 자동 배포를 구현한 경험을 공유하려고 합니다. 들어가기에 앞서, 저는 devOps 생초보이므로 중간에 어색하거나 쓸모 없는 로직이

jhpa.tistory.com

 

728x90

댓글