Code Deploy Agent 용 사용자 추가
EC2 가 Code Deploy 이벤트를 수신할 수 있도록 Agent를 설치해야 한다.
먼저 EC2에서 AWS CLI를 사용할 수 있도록 IAM 사용자를 하나 추가한다.
- IAM 정책이 적용된 그룹 생성
- 해당 그룹에 사용자 추가
CodeDeploy를 위한 EC2 Role 만들기
- AmazonS3FullAccess
- AWSCodeDeployFullAccess
- AWSCodeDeployRole
- CloudWatchLogsFullAccess
Code Deploy용 Role 생성
IAM에서 역할 만들기를 선택한다.
AmazonS3FullAccess : AWS Management 콘솔을 통해 모든 버킷에 대한 전체 액세스를 제공한다.
AWSCodeDeployFullAccess: CodeDeploy에 대한 전체 액세스 권한을 부여한다. AWSCodeDeployFullAccess는 Amazon EC2 및 Amazon S3와 같이 애플리케이션을 배포하는 데 필요한 다른 서비스의 작업에 대한 권한을 CodeDeploy와 관련된 작업에만 제공하지 않는다.
AWSCodeDeployRole
1. 인스턴스의 태그를 읽거나 Amazon EC2 Auto Scaling 그룹 이름으로 Amazon EC2 인스턴스 식별
2. Amazon EC2 Auto Scaling 그룹, 수명 주기 후크, 조정 정책 및 웜 풀 기능 읽기, 생성, 업데이트 및 삭제
3. Amazon SNS 주제에 정보 게시
4. Amazon CloudWatch 경보에 대한 정보 검색
5. Elastic Load Balancing 서비스의 리소스 읽기 및 업데이트
AmazonEC2ContainerRegistryPowerUser : IAM 사용자가 리포지토리에 대한 읽기 및 쓰기를 허용하는 관리 권한을 부여하지만, 리포지토리를 삭제하거나 리포지토리에 적용된 정책 설명을 변경할 수는 없다.
AmazonEC2ContainerServiceforEC2Role : Amazon ECS 컨테이너 인스턴스가 사용자를 대신하여 AWS를 호출할 수 있도록 하는 관리 권한을 부여한다.
EC2 인스턴스 생성하기
ec2 만드는 것은 생략하겠다.
해당 인스턴스에서
우클릭 -> 보안 -> IAM 역할 수정
을 누르고 방금 만든 IAM역할을 추가해준다.
AWS Access key
EC2 에서 aws Access key ID, aws Secret access key 의 정보가 필요하다.
사용자를 만들 때 생성되는 아래 내용에서 csv 를 다운받고 잘 보관해둔다.
EC2 에 Code Deploy Agent 설치하기
aws-cli를 먼저 설치한다.
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
나의 경우 위의 명령어로 설치 되지 않아서 파일을 다운받아 설치를 진행했다.
sudo aws configure
설치 후 위의 명령어를 사용해 아래와 같은 화면이 나오면
사용자 생성시 저장해 두었던 csv파일 내에서 Access key ID, Secret access key 의 정보를 가져와서
사용하고자 하는 ec2 안에 다음 내용을 적어준다.
- Access Key
- 좀전에 생성한 사용자의 엑세스키 (.csv파일에 있음)를 등록합니다.
- Secret Access Key
- 좀전에 생성한 사용자의 시크릿키 (.csv파일에 있음)를 등록합니다.
- region name
- ap-northeast-2
- 서울 리전을 얘기합니다.
- output format
- json
AWS CodeDeploy Agent 재시작
EC2 인스턴스가 부팅되면 자동으로 AWS CodeDeploy Agent가 실행될 수 있도록 재시작 쉘파일을 생성한다.
sudo vim /etc/init.d/codedeploy-startup.sh
아래 내용으로 스크립트를 작성해준다.
#!/bin/bash
echo 'Starting codedeploy-agent'
sudo service codedeploy-agent restart
스크립트 작성 후 실행권한을 추가해준다.
sudo chmod +x /etc/init.d/codedeploy-startup.sh