EC2에 어플리케이션을 배포하는 CodeDeploy를 만들어보았습니당당.
EC2에 CodeDeploy로 배포를 하려면 필요한 전제 조건이 있습니당.
바로 AWS CodeDeploy Agent 설치가 필수적이라는 거지용~
AWS CodeDeploy Agent 설치
1. ssm-agent 버전 확인
AWS System Manager로 CodeDeploy를 설치를 합니다
이때 ssm-agent 는 2.3.274.0 이상이여야 합니다.
다행이도 제 EC2 ami으 2.3.274.0 버전 이상이더라고용? 호호
EC2 SSH 접속 후 아래 명령어로 버전 확이이 가능합니당
yum info amazon-ssm-agent
2. System Manager를 사용하여 AWS CodeDeployAgent 설치
- System Manager - Distributor -AWS CodeDeployAgent - 한번만 설치
- 대상에 설치할 EC2 선택 - RUN
Trouble Shooting☄️
해당 EC2 인스턴스에 권한 문제로 AWS CodeDeploy Agent 설치가 되지 않는 문제가 발생했습니당
설치하려는 인스턴스 iam role 에 AmazonSSMManagedInstanceCore policy를 부여해주어야합니다!
권한을 주어도 바로 적용되지않아서 좀 기다려야하는 것 같아요.
매 정각마다 업데이트 되는 것 같더라구용..
3. S3 생성
4. EC2 인스턴스 역할 편집
- 배포가 될 인스턴스의 역할에 S3FullAccess, AmazonEC2RoleforAWSCodeDeploy 권한 추가
- 권한 추가 후 CodeDeploy Agent restart 가 필요
sudo service codedeploy-agent restart
5. CodeCommit에 최상단 루트에 appspec.yml 파일 추가
- codecommit root 경로에 appspec.yml을 업로드하여 파일 배포 경로 등을 설정
version: 0.0
os: linux
files:
- source: /
destination: /home/ec2-user/ad-ts-job/python/neo-an-job-analytics
file_exists_behavior: OVERWRITE
6. CodeDeploy구성
- 애플리케이션 생성
- 이름, 컴퓨팅플랫폼(EC2 온프레미스) 입력
- 배포그룹 생성
- 서비스 역할 : AWSCodeDeployRole 이 있는 역할 선택
- 배포 유형 : 현재 위치 (블루/그린 유형 고민)
- 환경구성 :
- EC2 인스턴스
- 키 Name, 값 Instance 이름 (해당 인스턴스의 태그 값 확인)
- 배포설정 : CodeDeployDefaut.AllAtOnce
7. CodePipeline 생성 (배포 자동화)
- Source
- codecommit, branch 선택
이미지가 좀 킹받지만 모자이크로 가려지지 않네요...
*build 는 빌드가 필요없을 경우 빌드 단계 건너뛰기
2. deploy
- codedeploy, application, application group 선택
CodeDeploy에서 생성한 배포그룹을 선택해줍니당
그러묜 끝~
나름 간단하지요?
'Devops Skill Up > AWS' 카테고리의 다른 글
[AWS] ECR 이관 방법 (ECR명 변경) (1) | 2024.04.16 |
---|---|
[AWS] AWS Chatbot을 사용하여 Slack 메시지 전송하기 (1) | 2024.04.15 |
[AWS] Private Subnet 에 EC2 구성하기 (NLB 사용) (0) | 2024.04.12 |
[AWS] Step Function (0) | 2024.04.09 |
[AWS] Private Subnet Instance ssh 접속을 위한 Bastion 장비 생성 (1) | 2024.04.08 |