1. CI/CD란
- CI : Continuous Integration
- CD : Continuous Deployment
지속적으로 컴파일해서 지속적으로 배포
2. CI
- Source code를 통합하여 Build까지
3. CD
- Build된 프로젝트를 Test하고, Production으로 배포
4. AWS CI/CD 서비스
- code commit
- 프라이빗 버전 관리 서비스 (like Git)
- code build : 소스 코드 컴파일, 단위 테스트, (배포) artifact 생성
- code build를 사용하면 빌드용 서버를 둘 필요가 없음
- maven, gradle 등 PL 및 빌드 도구에 맞게 패키징된 빌드 환경 제공
- code deploy : EC2, on-premise, lambda 등으로 어플리케이션 배포를 자동화해주는 도구
- s3, github 등에 저장된 컨텐츠를 배포할 수 있음
- code pipeline : 위 3가지를 하나로 통합한 서비스
5. 배포 예제
S3에 jar(war) 파일을 저장하고, EC2에서 S3로 접근할 권한을 얻어서 파일 download,
Code Deploy가 S3의 source를 EC2에 배포
로컬(소스코드) -> S3 -> Code Deploy -> EC2
(1) IAM에서 역할 만들기
- EC2 : S3로 접근할 권한 획득
- Code Deploy : EC2로 접근할 권한 획득
(2) EC2 생성
- IAM 역할 : 1)에서 생성한 역할 할당
- (태그 할당)
(3) IAM - 사용자 추가
- 일반적으로 AWS 서비스에 외부 서비스는 접근 불가
- AWS 외부 서비스가 AWS 서비스에 접근할 권한 생성
- (1)에서 만든 2가지 정책과 연결한다
(4) EC2에 접속하여 Code Deploy 설치
sudo yum update
sudo yum ruby
sudo yum install wget
wget https://aws-codedeploy-ap-
chmod +x install
sudo ./install auto
sudo service codedeploy-agent status -- pid 뜨면 제대로 설치/실행 된 것
5) S3 bucket 생성
6)