3.3.2 CodeDeploy 설정 / IAM 설정

윤희빈·2026년 8월 27일

AWS CI/CD 구축

목록 보기
18/25

1. Code Deploy 역할(Role) 생성하기

Code Deploy가 다른 AWS Resource에 접근하려면 권한이 필요하다. 그 권한을 부여해주는 기능이 IAM의 역할(Role)이다.

  • [IAM] - [역할]
  • [역할 생성]
  • [사용 사례]에서 CodeDeploy선택 - [다음]
  • 이미 기본적인 권한은 AWSCodeDeployRole에 존재한다.
    [다음] 클릭
  • [역할 이름] 적당히 입력
  • [역할 생성]

2. CodeDeploy 생성하기

1. CodeDeploy 애플리케이션 생성

  • [CodeDeploy] - [배포] - [애플리케이션] - [애플리케이션 생성]
  • [애플리케이션 구성]에서 이름과 플랫폼을 선택한 후에 [애플리케이션 생성]

2. CodeDeploy 배포그룹 생성

  • [배포 그룹 생성]
  • [배포 그룹 이름]을 설정한다. 이때, 배포 그룹은 팀에 따라 개발, 보수 등등 임의로 정한다. 여기서는 배포라는 뜻에서 Production으로 정했다.
  • 서비스 역할에는 아까 만든 IAM의 code-deploy-role을 선택한다.
  • [환경 구성]에서 Amazone EC2 인스턴스 선택 -> ${인스턴스 명}(cicd-ex) 선택
  • [로드 벨런서]에서 [로드 벨런싱 활성화]를 체크 해제!!
    그 이후에 [배포 그룹 생성]

3. EC2 역할(Role) 생성하기

EC2가 빌드된 파일을 S3로부터 다운받아야 한다. 이 때, EC2가 S3에 접근하려면 권한(정책)이 필요하다. 그 권한을 부여해주는 기능이 IAM의 역할(Role)이다. 역할은 여러 정책을 가질 수 있다.

1. 정책 생성

2. 권한 지정하기

  • 토글에서 [시각적]이 아닌 [JSON]으로 전환
  • 직접 권한을 입력해준다.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
  • s3에 접근(Get)하고, 조회(List)하는 기능을 허용(Allow)하겠다는 의미
  • [다음] 클릭

3. 정책 세부 설정

[정책 이름] 작성

4. 역할 생성

  • [IAM] - [역할]
  • [역할 생성]
  • [사용 사례]에서 EC2선택 - [다음]
  • 방금 만든 정책 [code-deploy-ec2-policy] 선택 - [다음]
  • [역할 이름] 적당히 입력
  • [역할 생성]

5. EC2에 생성한 IAM 역할 연결하기

  • [EC2] 인스턴스에서 [작업] - [보안] - [IAM 역할 수정]

  • 방금 만든 역할인 [code-deploy-ec2-role] 선택

  • 참고) 혹시나 Code Deploy Agent를 먼저 설치한 뒤에 EC2에 IAM 역할을 부여했다면 EC2에서 아래 명령어로 codedeploy-agent를 재시작시켜주어야 한다.

    $ sudo systemctl restart codedeploy-agent

    참고


4. Code Deploy Agent 설치하기

EC2에 설치하는 프로그램으로, CodeDeploy에서 해당 ec2를 사용할 수 있도록 하는 프로그램.
공식문서

$ sudo apt update && \
sudo apt install -y ruby-full wget && \
cd /home/ubuntu && \
wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latestv2/install
chmod +x ./install
sudo ./install auto

  • [Code Deploy Agent가 정상적으로 실행되고 있는 지 확인]
$ systemctl status codedeploy-agent


5. Github Actions가 CodeDeploy, S3에 접근할 수 있게 IAM 발급

1.IAM 사용자 생성

  • [IAM] - [IAM 사용자] - [사용자 생성]
  • [사용자 이름] 작성 - [다음]

2. 직접 정책 연결 (AWSCodeDeployFullAccess, AmazonS3FullAccess)

  • [권한 옵션] - [직접 정책 연결]

  • AWSCodeDeployFullAccessAmazonS3FullAccess 선택 - [다음]

  • [사용자 생성]

3. 보안 자격 증명에 들어가서 액세스 키 만들기

  • [IAM] - [IAM 사용자] - [cicd-ex-github-actions]
  • [보안 자격 증명] 클릭
  • [엑세스 키 만들기]
  • [AWS 외부에서 실행되는 애플리케이션] 선택 - [다음]
  • [설명 태그 설정] 스킵해도 됨. - [엑세스 키 만들기]

4. 액세스 키와 비밀 액세스 키 잘 보관해두기

참고로 이 화면 이후에는 확인할 수 없다!!


6. Github Actions의 Secret Key에 저장해두기

Github Actions의 Secrets 값을 잘 저장해둔다.


7. 배포 전에 프로젝트 파일 저장할 S3 만들기

  • [S3] - [버킷 만들기]
  • [버킷 이름] 설정 - [버킷 만들기]


참고 CodeDeploy 로그 확인하는 방법

공식문서

profile
비니비니히비니의 정리블로그

0개의 댓글