CI /CD , 배포자동화

유희준·2023년 6월 5일
0

section4

목록 보기
6/7

CI/CD (Continuous Integration/Continuous Delivery)는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법입니다.

CI/ CD 차이점

CI는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미합니다. 지속적인 통합이 제대로 구현되면 애플리케이션 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유 리포지토리에 병합됩니다. 따라서 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌하는 문제를 이 방법으로 해결할 수 있습니다.

개발자를 위한 자동화 프로세스라고 볼 수 있으며, Code - Build - Test 단계에서 꾀할 수 있습니다.

CD는 지속적인 서비스 제공(Continuous Delivery) 및/또는 지속적인 배포(Continuous Deployment)를 의미하며 이 두 용어는 상호 교환하여 사용됩니다. 두 가지 의미 모두 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 합니다.

지속적인 제공이란 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리(예: GitHub 또는 컨테이너 레지스트리)에 자동으로 업로드되는 것을 뜻하며, 운영팀은 이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있습니다. 이는 개발팀과 비즈니스팀 간의 가시성 및 커뮤니케이션 부족 문제를 해결해 줍니다. 그러므로 지속적인 서비스 제공은 최소한의 노력으로 새로운 코드를 배포하는 것을 목표로 합니다.

Release - Deploy - Operate 단계에서 꾀할 수 있습니다.

S3자동화 배포

사전작업

  • 아마존 aws에서 버켓을 만들어야 한다.
  1. 프로젝트 파일에 yml파일을 추가해 준다.
name: client // action에 보여주는 이름
on:
  push:
    branches:
      - reference //push되는 브랜치 이름
jobs:
  build:
    runs-on: ubuntu-20.04
    steps:
      - name: Checkout source code.
        uses: actions/checkout@v2
      - name: Install dependencies
        run: npm install
        working-directory: ./my-agora-states-client-react
      - name: Build
        run: npm run build
        working-directory: ./my-agora-states-client-react
      - name: SHOW AWS CLI VERSION
        run: |
          aws --version
      - name: Sync Bucket
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          AWS_EC2_METADATA_DISABLED: true
        run: |
          aws s3 sync \  //sync : 수정파일만 업데이트 , cp는 모든 파일 업데이트
            --region ap-northeast-2 \ 
            build s3://fe-72-heejuneyu-s3 \  // 버켓이름
            --delete // 업로드시 삭제된 파일이 있다면, 버킷에서도 이를 적용하여 해당 파일을 삭제한다.
        working-directory: ./my-agora-states-client-react
  1. push 하면 자동으로 빌드된다.

이후 아마존 s3에서 수정확인

참조자료 - https://www.redhat.com/ko/topics/devops/what-is-ci-cd
- https://velog.io/@shinnh2/Github-Actions-AWS-S3-yml

profile
매일 뭐든하기

0개의 댓글