AWS CodeDeploy
사용 설명서 (API 버전 2014-10-06)

이 설명서의 절차는 새 콘솔 디자인을 지원합니다. 이전 버전의 콘솔을 사용하도록 선택할 경우 이 설명서의 여러 가지 개념과 기본 절차가 계속 적용되는 것을 확인할 수 있습니다. 새 콘솔에서 도움말에 액세스하려면 정보 아이콘을 선택하십시오.

CodeDeploy AppSpec File 참조

이 단원은 참조용입니다. AppSpec file에 대한 개념적 개요는 애플리케이션 사양 파일 단원을 참조하십시오.

AppSpec file(application specification file)은 CodeDeploy가 배포를 관리하기 위해 사용하는 YAML 형식의 파일 또는 JSON 형식의 파일입니다.

Amazon ECS 컴퓨팅 플랫폼에 대한 AppSpec 파일

애플리케이션이 Amazon ECS 컴퓨팅 플랫폼을 사용하는 경우 CodeDeploy는 AppSpec file을 사용하여 다음을 정의합니다.

  • Amazon ECS 작업 정의 파일. AppSpec file의 TaskDefinition 명령의 ARN으로 지정됩니다.

  • 배포 중에 Application Load Balancer 또는 Network Load Balancer가 트래픽을 다시 라우팅하는 대체 작업 세트의 컨테이너 및 포트. AppSpec file의 LoadBalancerInfo 명령으로 지정됩니다.

  • Amazon ECS 서비스에 대한 선택적 정보(예: 실행되는 플랫폼 버전, 서브넷, 보안 그룹).

  • Amazon ECS 배포 중에 수명 주기 이벤트에 해당하는 후크 중에 실행할 Lambda 함수(선택 사항). 자세한 내용은 Amazon ECS 배포를 위한 AppSpec 'hooks' 섹션 단원을 참조하십시오.

AWS Lambda 컴퓨팅 플랫폼에 대한 AppSpec 파일

애플리케이션이 AWS Lambda 컴퓨팅 플랫폼을 사용하는 경우 CodeDeploy는 AppSpec file을 사용하여 다음을 정의합니다.

  • 배포할 Lambda 함수 버전

  • 확인 테스트로 사용할 Lambda 함수

AppSpec file은 YAML 형식 또는 JSON 형식일 수 있습니다. 배포를 생성할 때 AppSpec file의 내용을 CodeDeploy 콘솔에 직접 입력할 수도 있습니다.

EC2/온프레미스 컴퓨팅 플랫폼에 대한 AppSpec 파일

애플리케이션이 EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 경우 CodeDeploy는 AppSpec file을 사용하여 다음을 정의합니다.

  • Amazon S3 또는 GitHub의 애플리케이션 개정에서 인스턴스에 설치해야 할 항목

  • 배포 수명 주기 이벤트에 대한 응답으로 실행될 수명 주기 이벤트 후크

AppSpec file은 appspec.yml이라는 YAML 형식 파일이어야 하며 애플리케이션 소스 코드 디렉터리 구조의 루트에 저장해야 합니다. 그렇지 않으면 배포에 실패합니다.

AppSpec file을 완성한 후 배포할 콘텐츠와 함께 아카이브 파일(zip, tar 또는 압축 tar)로 번들링합니다. 자세한 내용은 CodeDeploy에 필요한 애플리케이션 개정 작업 단원을 참조하십시오.

참고

The tar and compressed tar archive file formats (.tar and .tar.gz) are not supported for Windows Server instances.

번들링된 아카이브 파일(CodeDeploy에서는 개정이라고 함)이 생성되면 Amazon S3 버킷 또는 Git 리포지토리에 업로드합니다. 그런 다음 CodeDeploy를 사용하여 개정을 배포합니다. 지침은 CodeDeploy로 배포 생성 단원을 참조하십시오.

EC2/온프레미스 컴퓨팅 플랫폼 배포에 대한 appspec.yml은 개정의 루트 디렉터리에 저장됩니다. 자세한 내용은 EC2/온프레미스 배포를 위한 AppSpec 파일 추가CodeDeploy에 대한 개정 계획 단원을 참조하십시오.

AppSpec File 간격 지정

다음은 AppSpec file 간격 지정의 올바른 형식입니다. 대괄호로 묶인 숫자는 항목 간에 있어야 하는 공백 수를 나타냅니다. 예를 들어, [4]는 항목 사이에 공백을 4개 삽입해야 함을 의미합니다. AppSpec file의 공백 위치 및 개수가 올바르지 않으면 CodeDeploy에는 디버깅하기 어려울 수 있는 오류가 발생합니다.

version:[1]version-number os:[1]operating-system-name files: [2]-[1]source:[1]source-files-location [4]destination:[1]destination-files-location permissions: [2]-[1]object:[1]object-specification [4]pattern:[1]pattern-specification [4]except:[1]exception-specification [4]owner:[1]owner-account-name [4]group:[1]group-name [4]mode:[1]mode-specification [4]acls: [6]-[1]acls-specification [4]context: [6]user:[1]user-specification [6]type:[1]type-specification [6]range:[1]range-specification [4]type: [6]-[1]object-type hooks: [2]deployment-lifecycle-event-name: [4]-[1]location:[1]script-location [6]timeout:[1]timeout-in-seconds [6]runas:[1]user-name

다음은 간격이 올바르게 지정된 AppSpec file의 예입니다.

version: 0.0 os: linux files: - source: / destination: /var/www/html/WordPress hooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh - location: scripts/create_test_db.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root

간격 지정에 대한 자세한 내용은 YAML 사양을 참조하십시오.