AWS 설정
-
IAM 권한 만들기
S3 Access Policy
ECR Access Policy
CodeDeploy Auto Scaling Policy
-
IAM Role 만들기
Auto Scaling Role
CodeDeploy Auto Scaling Role
-
EC2 생성
- ec2 내에 codedeploy-agent 설치
- 서버 세팅
- 이미지 만들기(작업 → 이미지 및 템플릿 → 이미지 생성)
-
시작템플릿 생성
- ec2 → 시작 템플릿 → 시작 템플릿 생성
- 내 AMI중 방금 생성한 이미지 선택
- 가용영역과 요금에 맞는 인스턴스 유형 선택 (현재 t3.micro)
- 네트워크 설정은 기존 보안그룹 선택(현재 ec2 보안그룹 →80,8080,22,443)
- 고급 세부정보에 IAM 인스턴스 프로파일을 선택(방금 만든 Auto Scaling Role)
-
대상그룹 선택
- 대상유형은 인스턴스로 진행
- HTTP 프로토콜에 8080 포트 입력
- 현재 사용되는 인스턴스가 있는 vpc 선택
- 상태검사***
- 프로토콜 → HTTP
- 상태 검사 경로 → /actuator/health
- 성공코드 → 200
- 고급 상태 검사 설정
- 간격과 정상 임계 값을 크게 잡으면 Blue Green 배포시 시간을 많이 소모
-
로드 벨런서 생성
- 외부로 노출되기 위해 인터넷 경계 선택
- 네트워크 매핑시 사용할 영역 모두 선택(2a,2b,2c,2d )
- 리스너 및 라우팅
- http → 80 → 그룹선택
- 리스너 추가
- https → 443 → 그룹선택
- 보안 정책 선택
-
Auto Scaling 그룹 생성
- 시작 템플릿 설정
- VPC 설정(2a,2b,2c,2d )
- 기존 로드 벨런서에 연결 → 대상그룹 선택
- Auto Scaling Group 정책 선택 → 원하는 용량, 최소용량,최대 용량(1,1,3)
-
CodeDeploy 생성
-
배포그룹 생성
- 역활 → CodeDeploy Auto Scaling Role
- 배포유형 → blue/green
- 환경 구성 → Amazon EC2 Atuo Scalling 그룹 자동 복사 → 생성한 그룹 선택
- 배포그룹의 원본 인스턴스 종료 (현재 5분)
- 배포구성 → CodeDeployDefault.AllAtOnce
- 로드 벨런서 → 생성된 대상그룹 선택
-
ECR 생성
CICD 설정
-
Dockerfile 작성
Dockerfile 작성
-
appspec.yml 생성
appspec.yml 생성
-
Github Actions 파일 작성
Github Actions 파일 작성
문제
배포 중 AllowTraffic단계에서 무한 로딩후 실패
