코드코드빌드를 위한 배포 샘플 - AWS CodeBuild

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

코드코드빌드를 위한 배포 샘플

이 샘플은 지시합니다.AWS CodeBuild에 Maven을 사용하여 이라는 단일 JAR 파일을 빌드 출력으로 생성합니다.my-app-1.0-SNAPSHOT.jar. 그런 다음 이 예제에서는 CodeDeploy를 사용하여 JAR 파일을 Amazon Linux 인스턴스에 배포합니다. 를 사용할 수도 있습니다.AWS CodePipelineCodeDeploy를 사용하여 JAR 파일을 Amazon Linux 인스턴스에 배포하는 작업을 자동화합니다. 이 샘플은5분 만에 Maven아파치 메이븐 웹 사이트의 주제.

중요

이 샘플을 실행하면 AWS 계정에 요금이 발생할 수 있습니다. 여기에는 CodeBuild 및 요금이 포함됩니다.AWSAmazon S3와 관련된 리소스 및 조치,AWS KMS, CloudWatch Logs 및 Amazon EC2. 자세한 내용은 단원을 참조하십시오.CodeBuild 요금,Amazon S3 요금,AWS Key Management Service요금,Amazon CloudWatch 요금, 및Amazon EC2 요금.

샘플 실행

이 샘플을 실행하려면

  1. Maven을 다운로드하고 설치합니다. 자세한 내용은 단원을 참조하십시오.Apache Maven 다운로드Apache Maven 설치아파치 메이븐 웹사이트에서 확인할 수 있습니다.

  2. 로컬 컴퓨터나 인스턴스의 빈 디렉터리로 전환한 다음, 아래 Maven 명령을 실행합니다.

    mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    성공하면 다음 디렉터리 구조 및 파일이 생성됩니다.

    . └── my-app ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java
  3. 이 내용으로 파일을 만듭니다. 파일의 이름을 지정합니다.buildspec.yml을 (를) 에 추가한 다음my-app디렉토리.

    version: 0.2 phases: install: runtime-versions: java: corretto8 build: commands: - echo Build started on `date` - mvn test post_build: commands: - echo Build completed on `date` - mvn package artifacts: files: - target/my-app-1.0-SNAPSHOT.jar - appspec.yml discard-paths: yes
  4. 이 내용으로 파일을 만듭니다. 파일의 이름을 지정합니다.appspec.yml을 (를) 에 추가한 다음my-app디렉토리.

    version: 0.0 os: linux files: - source: ./my-app-1.0-SNAPSHOT.jar destination: /tmp

    완료되면 다음과 같이 디렉터리 구조와 파일이 나타나야 합니다.

    . └── my-app ├── buildspec.yml ├── appspec.yml ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java
  5. 디렉터리 구조 및 파일 안에 있는 파일을 포함하는 ZIP 파일을 생성합니다.my-app를 누른 다음 에서 지원하는 소스 코드 저장소 유형에 ZIP 파일을 업로드합니다.AWS CodeBuild및 CodeDeploy (예: S3 입력 버킷이나 GitHub 또는 Bitbucket 리포지토리에) 가 있습니다.

    중요

    CodePipeline을 사용하여 결과 빌드 출력 아티팩트를 배포하려면 소스 코드를 Bitbucket 저장소에 업로드할 수 없습니다.

    추가 안 함my-app를 ZIP 파일로, 안에 있는 디렉터리와 파일만 사용하십시오.my-app. ZIP 파일에는 다음 디렉토리와 파일이 포함되어야 합니다.

    . └── CodeDeploySample.zip ├── buildspec.yml ├── appspec.yml ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java
  6. 에서 단계에 따라 빌드 프로젝트 생성빌드 프로젝트 생성.

    AWS CLI를 사용하여 빌드 프로젝트를 생성하는 경우, create-project 명령에 JSON 형식으로 입력하면 다음과 같이 표시될 수 있습니다. (자리 표시자는 사용자의 값으로 바꾸십시오.)

    { "name": "sample-codedeploy-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/CodeDeploySample.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "packaging": "ZIP", "name": "CodeDeployOutputArtifact.zip" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:4.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }
  7. CodeDeploy를 사용하여 빌드 출력 아티팩트를 배포하려는 경우 다음 단계를 따릅니다.빌드 실행. 그렇지 않은 경우 이 단계를 건너뜁니다. (이는 CodePipeline을 사용하여 빌드 출력 아티팩트를 배포하는 경우 CodePipeline을 사용하여 빌드를 자동으로 실행하기 때문입니다.)

  8. 다음을 포함하여 CodeDeploy를 사용하기 위한 설정 단계를 완료합니다.

    • IAM 사용자에게 CodeDeploy와AWS서비스 및 작업 CodeDeploy 에 따라 다릅니다 자세한 내용은 단원을 참조하십시오.IAM 사용자 프로비저닝AWS CodeDeploy사용 설명서.

    • 서비스 역할을 생성하거나 지정하여 CodeDeploy에서 빌드 출력 아티팩트를 배포할 인스턴스를 식별할 수 있도록 합니다. 자세한 내용은 단원을 참조하십시오.CodeDeploy용 서비스 역할 생성AWS CodeDeploy사용 설명서.

    • 인스턴스가 빌드 출력 아티팩트를 포함하는 S3 입력 버킷이나 GitHub 리포지토리에 액세스할 수 있도록 IAM 인스턴스 프로파일을 생성하거나 지정합니다. 자세한 내용은 단원을 참조하십시오.Amazon EC2 인스턴스에 대한 IAM 인스턴스 프로파일 생성AWS CodeDeploy사용 설명서.

  9. 빌드 출력 아티팩트가 배포될 CodeDeploy와 호환되는 Amazon Linux 인스턴스를 생성하거나 지정합니다. 자세한 내용은 단원을 참조하십시오.CodeDeploy용 인스턴스 작업AWS CodeDeploy사용 설명서.

  10. CodeDeploy 애플리케이션 및 배포 그룹을 생성하거나 식별합니다. 자세한 내용은 단원을 참조하십시오.CodeDeploy를 사용하여 애플리케이션 만들기AWS CodeDeploy사용 설명서.

  11. 인스턴스에 빌드 출력 아티팩트를 배포합니다.

    CodeDeploy를 사용하여 배포하려면CodeDeploy를 사용하여 수정 버전 배포AWS CodeDeploy사용 설명서.

    CodePipeline을 사용하여 배포하려면코드 빌드와 함께 코드 파이프 라인 사용.

  12. 배포가 완료된 후 빌드 출력 아티팩트를 찾으려면 인스턴스에 로그인하고/tmp이름이 지정된 파일의 디렉터리my-app-1.0-SNAPSHOT.jar.

관련 리소스