기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
및 HashiCorp Packer를 AMI 사용하여 파이프라인 CodePipeline 및 생성
작성자: Akash Kumar(AWS)
요약
알림: AWS CodeCommit 는 더 이상 신규 고객에게 제공되지 않습니다. 의 기존 고객은 서비스를 정상적으로 계속 사용할 AWS CodeCommit 수 있습니다. 자세히 알아보기
이 패턴은 Packer를 사용하여 Amazon Web Services(AWS) 클라우드에 파이프라인을 생성하고 HashiCorp Packer를 사용하여 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 CodeCommit 는 AWS Cloud에 Git 리포지토리를 비공개로 저장하고 관리할 수 있는 버전 제어 서비스입니다.는 자체 소스 제어 시스템을 관리하거나 인프라 확장에 대한 걱정을 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 파일의 압축을 풉니다.