AWS CodePipeline 사용
이 자습서에서는, 실시간 샘플 앱을 배포하는 자동화된 소프트웨어 릴리스 파이프라인을 생성하는 방법을 알아봅니다. 코드 변경이 있을 때마다 코드를 구축, 테스트, 배포하는 서비스, AWS CodePipeline을 사용하여 파이프라인을 생성할 것입니다. 귀하의 GitHub 계정, Amazon Simple Storage Service (S3) 버킷, 또는 AWS CodeCommit 리포지토리를 샘플 앱의 코드에 대한 소스 위치로 사용할 것입니다. 또한 AWS Elastic Beanstalk를 샘플 앱에 대한 배포 대상으로 사용할 것입니다. 완료된 파이프라인은 샘플 앱이 포함된 소스 리포지토리에 대한 변경을 감지한 다음 자동으로 실시간 샘플 앱을 업데이트할 수 있습니다.
연속 배포의 경우, 수정 버전이 개발자의 명시적 승인 없이 자동으로 프로덕션 환경에 배포됩니다. 즉, 이를 통해 전체 소프트웨어 릴리스 프로세스가 자동화됩니다.
이 자습서에서 수행하는 모든 것은 프리 티어에 해당합니다.
AWS 리소스 관리
Console 로그인연속 배포 파이프라인은 샘플 코드를 배포할 가상 서버 또는 Amazon EC2 인스턴스를 포함한 대상 환경이 필요합니다. 파이프라인을 생성하기 전에 이 환경을 준비할 것입니다.
a. 이 자습서의 경우 EC2 인스터스를 설정하고 구성하는 프로세스를 간소화하기 위해, AWS Elastic Beanstalk를 사용하여 샘플 환경을 실행할 것입니다. Elastic Beanstalk을 사용하면 본인이 직접 가상 서버를 실행, 구성 또는 운영할 필요 없이 웹 애플리케이션을 쉽게 호스트할 수 있습니다. Elastic Beanstalk가 자동으로 인프라(예: 가상 서버, 로드 밸런서 등)를 프로비저닝 및 운영하고 애플리케이션 스택(예: OS, 언어 및 프레임워크, 웹 및 애플리케이션 서버 등)을 제공합니다.
이 단계에서는 샘플 앱 코드의 사본을 검색하고 코드를 호스트할 소스를 선택합니다. 파이프라인이 소스에서 코드를 가져온 다음 코드에 대한 작업을 수행합니다.
다음 세 옵션 중 하나를 소스로 사용할 수 있습니다: GitHub 리포지토리, Amazon S3 버킷 또는 AWS CodeCommit 리포지토리. 기본 설정을 선택하고 아래 단계를 따릅니다.
이 단계에서는, 소스 및 배포라는 2가지 작업으로 간단한 파이프라인을 생성 및 구성합니다. 소스 리포지토리 및 배포 환경의 위치와 함께 CodePipeline을 제공합니다.
a. 여기를 클릭하여 AWS CodePipeline 콘솔을 엽니다.
- 시작 페이지에서 파이프라인 생성을 클릭합니다.
- AWS CodePipeline을 처음 사용하는 경우, 시작 페이지 대신 소개 페이지가 나타납니다. 시작하기를 클릭합니다.
c. 2단계: 소스 페이지에서, 선택한 소스의 위치를 선택하고 아래 단계를 따릅니다.
f. 5단계: 서비스 역할 페이지에서:
- 서비스 역할: 역할 만들기를 클릭합니다.
- 자동으로 생성되는 AWS-CodePipeline-서비스 역할을 설명하는 IAM 콘솔 페이지로 리디렉션됩니다. 허용을 클릭합니다.
- 역할이 생성되면 5단계: 서비스 역할 페이지로 돌아가며, AWS-CodePipeline-Service가 역할 이름에 표시됩니다. 다음 단계를 클릭합니다.
참고: AWS CodePipeline에서 처음으로 파이프라인을 만들 때만 서비스 역할을 생성하면 됩니다. 서비스 역할이 이미 생성되어 있는 경우에는 역할의 드롭다운 목록에서 이를 선택할 수 있습니다. 드롭다운 목록에는 계정에 연결된 모든 IAM 서비스 역할이 표시되므로, 기본값이 아닌 이름을 선택하는 경우 AWS CodePipeline용 서비스 역할임을 알 수 있도록 이름을 지정해야 합니다.
이 단계에서는 파이프라인을 시작합니다. 파이프라인이 생성되고 나면 자동으로 실행되기 시작합니다. 먼저, 파이프라인이 소스 위치에서 샘플 앱 코드를 감지하고 파일을 번들링한 다음 정의된 두 번째 단계로 이동합니다. 이 단계 동안, 파이프라인은 코드를 호스트할 EC2 인스턴스를 포함하는 Elastic Beanstalk에 코드를 전달합니다. Elastic Beanstalk는 EC2 인스턴스에 코드 배포를 처리합니다.
이 단계에서는 샘플 코드를 수정하고 변경 사항을 리포지토리에 커밋합니다. CodePipeline이 업데이트된 샘플 코드를 감지한 다음 자동으로 Elastic Beanstalk를 통해 EC2 인스턴스에 배포를 시작합니다.
배포한 샘플 웹 페이지는 코드 배포를 자동화하는 서비스, AWS CodeDeploy를 참조한다는 점을 유념하십시오. CodePipeline에서는 CodeDeploy가 배포 작업을 위해 Elastic Beanstalk 사용을 대체합니다. 그럼, Elastic Beanstalk를 사용하여 샘플을 배포했음을 올바르게 진술하도록 샘플 코드를 업데이트합시다.
나중에 요금이 부과되지 않도록, 파이프라인, Elastic Beanstalk 애플리케이션 및 코드를 호스트하기 위해 설정한 소스가 포함되어 있고 이 자습서 전체에서 실행한 모든 리소스를 삭제할 것입니다.
AWS CodePipeline을 사용하여 자동화 소프트웨어 릴리스 파이프라인을 성공적으로 생성했습니다! CodePipeline을 사용하여, GitHub, Amazon S3 또는 AWS CodeCommit을 애플리케이션 코드를 위한 소스 위치로 사용한 다음 코드를 AWS Elastic Beanstalk에 의해 관리되는 Amazon EC2 인스턴스에 배포하는 파이프라인을 생성했습니다. 코드 변경이 있을 때마다 파이프라인이 자동으로 코드를 배포합니다. 연속 배포 연습에 한 단계 더 가까이 접근했습니다!
이제 AWS CodePipeline을 사용하여 간단한 파이프라인을 생성하는 방법을 배웠으므로, 다음 리소스를 방문하여 더 자세히 알아볼 수 있습니다.
- 이 단계를 따라 4단계의 고급 파이프라인을 만들어 보십시오. 이 파이프라인은 소스에 대한 GitHub 리포지토리, 프로젝트를 빌드 및 테스트하기 위한 Jenkins 빌드 서버, 빌드된 코드를 스테이징 서버에 배포하기 위한 AWS CodeDeploy 애플리케이션을 사용합니다.
- 파이프라인 스타터 키트를 사용하여 Jenkins 빌드 서버로 4단계 파이프라인을 빠르게 실행하십시오.
- 지속적 전달에 대해 자세히 알아보십시오.