- CI/CD 파이프라인: CodePipeline, CodeBuild, CodeDeploy 또는 Jenkins를 통한 배포 자동화 설정
- CloudFormation/Terraform: 인프라를 코드로 배포하는 템플릿 설명
- 배포 과정: 배포 시나리오 및 단계별 설명
1. CI/CD 파이프라인 (CodePipeline, CodeBuild, CodeDeploy)
(1) CI/CD 툴 선택
- AWS CodePipeline : CI/CD 파이프라인을 관리하는 도구로, 소스 코드가 커밋되면 자동으로 빌드, 테스트, 배포까지 진행
- AWS CodeBuild : 애플리케이션을 빌드하고, 테스트를 자동으로 실행
- AWS CodeDeploy : EC2 또는 Lambda로 애플리케이션을 자동 배포
- Jenkins : 자체 CI/CD 서버를 운영하려는 경우 Jenkins를 사용하여 파이프라인 구축
(2) CI/CD 파이프라인 구성
- 소스 코드 저장소
- GitHub, Bitbucket 또는 AWS CodeCommit과 연동하여 소스 코드 관리
- CodePipeline 흐름
- 단계 1 : 소스 단계
- 개발자가 코드 커밋 → 소스 저장소에서 변경 사항 감지 후 파이프라인 트리거
- 단계 2 : 빌드 단계 (CodeBuild)
- CodeBuild가 소스 코드를 빌드하고, 테스트 실행 (빌드 도구로는 Maven, Gradle, npm 등 선택 가능)
- 빌드가 성공하면 아티팩트를 S3에 저장
- 단계 3 : 배포 단계 (CodeDeploy)
- CodeDeploy를 통해 빌드된 애플리케이션을 EC2 인스턴스 또는 Lambda 함수로 배포
- Blue/Green 또는 Rolling 업데이트 방식 사용
- 단계 4 : 배포 완료 후 테스트 단계
- 배포 후 테스트 실행 (예: Selenium 테스트, AWS Lambda 기반 자동화 테스트)
- 단계 1 : 소스 단계
(3) 배포 전략
- Blue/Green Deployment
- 새로운 애플리케이션 버전을 배포할 때 Blue(현재 버전)와 Green(새로운 버전)을 두 개의 환경으로 구분하여, 새로운 버전을 먼저 테스트한 후 최종적으로 전환
- CodeDeploy에서 쉽게 설정 가능
- Rolling Deployment
- 인스턴스 그룹의 일부를 동시에 업데이트하여 점진적으로 새로운 버전을 배포
- ELB와 연동하여 트래픽을 분산시켜 무중단 배포 가능
2. 인프라 자동화 (Infrastructure as Code)
(1) CloudFormation
- AWS CloudFormation을 사용하여 모든 인프라를 코드로 정의하고 배포
- 예시: VPC, 서브넷, EC2, RDS, S3 등의 리소스를 템플릿으로 관리
(2) Terraform
- 멀티 클라우드 환경을 고려하거나 인프라 설정을 좀 더 유연하게 관리하기 위해 Terraform을 사용할 수 있음
- 모듈화 : Terraform 모듈을 사용하여 VPC, EC2, RDS 등 각각의 구성 요소를 재사용 가능하게 설계
3. 배포 과정 (Deployment Workflow)
(1) 배포 시나리오
- 개발자가 코드 커밋
- GitHub 또는 CodeCommit에 소스 코드 푸시
- CodePipeline에서 변경 사항을 감지하고 파이프라인 실행
- 빌드 및 테스트
- CodeBuild가 빌드 및 테스트 진행. 테스트 성공 시 아티팩트 생성 후 S3에 업로드
- 자동 배포
- CodeDeploy가 배포를 자동화하여 Blue/Green 방식 또는 Rolling 방식으로 애플리케이션을 EC2 인스턴스에 배포
- 모니터링
- 배포가 완료되면 CloudWatch 및 CloudTrail을 통해 로그와 메트릭을 확인하여 애플리케이션 상태를 모니터링
- 실패 시 롤백
(2) 배포 단계별 설명
- 1단계 : 초기 설정
- CI/CD 툴 (CodePipeline, Jenkins) 설정
- 배포 대상 환경에 맞춰 CloudFormation/Terraform 스크립트를 준비
- 2단계 : 자동 빌드 및 테스트
- 개발자가 코드를 커밋하면 자동으로 빌드가 시작되고, 기본적인 유닛 테스트가 실행
- 테스트가 성공하면 빌드 결과물이 배포 준비 상태가 됨
- 3단계 : 프로덕션 배포
- CodeDeploy를 사용하여 새로운 애플리케이션 버전을 프로덕션 환경에 배포
- 배포 전후로 헬스 체크를 통해 무중단 배포 보장
- 4단계 : 모니터링 및 피드백
- CloudWatch 알람을 통해 배포 후 서비스 상태를 지속적으로 모니터링
- 문제가 발생할 경우 롤백 또는 긴급 대응 방안 실행
'AWS > PROJECT' 카테고리의 다른 글
| [ 네트워킹 및 로깅 ] (0) | 2024.10.23 |
|---|---|
| [ 요구사항 분석, 아키텍처 설계 ] (0) | 2024.10.23 |
| [ 개요 ] (0) | 2024.10.23 |