기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CodePipeline 및 HashiCorp Packer를 AMI 사용하여 파이프라인 및 생성
작성자: Akash Kumar(AWS)
환경: PoC 또는 파일럿 | 소스: DevOps | 대상: Amazon Machine Images(AMI) |
R 유형: 리호스트 | 워크로드: 기타 모든 워크로드 | 기술: DevOps, 현대화, 웹 및 모바일 앱 |
요약
알림: AWS CodeCommit 는 더 이상 신규 고객에게 제공되지 않습니다. 의 기존 고객은 평소와 같이 서비스를 계속 사용할 AWS CodeCommit 수 있습니다. 자세히 알아보기
이 패턴은 HashiCorp Packer를 사용하여 Amazon Web Services(AWS) 클라우드에서 파이프라인을 생성하고 Amazon Machine Image(AMI)를 생성하는 코드 샘플AWS CodePipeline 과 단계를 제공합니다. 이 패턴은 Git 기반 버전 제어 시스템으로 코드의 빌드와 테스트를 자동화하는 지속적 통합 방식을 기반으로 합니다. 이 패턴에서는 를 사용하여 코드 리포지토리를 생성하고 복제합니다AWS CodeCommit. 그런 다음 프로젝트를 생성하고 를 사용하여 소스 코드를 구성합니다AWS CodeBuild. 마지막으로 리포지토리에 커밋AMI되는 를 생성합니다.
사전 조건 및 제한 사항
사전 조건
활성 AWS 계정
Amazon Elastic Compute Cloud(AmazonEC2) 인스턴스를 시작하기 AMI 위한 Amazon Linux
HashiCorp Packer
0.12.3 이상 Amazon CloudWatch 이벤트(선택 사항)
Amazon CloudWatch Logs(선택 사항)
아키텍처
다음 다이어그램은 이 패턴의 아키텍처를 AMI 사용하여 의 생성을 자동화하는 애플리케이션 코드의 예를 보여줍니다.
이 다이어그램은 다음 워크플로를 보여줍니다.
개발자는 프라이빗 CodeCommit Git 리포지토리에 코드 변경 사항을 커밋합니다. 그런 다음 CodeBuild 를 CodePipeline 사용하여 빌드를 시작하고 Amazon Simple Storage Service(Amazon S3) 버킷에 배포할 준비가 된 새 아티팩트를 추가합니다.
CodeBuild 는 Packer를 사용하여 JSON 템플릿을 AMI 기반으로 를 번들링하고 패키징합니다. 활성화된 경우 소스 코드가 변경될 때 CloudWatch 이벤트가 파이프라인을 자동으로 시작할 수 있습니다.
기술 스택
CodeBuild
CodeCommit
CodePipeline
CloudWatch 이벤트(선택 사항)
도구
AWS CodeBuild- 클라우드의 완전 관리형 빌드 서비스입니다. AWS CodeBuild 는 소스 코드를 CodeBuild 컴파일하고, 단위 테스트를 실행하고, 배포할 준비가 된 아티팩트를 생성합니다.
AWS CodeCommit - AWS Cloud에 Git 리포지토리를 비공개로 저장하고 관리할 수 있는 버전 제어 서비스AWS CodeCommit 입니다. 자체 소스 제어 시스템을 관리하거나 인프라 확장에 대한 걱정을 CodeCommit 없앨 수 있습니다.
AWS CodePipeline - AWS CodePipeline 는 소프트웨어 릴리스에 필요한 단계를 모델링, 시각화 및 자동화하는 데 사용할 수 있는 지속적인 전송 서비스입니다.
HashiCorp Packer
– HashiCorp Packer는 단일 소스 구성에서 동일한 기계 이미지 생성을 자동화하기 위한 오픈 소스 도구입니다. Packer는 가볍고, 모든 주요 운영 체제에서 실행되며, 여러 플랫폼에 대한 머신 이미지를 병렬로 생성합니다.
코드
이 패턴에는 다음과 같은 첨부 파일이 포함됩니다.
buildspec.yml
- 이 파일은 CodeBuild 를 사용하여 배포를 위한 아티팩트를 빌드하고 생성합니다.amazon-linux_packer-template.json
– 이 파일은 Packer를 사용하여 Amazon Linux 를 생성합니다AMI.
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
리포지토리를 생성합니다. | AWS 시스템 관리자 | |
리포지토리를 복제합니다. | 앱 개발자 | |
소스 코드를 원격 리포지토리로 푸시합니다. | 앱 개발자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
빌드 프로젝트를 생성합니다. |
| 앱 개발자, AWS 시스템 관리자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
파이프라인 이름 |
| 앱 개발자, AWS 시스템 관리자 |
관련 리소스
첨부
이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.