AWS CI/CD: CodePipeline 빌드 스테이지 추가 (2편)

2023. 10. 29. 15:49·AWS/CodePipeline, CICD
반응형

지난번 Step2에 이어서 빌드 스테이지를 추가한다.

 


 

1. Step3. 빌드 스테이지 추가


1-1. Step3는 빌드 스테이지 추가이다. 아래와 같은 화면이 나올것이다.

빌드 스테이지 추가
빌드 스테이지 추가

 

1-2. 빌드 공급자 선택

  • Jenkins가 아니라 CodeBuild를 사용할것이기 때문에 AWS CodeBuild를 선택한다.

빌드 공급자 선택
빌드 공급자 선택

 

1-3.프로젝트 생성하기

  • AWS CodeBuild를 선택하면 아래와 같은 화면이 나오는데 여기서 "프로젝트 생성" 버튼을 눌러서 만들어주자

빌드 스테이지 추가 - AWS CodeBuild
빌드 스테이지 추가 - AWS CodeBuild

 

1-4. CodeBuild 빌드 프로젝트 생성하기

  • 아래와 같이 CodeBuild의 빌드 프로젝트를 생성하는 팝업창이 나올것이다. 여기서 먼저 프로젝트의 이름과 설명을 작성한다.

CodeBuild 빌드 프로젝트 생성하기
CodeBuild 빌드 프로젝트 생성하기

 

1-5. 환경 설정하기

  • 하단으로 스크롤하면 "환경" 설정이 나온다. 여기서 "관리형 이미지"를 선택하고 운영체제로 'Ubuntu"를 선택한다.
  • 런타임은 "Standard" 이미지는 가장 버전이 높은 7.0을 선택했다. 이미지 버전 또한 "이 런타임 버전에 항상 최신 이미지 사용"을 선택해 줬다. 마지막으로 환경 유형은 "Linux"를 선택했다.
  • 하단의 권한이 있음 체크박스는 체크를 해준다. (ECR에 넣기전에 docker로 이미지 빌드를 할것이기 때문이다.)

환경 설정하기
환경 설정하기

 

  • 여기서 "서비스 역할" 이부분을 잘 봐두는게 좋다. 이것때문에 IAM권한 문제가 있었는데 여기서 "새 서비스 역할"을 선택하면 내가 새롭게 역할을 만들기때문에 ECR접근이나 AWS CLI 로그인 접근이나 이런 정책들을 새로 만들게되는 역할에 적어줘야 한다.

새 서비스 역할 생성

 

  • 하단처럼 그냥 이미 생성해 놓은 IAM 역할을 선택해서 사용할수도 있다. (역할 ARN 에서 기존의 역할을 선택하면 된다.)

기존 서비스 역할 사용

 

  • 이제 조금 아래로 내려오면 "추가 구성"이 있는데 여기도 default를 그대로 두었다. (이전에 VPC를 선택해줘봤는데 오류가 생겨서 우선은 아무것도 선택하지 않은채로 두었다.)

추가 구성 선택
추가 구성 선택

 

1-6. Buildspec 설정하기

Buildspec 설정하기
Buildspec 설정하기

 

  • 우측의 "편집기로 전환" 버튼을 클릭하면 아래와 같이 빌드 명령어를 입력하는 에디터가 나온다.

Buildspec 작성

 

위에서 작성한 Buildspec.yaml중에서 commands 부분을 해석해 보자
  • 첫 번째로, aws ecr get-login-password --region ap-northeast-2 명령어는 AWS CLI를 사용하여 AWS ECR에서 인증 토큰을 가져온다. 이 토큰은 뒤따르는 docker login 명령어에서 사용된다.
aws ecr get-login-password --region ap-northeast-2
  • 두번째로 "|" 파이프 연산자는 첫 번째 명령어의 출력을 두 번째 명령어의 입력으로 전달한다.
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin {본인의 ecr repositoy URI}/{ecr repository name}
  • 세번째로 docker login --username AWS --password-stdin {본인의 ecr repositoy URI}/{ecr repository name} 명령어는 AWS ECR 레지스트리에 로그인한다. 여기서 --password-stdin 옵션은 비밀번호를 명령 줄에서 직접 입력하지 않고 표준 입력(stdin)에서 읽도록 Docker에 지시한다.
docker login --username AWS --password-stdin {본인의 ecr repositoy URI}/{ecr repository name}
  • 이렇게 명령어를 작성해 놓으면 AWS CLI를 통해 가져온 인증 토큰을 사용하여 AWS ECR 레지스트리에 로그인하게 된다. 이 명령어는 주로 CI/CD 파이프라인의 buildspec 파일 내에서 사용되며, 이를 통해 빌드 및 배포 프로세스 중에 Docker 이미지를 AWS ECR에 푸시할 수 있게 된다.

 

1-7. 하단의 배치구성, 로그는 default로 두고 넘어간다.

  • 모든 설정을 작성했다면 아래의 "CodePipeline으로 계속" 버튼을 누른다.

나머지 구성 설정
나머지 구성 설정

 

1-8. 아래와 같이 완성된 결과가 보인다.

  • 이제 하단의 "다음" 버튼을 클릭해서 Step3를 넘어간다.

CodeBuild 프로젝트 생성 완료
CodeBuild 프로젝트 생성 완료

 

 

이번 포스트는 여기서 마친다. 이제 다음 포스트에서는  Step4를 작성하도록 한다.

 


 

2023.10.29 - [AWS] - AWS CI/CD: CodePipeline 배포 및 검토 (3편)

 

AWS CI/CD: CodePipeline 배포 및 검토 (3편)

이번에는 2편에 이어서 Step4 배포 스테이지와 Step5 검토를 작성한다. 1. Step4: 배포 스테이지 추가 1-1. 배포 스테이지 추가 Step3에서 다음을 누른다면 아래와 같은 배포 스테이지 추가 화면으로 이

curiousjinan.tistory.com

2023.10.29 - [AWS] - AWS CI/CD: CodePipeline 기본 설정 (1편)

 

AWS CI/CD: CodePipeline 기본 설정 (1편)

CodePipeline 시리즈는 지금까지 열심히 만든 ECR, ECS를 활용하여 CI/CD를 구현해 보는 시리즈이다. CodePipeline으로 CI/CD를 구축하는 과정에서 많은 우여곡절이 있었지만 이를 모두 순서대로 기록하기에

curiousjinan.tistory.com

 

반응형

'AWS > CodePipeline, CICD' 카테고리의 다른 글

AWS CI/CD: CodePipeline 세 번째 빌드 오류 해결 (6편)  (1) 2023.10.30
AWS CI/CD: CodePipeline 두 번째 빌드 오류 해결 (5편)  (1) 2023.10.30
AWS CI/CD: CodePipeline 첫 번째 빌드 오류 해결 (4편)  (2) 2023.10.29
AWS CI/CD: CodePipeline 배포 및 검토 (3편)  (1) 2023.10.29
AWS CI/CD: CodePipeline 기본 설정 (1편)  (1) 2023.10.29
'AWS/CodePipeline, CICD' 카테고리의 다른 글
  • AWS CI/CD: CodePipeline 두 번째 빌드 오류 해결 (5편)
  • AWS CI/CD: CodePipeline 첫 번째 빌드 오류 해결 (4편)
  • AWS CI/CD: CodePipeline 배포 및 검토 (3편)
  • AWS CI/CD: CodePipeline 기본 설정 (1편)
Stark97
Stark97
문의사항 또는 커피챗 요청은 링크드인 메신저를 보내주세요! : https://www.linkedin.com/in/writedev/
  • Stark97
    오늘도 개발중입니다
    Stark97
  • 전체
    오늘
    어제
    • 분류 전체보기 (244)
      • 개발지식 (20)
        • 스레드(Thread) (8)
        • WEB, DB, GIT (3)
        • 디자인패턴 (8)
      • JAVA (21)
      • Spring (88)
        • Spring 기초 지식 (35)
        • Spring 설정 (6)
        • JPA (7)
        • Spring Security (17)
        • Spring에서 Java 활용하기 (8)
        • 테스트 코드 (15)
      • 아키텍처 (6)
      • MSA (14)
      • DDD (10)
      • gRPC (9)
      • Apache Kafka (18)
      • DevOps (23)
        • nGrinder (4)
        • Docker (1)
        • k8s (1)
        • 테라폼(Terraform) (12)
      • AWS (32)
        • ECS, ECR (14)
        • EC2 (2)
        • CodePipeline, CICD (8)
        • SNS, SQS (5)
        • RDS (2)
      • notion&obsidian (3)
      • 동아리 (0)
  • 링크

    • notion기록
    • 깃허브
    • 링크드인
  • hELLO· Designed By정상우.v4.10.0
Stark97
AWS CI/CD: CodePipeline 빌드 스테이지 추가 (2편)
상단으로

티스토리툴바