RSS DEV 커뮤니티

AWS CodeBuild, CodeDeploy 및 CodePipeline을 이용한 Docker화된 앱의 CI/CD (3부/3부)

Follow
이 글은 시리즈의 세 번째 글로, AWS에서 Node.js 애플리케이션을 위한 CI/CD 파이프라인 설정을 상세히 설명합니다. 이전 부분에서 다룬 Dockerization, EC2 배포, 자동 스케일링, 로드 밸런싱을 기반으로 합니다. 이 파이프라인은 GitHub의 'main' 브랜치로의 모든 푸시가 자동화된 빌드 및 배포 프로세스를 트리거하도록 보장합니다. 먼저, Docker 이미지를 빌드하고 ECR로 푸시하는 방법을 정의하는 buildspec.yml을 사용하여 코드베이스를 준비합니다. 다음으로, EC2 인스턴스에서 이미지 업데이트, 환경 변수 새로고침, 컨테이너 재시작을 관리하기 위해 AWS CodeDeploy를 위한 배포 스크립트(before_install.sh, application_stop.sh, application_start.sh)를 추가합니다. appspec.yml 파일은 CodeDeploy가 이러한 스크립트를 사용하도록 구성합니다. 그런 다음, buildspec.yml을 실행하여 Docker 이미지를 빌드하고 ECR로 푸시하는 IAM 역할과 프로젝트로 AWS CodeBuild를 구성합니다. EC2 Auto Scaling Group으로의 배포를 관리하는 전용 IAM 역할과 애플리케이션으로 AWS CodeDeploy를 설정합니다. 마지막으로, GitHub, CodeBuild, CodeDeploy를 연결하여 전체 워크플로우를 조정하는 AWS CodePipeline을 생성합니다. 'main' 브랜치로의 푸시에 트리거되도록 구성되어 빌드, 이미지 푸시, 그리고 모든 실행 중인 인스턴스로의 후속 배포를 시작합니다. 이 파이프라인은 코드 변경으로 수동 및 자동으로 테스트할 수 있습니다. 이를 통해 간단한 Node.js 앱을 AWS에서 프로덕션 등급의 자동 스케일링되고 지속적으로 배포되는 애플리케이션으로 전환하는 것이 완료됩니다.
favicon
dev.to
CI/CD for your Dockerized App with AWS CodeBuild, CodeDeploy and CodePipeline (Part 3/3)
기사 이미지: AWS CodeBuild, CodeDeploy 및 CodePipeline을 이용한 Docker화된 앱의 CI/CD (3부/3부)