기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CodeDeploy 에이전트를 사용하여 로컬 시스템에서 배포 패키지 검증
CodeDeploy 에이전트를 사용하여 로그인한 인스턴스에 콘텐츠를 배포할 수 있습니다. 이를 통해 배포에 사용하려는 애플리케이션 사양 파일(AppSpec 파일)과 배포하려는 콘텐츠의 무결성을 테스트할 수 있습니다.
애플리케이션 및 배포 그룹을 만들 필요가 없습니다. 로컬 인스턴스에 저장된 콘텐츠를 배포하려는 경우 AWS 계정이 필요하지 않습니다. 가장 간단한 테스트를 위해 AppSpec 파일과 배포할 콘텐츠가 포함된 디렉터리에서 옵션을 지정하지 않고 codedeploy-local 명령을 실행할 수 있습니다. 도구에는 다른 테스트 사례에 대한 옵션이 있습니다.
로컬 컴퓨터에서 배포 패키지의 유효성을 검사하여 다음을 수행할 수 있습니다.
-
애플리케이션 개정 버전의 무결성 테스트.
-
AppSpec 파일의 내용을 테스트합니다.
-
기존 애플리케이션 코드로 CodeDeploy 처음으로 사용해 보세요.
-
인스턴스에 이미 로그인하지 않았다면 콘텐츠를 빠르게 배포합니다.
로컬 인스턴스 또는 지원되는 원격 리포지토리 유형(Amazon S3 버킷 또는 퍼블릭 GitHub 리포지토리)에 저장된 배포 콘텐츠를 사용할 수 있습니다.
사전 조건
로컬 배포를 시작하기 전에 다음 단계를 완료해야 합니다.
-
CodeDeploy 에이전트에서 지원하는 인스턴스 유형을 생성하거나 사용합니다. 자세한 내용은 CodeDeploy 에이전트에서 지원하는 운영 체제을 참조하세요.
-
CodeDeploy 에이전트 버전 1.0.1.1352 이상을 설치합니다. 자세한 내용은 CodeDeploy 에이전트 설치을 참조하세요.
-
Amazon S3 버킷 또는 GitHub 리포지토리에서 콘텐츠를 배포하는 경우 에서 사용할 사용자를 프로비저닝합니다 CodeDeploy. 자세한 내용은 1단계: 설정을 참조하세요.
-
Amazon S3 버킷에서 애플리케이션 개정 버전을 배포하는 경우 작업 중인 리전에 Amazon S3 버킷을 생성하고 버킷에 Amazon S3 버킷 정책을 적용합니다. 이 정책은 애플리케이션 개정을 다운로드하는 데 필요한 권한을 인스턴스에 부여합니다.
예를 들어, 다음 Amazon S3 버킷 정책은 가 포함된 EC2 인스턴스 프로파일이 연결된 모든 Amazon IAM 인스턴스가 라는 Amazon S3 버킷의 어디에서나 다운로드할 ARN
arn:aws:iam::444455556666:role/CodeDeployDemo
수 있도록 허용합니다amzn-s3-demo-bucket
. Amazon S3{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/CodeDeployDemo" ] } } ] }
다음 Amazon S3 버킷 정책은 가 포함된 연결된 IAM 사용자가 있는 모든 온프레미스 인스턴스가 라는 Amazon S3 버킷의 어디에서나 다운로드할 ARN
arn:aws:iam::444455556666:user/CodeDeployUser
수 있도록 허용합니다amzn-s3-demo-bucket
.{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/CodeDeployUser" ] } } ] }
Amazon S3 버킷 정책 생성 및 연결에 대한 자세한 내용은 버킷 정책 예제를 참조하세요.
-
Amazon S3 버킷 또는 GitHub 리포지토리에서 애플리케이션 개정을 배포하는 경우 IAM 인스턴스 프로파일을 설정하고 인스턴스에 연결합니다. 자세한 내용은 4단계: Amazon IAM 인스턴스의 EC2 인스턴스 프로파일 생성, CodeDeploy (AWS CLI 또는 아마존 EC2 콘솔) 용 Amazon EC2 인스턴스 생성, 및 CodeDeploy (AWS CloudFormation 템플릿) 을 위한 Amazon EC2 인스턴스 생성을(를) 참조하세요.
-
에서 콘텐츠를 배포하는 경우 GitHub 계정과 퍼블릭 리포지토리를 GitHub생성합니다. GitHub 계정을 생성하려면 가입을 GitHub
참조하세요. 리포지토리를 GitHub 생성하려면 리포지토리 생성을 참조하세요 . 참고
프라이빗 리포지토리는 현재 지원되지 않습니다. 콘텐츠가 프라이빗 GitHub 리포지토리에 저장된 경우 인스턴스에 다운로드하고
--bundle-location
옵션을 사용하여 로컬 경로를 지정할 수 있습니다. -
인스턴스에 배포하려는 콘텐츠( AppSpec 파일 포함)를 준비하고 로컬 인스턴스, Amazon S3 버킷 또는 GitHub 리포지토리에 배치합니다. 자세한 내용은 에 대한 애플리케이션 수정 작업 CodeDeploy을 참조하세요.
-
다른 구성 옵션의 기본값 이외의 값을 사용하려면 구성 파일을 생성하고 인스턴스에 배치합니다(
/etc/codedeploy-agent/conf/codedeployagent.yml
Amazon Linux, RHEL또는 Ubuntu Server 인스턴스의 경우 또는 Windows Server 인스턴스C:\ProgramData\Amazon\CodeDeploy\conf.yml
의 경우). 자세한 내용은 CodeDeploy 에이전트 구성 참조을 참조하세요.참고
Amazon Linux, RHEL또는 Ubuntu Server 인스턴스에서 구성 파일을 사용하는 경우 다음 중 하나를 수행해야 합니다.
-
:root_dir:
와(과):log_dir:
변수를 사용하여 배포 루트 및 로그 디렉토리 폴더의 기본값 이외의 위치를 지정할 수 있습니다. -
sudo
를 사용하여 CodeDeploy 에이전트 명령을 실행합니다.
-
로컬 배포 생성
로컬 배포를 생성하려는 인스턴스에서 터미널 세션(Amazon Linux, RHEL또는 Ubuntu Server 인스턴스) 또는 명령 프롬프트(Windows Server)를 열어 도구 명령을 실행합니다.
참고
codedeploy-local 명령이 다음 위치에 설치됩니다.
-
Amazon Linux, RHEL또는 Ubuntu 서버의 경우:
/opt/codedeploy-agent/bin
. -
Windows Server의 경우:
C:\ProgramData\Amazon\CodeDeploy\bin
.
기본 명령 구문
codedeploy-local [options]
시놉시스
codedeploy-local [--bundle-location <value>] [--type <value>] [--file-exists-behavior <value>] [--deployment-group <value>] [--events <comma-separated values>] [--agent-configuration-file <value>] [--appspec-filename <value>]
옵션
-l, --bundle-location
애플리케이션 개정 버전 번들의 위치. 위치를 지정하지 않으면 도구는 기본적으로 현재 작업 중인 디렉토리를 사용합니다. --bundle-location
의 값을 지정하면 --type
에 대한 값도 함께 지정해야 합니다.
번들 위치 형식 예:
-
로컬 Amazon LinuxRHEL, 또는 Ubuntu Server 인스턴스:
/path/to/local/bundle.tgz
-
로컬 Windows Server 인스턴스:
C:/path/to/local/bundle
-
Amazon S3 버킷:
s3://amzn-s3-demo-bucket/bundle.tar
-
GitHub 리포지토리:
https://github.com/
account-name
/repository-name
/
-t,—type
애플리케이션 개정 버전 번들의 형식. 지원되는 형식은 tgz
, tar
, zip
, directory
입니다. 유형을 지정하지 않을 경우 도구는 기본적으로 directory
을(를) 사용합니다. --type
의 값을 지정하면 --bundle-location
에 대한 값도 함께 지정해야 합니다.
-b , --file-exists-behavior
배포 대상 위치에 이미 있지만 이전에 성공한 배포의 일부가 아닌 파일이 처리되는 방식을 나타냅니다. 옵션에는 DISALLOW, OVERWRITE, 가 포함됩니다RETAIN. 자세한 내용은 참조fileExistsBehavior의 섹션을 참조하세요. AWS CodeDeploy API
-g, --deployment-group
배포할 콘텐츠의 대상 위치인 폴더의 경로. 폴더를 지정하지 않으면 도구가 배포 루트 디렉터리 default-local-deployment-group 내에 이름이 지정된 폴더를 생성합니다. 생성하는 각 로컬 배포에 대해 이 도구는 이 폴더 내에 d-98761234-local과 같은 이름으로 하위 디렉토리를 생성합니다.
-e, --events
AppSpec 파일에 나열한 이벤트 대신 실행하려는 재정의 수명 주기 이벤트 후크 세트입니다. 쉼표로 구분된 여러 후크를 지정할 수 있습니다. 다음 경우에 이 옵션을 사용할 수 있습니다.
-
AppSpec 파일을 업데이트할 필요 없이 다른 이벤트 세트를 실행하려고 합니다.
-
와 같은 AppSpec 파일에 있는 항목에 대한 예외로 단일 이벤트 후크를 실행하려고 합니다
ApplicationStop
.
재정의 목록에서 DownloadBundle 및 설치 이벤트를 지정하지 않으면 지정한 모든 이벤트 후크 앞에 이벤트가 실행됩니다. --events
옵션 목록에 DownloadBundle 및 를 포함하는 경우 CodeDeploy 배포에서 일반적으로 실행되기 전에 실행되는 이벤트가 앞에 와야 합니다. 자세한 내용은 AppSpec '후크' 섹션을 참조하세요.
-c , --agent-configuration-file
기본 위치가 아닌 다른 위치에 저장하는 경우 배포에 사용할 구성 파일의 위치. 구성 파일은 배포에 대한 다른 기본값 및 동작에 대한 대안을 지정합니다.
기본적으로 구성 파일은 /etc/codedeploy-agent/conf/codedeployagent.yml
(Amazon Linux, RHEL또는 Ubuntu Server 인스턴스) 또는 C:/ProgramData/Amazon/CodeDeploy/conf.yml
(Windows Server)에 저장됩니다. 자세한 내용은 CodeDeploy 에이전트 구성 참조 단원을 참조하십시오.
-A, --appspec-filename
AppSpec 파일의 이름입니다. 로컬 배포의 경우 허용되는 값은 appspec.yml
및 appspec.yaml
입니다. 기본적으로 AppSpec 파일은 라고 합니다appspec.yml
.
-h, --help
도움말 컨텐츠의 요약을 표시합니다.
-v, --version
도구의 버전 번호를 표시합니다.
예시
다음은 유효한 명령 형식의 예입니다.
codedeploy-local
codedeploy-local --bundle-location /path/to/local/bundle/directory
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group my-deployment-group
codedeploy-local --bundle-location /path/to/local/directory --type directory --deployment-group my-deployment-group
Amazon S3에서 번들 배포:
codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.tgz --type tgz
codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.zip?versionId=1234&etag=47e8 --type zip --deployment-group my-deployment-group
퍼블릭 리 GitHub 포지토리에서 번들 배포:
codedeploy-local --bundle-location https://github.com/awslabs/aws-codedeploy-sample-tomcat --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/master --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/HEAD --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/1a2b3c4d --type zip
여러 수명 주기 이벤트를 지정하는 번들 배포:
codedeploy-local --bundle-location /path/to/local/bundle.tar --type tar --application-folder my-deployment --events DownloadBundle,Install,ApplicationStart,HealthCheck
ApplicationStop 수명 주기 이벤트를 사용하여 이전에 배포된 애플리케이션을 중지합니다.
codedeploy-local --bundle-location /path/to/local/bundle.tgz --type tgz --deployment-group --events ApplicationStop
특정 배포 그룹 ID를 사용하여 배포:
codedeploy-local --bundle-location C:/path/to/local/bundle/directory --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca