AWS의 CI/CD 환경 제작 예

본문 묘사의 범위

  • 다음은 CodeBuild 프로젝트 및 CI/CD 환경을 구축하는 방법에 대해 설명합니다.
  • CodeCommiit 창고를 만들기 전의 방법과 S3 구간 설정 후의 내용 전송을 설명하지 않습니다.
  • 서비스 구성

  • CodeCommit
  • CodeBuild
  • S3
  • Amazon EventBridge
  • 프로세스 처리

  • CodeBuild를 CodeCommiit의 특정 분기에 통합하는 것을 계기로 S3 구간에 배치될 때까지 CodeBuild 구축을 실행한다.
  • 기본적인 생각

  • CI/CD 구성 작성 시 기본 단계와 해당하는 AWS 서비스는 다음과 같습니다.
  • 페이드 인
    해당되는 서비스
    개요
    촉발
    Amazon EventBridge, CodeCommit
    CodeCommiit의 변화는 CloudWatch Event로 발표되기 때문에, 대상 이벤트가 발생할 때 처리를 시작합니다.
    구축
    CodeBuild, CodeCommit
    CodeCommiit의 특정 창고·특정 지점에서 소스를 추출하여 구축에 사용할 docker 이미지를 만들고 구축 처리를 수행합니다
    프로그램 설계
    CodeBuild, S3
    Docker 이미지의 구축 결과물(정적 내용)을 S3 섹션에 구성
  • 처리 절차는 위에서 설명한 바와 같지만 실제 프로젝트의 창설 순서는 (창설 원본→) 창설 목표→ 구축 구조→지정 촉발이다.
  • 다음은 "소스 만들기(CodeCommiit 창고 만들기)를 전제로 설명합니다.
  • 구축 설계 단계


    설계 대상 S3 구간 작성

  • AWS 관리 콘솔의 서비스 요약 테이블에서 S3을 선택합니다.
  • 섹션 만들기에 따라 새 섹션을 만듭니다.(상세 할애)
  • buildspec.yml 만들기

  • buildspec.yml이란 CodeBuild의 구축 프로세스를 기록하는 yml 형식의 파일입니다.
  • CodeBuild는 기본적으로 웨어하우스 라우팅의 buildspec입니다.yml를 읽으러 갑니다.특별히 신경 쓰지 않으면 노선에 이 파일 이름으로 설정하세요.
  • 다음은 Node입니다.js14 시스템의 웹 페이지 구축의 예를 사용했습니다.npm scripts에 관해서는 적절하게 교환해 주십시오.
        version: 0.2
    
        phases:
          install:
            runtime-versions:
              nodejs: 14
          pre_build:
            commands:
              - echo NPMパッケージをインストールします
              - npm i
            finally:
              - echo インストールが完了しました
          build:
            commands:
              - echo ビルドを開始します
              - npm run build
            finally:
              - echo ビルドが終了しました
          post_build:
            commands:
              - echo AWS S3にデプロイします
        artifacts:
          files:
            - 'dist/*'
          discard-paths: yes
    
  • buildspec.yml의 규격에 관해서는 https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/build-spec-ref.html를 참조하십시오.
  • CodeBuild 프로젝트 만들기

  • AWS 관리 콘솔의 서비스 요약 테이블에서 CodeBuild를 선택합니다.
  • 구축 프로젝트 작성을 클릭하여 설정을 작성합니다.
  • 이하는 특별히 명시된 입력 항목에 대해 설명한다.(기본 상태를 유지하는 좋은 부분은 생략됨)
  • 분류하다
    프로젝트 이름
    컨텐트
    프로젝트 설정
    프로젝트 이름
    구현된 CI/CD 스트림의 적절한 이름 지정(창고 이름 + 분기 이름 등)
    출처
    소스 공급자
    공용 관계 선택
    출처
    창고.
    구축할 원본이 있는 창고를 선택하십시오
    출처
    분기
    구성할 브랜치 선택
    컨디션
    환경 이미지
    특별한 일만 하지 않고'관리형 이미지'만 하면 된다.
    컨디션
    운영 체제
    언어 런타임 버전별로 지원되는 OS 런타임이 다르므로 확인한 후 선택https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html
    가짜 그림자
    타입
    Amazon S3 선택
    가짜 그림자
    통 이름
    Design Target S3 제작에서 제작된 S3 구간을 지정합니다.
  • 상기 내용을 제외하고 설정을 입력한 후'구축 프로젝트 만들기'를 누르면 완성됩니다.
  • 구축 프로젝트 목록에서 만든 구축 프로젝트를 선택한 다음'구축 시작'을 누르면 구축을 실행할 수 있습니다.오류가 발생하면 로그를 읽어서 수정하십시오.
  • EventBridge를 통해 트리거 생성

  • AWS 관리 콘솔의 서비스 목록에서 Amazon Event Bridge를 선택합니다.
  • 규칙 만들기
  • 를 클릭
  • 이하는 특별히 명시된 입력 항목에 대해 설명한다.(기본 상태를 유지하는 좋은 부분은 생략됨)
  • 분류
    프로젝트 이름
    컨텐트
    이름 및 설명
    이름:
    알기 쉬운 명확한 이름을 짓다
    정의 모드
    -
    이벤트 모드 를 선택합니다.
    정의 모드
    이벤트 일치 모드
    "각 서비스에 대해 미리 정의된 모델"을 선택합니다.
    정의 모드
    서비스 공급자
    AWS 선택
    정의 모드
    서비스 이름
    "CodeCommit"선택
    정의 모드
    이벤트 유형
    이번에는 결합 트리거의 예를 들어 "CodeCommiit Pull Request State Chage"를 선택합니다.
  • 이벤트 유형을 선택한 후 기본적으로 오른쪽에 있는 JSON 편집기에 표시되므로 [편집]을 눌러 모드를 설명합니다.
  • 다음은 개발자 지점으로 가는 합병에 대한 필터링의 예
  •     {
          "source": [
            "aws.codecommit"
          ],
          "detail-type": [
            "CodeCommit Pull Request State Change"
          ],
          "detail": {
            "isMerged": [
              "True"
            ],
            "repositoryNames": [
              "リポジトリ名"
            ],
            "destinationReference": [
              "refs/heads/develop"
            ]
          }
        }
    
  • 다음 내용을 입력합니다.
  • 분류하다
    프로젝트 이름
    컨텐트
    대상 선택
    목표
    CodeBuild 항목 선택
    대상 선택
    프로젝트 ARN
    CodeBuild 페이지에서 만든 항목을 열고 ARN을 복사하여 붙여넣기(구축 상세 정보 → 프로젝트 ARN)
  • 이상을 입력한 후 생성을 클릭합니다.
  • 이상 설정이 완료되었습니다.
    상당히 대략적인 설정 방법으로 죄송하지만 하나의 예로 참고하면 될 것 같습니다.감사합니다.

    좋은 웹페이지 즐겨찾기