개요
AWS CodePipeline은 빠르고 안정적으로 애플리케이션과 인프라의 업데이트를 위한 릴리스 파이프라인을 자동화할 수 있도록 서비스 형태로 제공되는 완전 관리형으로 지속적인 전달을 제공하는 서비스 입니다.
AWS CodePipeline은 코드에 변경이 있을 때마다 사용자가 사전에 정의한 릴리스 모델을 기반으로 애플리케이션의 릴리스 프로세스의 빌드, 테스트, 배포 단계에 걸친 프로세스에 대해 자동화를 수행합니다.
AWS CodePipeline의 주요 기능과 기대효과
1. 지속적인 배포를 위한 워크플로우 모델링 입니다. AWS CodePipeline은 소스 배포를 위한 프로세스 워크플로우를 정의하고, 새로운 코드나 기능의 변셩이 배포 프로세스에서 진행되는 방법을 모델링할 수 있습니다.
2. AWS와의 통합입니다. AWS CodeCommit, Amazon S3를 파이프라인에서 사용할 소스로 지정하여 소스코드를 가져올 수 있으며, AWS CodeBuild와 통합하여 단위 테스트를 수행할 수 있습니다. 또한 AWS CodeDeploy, AWS Elastic Beanstalk, ECS 또는 AWS Fargate를 사용하여 변경 사항을 배포할 수 있습니다.
3. 타사 개발자 도구 및 사용자 지점 시스템과의 통합입니다. AWS CodePipeline을 사용하면 몇번의 클릭만으로 GitHub와 Jenkins같은 타사 개발자 도구를 배포 프로세스에서 원하는 단계에 통합할 수 있습니다.
4. 선언형 템플릿과 엑세스 제어입니다. AWS CodePipeline은 AWS IAM을 사용하여 누가 릴리스 워크플로를 변경 및 제어할 수 있는지 관리합니다. IAM사용자, IAM역할, SAML통합데렉터리를 통해 사용자에게 엑세스 권한을 부여하여, 배포 프로세스에 대한 제어를 수행할 수 있습니다.
AWS CodePipeline의 동작방식
1. Request 단계 : 고객으로부터 기존 프로그램에 대한 변경 요청이나 수정사항에 대한 요구사항을 수집하고, 이러한 아이디어 또는 버그 사항에 대한 처리 요청을 받습니다.
2. Developement 단계 : 고객의 요청사항에 대해 개발팀에서 버그에 대한 수정과 새로운 아이디어를 반영하여 프로그램에 대한 수정 변경 작업을 진행하게 됩니다.
3. Source 단계 : 개발자는 프로그램의 변경 사항에 대해 Git, AWS CodeCommit, S3등 소스 변경을 반영하기 위한 Commit을 수행하거나 업데이트를 수행합니다.
4. Build 단계 : 소스에 대한 Commit과 변경이 발생되면 AWS CodePipeline이 자동으로 변경 사항을 감지하고 소스로부터 아티펙트를 읽어와 AWS CodeBuild를 통해 빌드를 수행하고 테스트 환경에 구성되어 있는 경우 테스트를 수행하게 됩니다.
5. Staging 단계 : 스테이징 환경에서 테스트를 수행하기 위해 빌드된 코드를 스테이징 환경에 배포한 후 부하 테스트나 통합 테스트와 같은 추가 테스트를 수행합니다.
6. Production 단계 : 모든 테스틑가 성공적으로 완료된 후 파이프라인에 추가된 수동 승인 작업을 통해 승인을 받고 나면 테스트가 완료도니 코드를 운영환경에 배포합니다.
'IaaS > 퍼블릭클라우드' 카테고리의 다른 글
AWS Professional DevOps 시험준비 (0) | 2021.06.14 |
---|---|
(AWS) CodePipeline을 활용한 EC2 소스 배포 자동화(with Cloud9, CodeCommit, CodeDeploy) (0) | 2021.06.13 |
(AWS) CI/CD를 위한 AutoScaling, Cloud9과 CodeDeploy로 구현 (0) | 2021.06.12 |
(AWS) AWS CodeDeploy 란? (0) | 2021.06.08 |
(AWS) AWS CodeBuild 란? 그리고 실습 (0) | 2021.06.07 |