• 프로필사진
    Home
  • Portfolio
  • github [#ffffff] Created with Sketch.
    Github
  • linkedin
    Linkedin
  • Setting
  • Posting
    • 분류 전체보기 (105)
      • Aws (96)
      • Backend (3)
      • Extension (1)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • RollingUpdate로 CodeCommit 업데이트 시 ECS 서비스 업데이트 하기
        2024년 12월 24일
        • wngnl05
        • 작성자
        • 2024.12.24.:47

        Link

         

        Codecommit 특정 브런치에 업로드 이벤트가 발생하면

        CodePipeline이 감지하고 Codedeploy, Codebuild 실행해서

        ECS의 서비스를 업데이트 해주도록 구축해보겠습니다.

         

         

         

        우선 ECS에서 클러스터를 생성하고 서비스를 ALB와 연결해서 배포해주세요.

         

        이제 Codecommit을 생성하고 Instance에서 "git clone"으로 접속해줍니다.

        2023.09.30 - [Aws] - Codecommit에 Push 하는 방법

        Codecommit에서 브런치를 하나 생성하고 Dockerfile이랑 buildspec.yml파일을 작성해줍니다.

        Dockerfile은 사용자의 앱에 맞게 작성하고

         

        version: 0.2
        
        phases:
          pre_build:
            commands:
              - <ECR 푸시 인증>
              - ECR_URI=<ECR URI>
              - IMAGE_TAG=$(date -d +9Hours "+%Y-%m-%d.%H.%M.%S")
          build:
            commands:
              - docker build -t my_image .
          post_build:
            commands:
              - docker tag my_image:latest $ECR_URI:$IMAGE_TAG
              - docker push $ECR_URI:$IMAGE_TAG
              - printf '[{"name":"<ECS 서비스 컨테이너 이름>","imageUri":"%s"}]' $ECR_URI:$IMAGE_TAG > imagedefinitions.json
        
        artifacts:
          files: imagedefinitions.json

        buildspec.yml은 내용을 수정하고 저장해줍니다.

        codecommit에 업로드 해주고

         

         

        Aws Console로 이동해서 Codedeploy를 ECS로 생성해줍니다.

        Codebuild는 소스 공급자를 Codecommit을 선택하고 브런치는 위에서 생성한 걸로 선택해줍니다.

         

         

        CodePipeline으로 이동해서 

        소스 공급자 : Codecommit    // 선택한 브런치로 업로드가 될시 pipeline을 실행합니다.

        Amazon CloudWatch Events(권장)를 선택하고

         

        빌드 : 위에서 만든 빌드를 선택해줍니다.

         

        배포 : ECS를 선택하고 cluster, service를 선택하고 "이미지 정의 파일"은 imagedefinitions.json로

        적고 생성해줍니다.

        imagedefinitions.json

         

         

        이제 Codecommit에서 특정 브런치로 업로드 하면 Pipeline을 통해 Codebuild를 실행하고 
        Codebuild에서 새로운 ECR이미지를 만들고

        새로 만든 ECR이미지로 ECS의 Servcice - 컨테이너 이미지를 수정해줍니다.

         

         

         

         

         

        저작자표시 비영리 변경금지 (새창열림)

        'Aws' 카테고리의 다른 글

        RDS SecretManger 생성하기  (0) 2024.12.24
        Blue&Green을 이용해서 CodeCommit 업데이트 시 ECS의 서비스 업데이트 하기  (0) 2024.12.24
        Codebuild에서 CodeCommit ID를 태그로 ECR에 업로드  (0) 2024.12.24
        S3에서 이벤트 발생시 람다를 이용해서 CloudFront 무효화 하기  (1) 2024.12.24
        Kinesis Stream에 레코드 전송  (1) 2024.12.24
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바