쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

자습서: CodeBuild 호스팅 GitLab 실행기 구성

포커스 모드
자습서: CodeBuild 호스팅 GitLab 실행기 구성 - AWS CodeBuild

이 자습서에서는 GitLab CI/CD 파이프라인 작업을 실행하도록 CodeBuild 프로젝트를 구성하는 방법을 보여줍니다. GitLab 또는 GitLab Self Managed with CodeBuild 사용에 대한 자세한 내용은 AWS CodeBuild의 자체 관리형 GitLab 실행기 섹션을 참조하세요.

이 자습서를 완료하려면 먼저 다음을 수행해야 합니다.

  • CodeConnections를 사용하여 OAuth 앱에 연결합니다. OAuth 앱에 연결할 때는 CodeBuild 콘솔을 사용하여 연결해야 합니다. 자세한 지침은 CodeBuild의 GitLab 액세스 섹션을 참조하세요.

  • CodeBuild를 GitLab 계정에 연결합니다. 콘솔에서 GitLab을 소스 공급자로 추가하여 연결할 수 있습니다. 지침은 CodeBuild의 GitLab 액세스 단원을 참조하십시오.

    참고

    이는 계정에 대해 GitLab에 연결하지 않은 경우에만 수행하면 됩니다.

    이 기능을 사용하면 CodeBuild에 GitLab OAuth 앱의 create_runnermanage_runner와 같은 추가 권한이 필요합니다. 특정 GitLab 계정에 대한 기존 CodeConnections가 있는 경우 권한 업데이트를 자동으로 요청하지 않습니다. 이렇게 하려면 CodeConnections 콘솔로 이동하여 동일한 GitLab 계정에 더미 연결을 생성하여 재인증을 트리거하여 추가 권한을 가져올 수 있습니다. 이렇게 하면 모든 기존 연결에서 실행기 기능을 사용할 수 있습니다. 완료되면 더미 연결을 삭제할 수 있습니다.

1단계: 웹후크를 사용하여 CodeBuild 프로젝트 생성

이 단계에서는 웹후크를 사용하여 CodeBuild 프로젝트를 생성하고 GitLab 콘솔에서 검토합니다.

웹후크를 사용하여 CodeBuild 프로젝트를 생성하려면
  1. https://console.aws.amazon.com/codesuite/codebuild/home에서 AWS CodeBuild 콘솔을 엽니다.

  2. 빌드 프로젝트를 생성합니다. 자세한 내용은 빌드 프로젝트 만들기(콘솔)빌드 실행(콘솔) 섹션을 참조하세요.

    • 소스에서 다음과 같이 합니다.

      • 소스 공급자에서 GitLab을 선택합니다.

      • 자격 증명에서 다음 중 하나를 선택합니다.

        • 기본 소스 자격 증명을 선택합니다. 기본 연결은 모든 프로젝트에서 기본 GitLab 연결을 적용합니다.

        • 사용자 지정 소스 자격 증명을 선택합니다. 사용자 지정 연결은 계정의 기본 설정을 재정의하는 사용자 지정 GitLab 연결을 적용합니다.

        참고

        공급자에 대한 연결을 아직 생성하지 않은 경우 새 GitLab 연결을 생성해야 합니다. 지침은 GitLab에 CodeBuild 연결 단원을 참조하십시오.

      • 리포지토리 이름에서 네임스페이스와 함께 프로젝트 경로를 지정하여 GitLab의 프로젝트 이름을 선택합니다.

    • 기본 소스 웹후크 이벤트에서:

      • 웹후크 - 선택 사항에서 코드 변경이 이 리포지토리로 푸시될 때마다 다시 빌드를 선택합니다.

      • 이벤트 유형에서 WORKFLOW_JOB_QUEUED를 선택합니다. 이 기능이 활성화되면 빌드는 GitLab CI/CD 파이프라인 작업 이벤트에 의해서만 트리거됩니다.

        참고

        CodeBuild는 웹후크에 WORKFLOW_JOB_QUEUED 이벤트 필터가 포함된 필터 그룹이 있는 경우에만 GitLab CI/CD 파이프라인 작업 이벤트를 처리합니다.

        GitLab CI/CD 파이프라인 작업 이벤트에 의해서만 트리거되도록 구성을 빌드합니다.
    • 환경에서 다음과 같이 합니다.

      • 지원되는 환경 이미지컴퓨팅을 선택합니다. GitLab CI/CD 파이프라인 YAML의 레이블을 사용하여 이미지 및 인스턴스 설정을 재정의할 수 있습니다. 자세한 내용은 2단계: 리포지토리에 .gitlab-ci.yml 파일 생성 단원을 참조하십시오.

    • Buildspec에서 다음과 같이 합니다.

      • buildspec-override:true가 레이블로 추가되지 않는 한 buildspec은 무시됩니다. 대신 CodeBuild는 자체 관리형 실행기를 설정하는 명령을 사용하도록 재정의합니다.

  3. 기본값으로 계속 진행한 다음 빌드 프로젝트 생성을 선택합니다.

  4. https://gitlab.com/user-name/repository-name/-/hooks에서 GitLab 콘솔을 열어 웹후크가 생성되었고 워크플로 작업 이벤트를 전달할 수 있는지 확인합니다.

2단계: 리포지토리에 .gitlab-ci.yml 파일 생성

이 단계에서는 GitLab에서 .gitlab-ci.yml 파일을 생성하여 빌드 환경을 구성하고 CodeBuild에서 GitLab 자체 관리형 실행기를 사용합니다. 자세한 내용은 자체 관리형 실행기 사용을 참조하세요.

GitLab CI/CD 파이프라인 YAML 업데이트

https://gitlab.com/user-name/project-name/-/tree/branch-name 섹션으로 이동하여 리포지토리에서 .gitlab-ci.yml 파일을 생성합니다. 다음 중 하나를 수행하여 빌드 환경을 구성할 수 있습니다.

  • CodeBuild 프로젝트 이름을 지정할 수 있습니다. 이 경우 빌드는 컴퓨팅, 이미지, 이미지 버전 및 인스턴스 크기에 대한 기존 프로젝트 구성을 사용합니다. 프로젝트 이름은 GitLab 작업의 AWS 관련 설정을 특정 CodeBuild 프로젝트에 연결하는 데 필요합니다. YAML에 프로젝트 이름을 포함하면 CodeBuild가 올바른 프로젝트 설정으로 작업을 호출할 수 있습니다.

    tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME

    $CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME은 빌드를 특정 파이프라인 작업 실행에 매핑하고 파이프라인 실행이 취소될 때 빌드를 중지하는 데 필요합니다.

    참고

    <project-name>이 CodeBuild에서 생성한 프로젝트의 이름과 일치하는지 확인합니다. 일치하지 않으면 CodeBuild는 웹후크를 처리하지 않고 GitLab CI/CD 파이프라인이 중단될 수 있습니다.

    다음은 GitLab CI/CD 파이프라인 YAML의 예입니다.

    workflow: name: HelloWorld stages: # List of stages for jobs, and their order of execution - build build-job: # This job runs in the build stage, which runs first. stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME
  • 태그에서 이미지 및 컴퓨팅 유형을 재정의할 수도 있습니다. 사용 가능한 이미지 목록은 CodeBuild 호스팅 GitLab 실행기로 지원되는 이미지 계산 섹션을 참조하세요. 레이블의 컴퓨팅 유형 및 이미지가 프로젝트의 환경 설정을 재정의합니다. Amazon EC2 컴퓨팅 빌드의 환경 설정을 재정의하려면 다음 구문을 사용합니다.

    tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - image:<environment-type>-<image-identifier> - instance-size:<instance-size>

    다음은 GitLab CI/CD 파이프라인 YAML의 예입니다.

    stages: - build build-job: stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - image:arm-3.0 - instance-size:small
  • 태그의 빌드에 사용되는 플릿을 재정의할 수 있습니다. 이렇게 하면 지정된 플릿을 사용하도록 프로젝트에 구성된 플릿 설정이 재정의됩니다. 자세한 내용은 예약 용량 플릿에서 빌드 실행 단원을 참조하십시오. Amazon EC2 컴퓨팅 빌드의 플릿 설정을 재정의하려면 다음 구문을 사용합니다.

    tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:<fleet-name>

    빌드에 사용되는 플릿과 이미지를 모두 재정의하려면 다음 구문을 사용합니다.

    tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:<fleet-name> - image:<environment-type>-<image-identifier>

    다음은 GitLab CI/CD 파이프라인 YAML의 예입니다.

    stages: - build build-job: stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:myFleet - image:arm-3.0
  • 사용자 지정 이미지에서 GitLab CI/CD 파이프라인 작업을 실행하려면 CodeBuild 프로젝트에서 사용자 지정 이미지를 구성하고 이미지 재정의 레이블을 제공하지 않아도 됩니다. CodeBuild는 이미지 재정의 레이블이 제공되지 않은 경우 프로젝트에 구성된 이미지를 사용합니다.

.gitlab-ci.yml에 변경 사항을 커밋하면 GitLab 파이프라인이 트리거되고 build-job이 CodeBuild에서 빌드를 시작하는 웹후크 알림을 보냅니다.

buildspec 명령 실행 INSTALL, PRE_BUILD 및 POST_BUILD 단계

기본적으로 CodeBuild는 자체 관리형 GitLab 빌드를 실행할 때 빌드 사양 명령을 무시합니다. 빌드 중에 buildspec 명령을 실행하려면 buildspec-override:true를 접미사로 tags에 추가할 수 있습니다.

tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - buildspec-override:true

이 명령을 사용하면 CodeBuild는 컨테이너의 기본 소스 폴더에 gitlab-runner라는 폴더를 생성합니다. BUILD 단계 중에 GitLab 실행기가 시작되면 실행기가 gitlab-runner 디렉터리에서 실행됩니다.

자체 관리형 GitLab 빌드에서 buildspec 재정의를 사용할 때 몇 가지 제한 사항이 있습니다.

  • CodeBuild는 BUILD 단계에서 자체 관리형 실행기가 실행되므로 BUILD 단계 중에 buildspec 명령을 실행하지 않습니다.

  • CodeBuild는 DOWNLOAD_SOURCE 단계 중에 기본 또는 보조 소스를 다운로드하지 않습니다. buildspec 파일이 구성된 경우 해당 파일만 프로젝트의 기본 소스에서 다운로드됩니다.

  • PRE_BUILD 또는 INSTALL 단계에서 빌드 명령이 실패하면 CodeBuild는 자체 관리형 실행기를 시작하지 않으며 GitLab CI/CD 파이프라인 작업을 수동으로 취소해야 합니다.

  • CodeBuild는 만료 시간이 1시간인 DOWNLOAD_SOURCE 단계 중에 실행기 토큰을 가져옵니다. PRE_BUILD 또는 INSTALL 단계가 1시간을 초과하면 GitLab 자체 관리형 실행기가 시작되기 전에 실행기 토큰이 만료될 수 있습니다.

3단계: 결과 검토

GitLab CI/CD 파이프라인 실행이 발생할 때마다 CodeBuild는 웹후크를 통해 CI/CD 파이프라인 작업 이벤트를 수신합니다. CI/CD 파이프라인의 각 작업에 대해 CodeBuild는 임시 GitLab 실행기를 실행하기 위한 빌드를 시작합니다. 실행기는 단일 CI/CD 파이프라인 작업을 실행할 책임이 있습니다. 작업이 완료되면 실행기와 관련 빌드 프로세스가 즉시 종료됩니다.

CI/CD 파이프라인 작업 로그를 보려면 GitLab의 리포지토리로 이동하여 빌드, 작업을 선택한 다음 로그를 검토하려는 특정 작업을 선택합니다.

CodeBuild에서 자체 관리형 실행기가 작업을 픽업할 때까지 기다리는 동안 로그에서 요청된 레이블을 검토할 수 있습니다.

GitLab 웹후크 이벤트 필터링(AWS CloudFormation)

AWS CloudFormation 템플릿의 다음 YAML 형식 부분은 빌드가 true로 평가될 때 빌드를 트리거하는 필터 그룹을 생성합니다. 다음 필터 그룹은 정규식 \[CI-CodeBuild\]와 일치하는 CI/CD 파이프라인 이름이 있는 GitLab CI/CD 파이프라인 작업 요청을 지정합니다.

CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole: service-role Artifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Source: Type: GITLAB Location: CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION Triggers: Webhook: true ScopeConfiguration: Name: group-name FilterGroups: - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED - Type: WORKFLOW_NAME Pattern: \[CI-CodeBuild\]
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.