배포(CI/CD)

원지렁·2022년 10월 12일
0
post-thumbnail

오늘의 학습내용

1. CI/CD란?

CI/CD 단계

Code > Build > Test > Release > Deploy > Operate

CI(Continuous Integration)

자동화 프로세스의 지속적인 통합을 의미함
Code - Build - Test 단계에 해당

CD(Continuous Delivery/Deployment)

: 지속적인 서비스 제공/배포를 의미함
Release - Deploy - Operate 단계에 해당

2. 배포 자동화

CI/CD 파이프라인

코드가 빌드되면서 최종적으로 배포가 되는 단계를 자동화 단계로 만드는데, 이를 파이프라인을 구축한다고 함

파이프라인 구성 단계

  • Source 단계
    원격 저장소 소스 코드에 변경 사항이 있을 경우, 이를 다음 단계로 전달하는 작업을 수행함

  • Build 단계
    Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공함.

  • Deploy 단계
    Build 결과물을 실제 서비스에 반영하는 작업을 수행함

파이프라인 구성 요소

  • Build
  • Test
  • Release
  • Deploy
  • 규정 준수 및 유효성 검사

3. Github Action

Tool

이번 Github Action 실습을 위해서 아래와 같은 Tool들을 이용했다.

1) AWS - S3
2) Github Action

배포 과정

1) 내 Github 계정에 repository 생성

2) repository에 배포할 코드 push

3) .github/workflows/ 경로에 yml 파일 생성

(VScode에서도 설정 가능)

  • repository - Actions - New workflow 클릭

  • 필자는 js 기반 코드인 관계로 이에 해당하는 워크플로우를 생성하였음

  • 상세페이지에서 워크플로우 명칭과 내용을 설정해줄 수 있음

  • 워크플로우 내용

name: client // workflow 이름 설정
on:	// 어떤 event가 발생했을 때, workflow를 실행시킬지 설정(주로 push/pullrequest가 사용됨)
  push: 
    branches: // workflow를 실행시킬 branch 이름 기입
      - reference 
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
      - name: Build
        run: npm run build
        working-directory: ./my-agora-states-client
      - name: SHOW AWS CLI VERSION
        env: // 환경변수 설정(아래 설정에 따라 secret key를 발행해줘야 함)
          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 --version // aws버젼 확인
      - 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: | // Sync Bucket에 맞는 실행 조건 설정
          aws s3 sync \ // aws s3(AWS에서 제공하는 온라인 스토리지 웹 서비스) 활용
            --region ap-northeast-2 \ // 지역 설정(서울 코드)
            build s3://fe-76-wongee93 \ // s3 버킷명 기입
            --delete
        working-directory: ./my-agora-states-client 
  • ENV - Secret Key 발급
    repository - settings - secrets - actions

배포 URL

AWS S3 버킷 속성 하단의 '정정 웹 사이트 호스팅'에서 배포 url 확인이 가능함

profile
새싹 개발자 지렁이의 벨로그입니다.

0개의 댓글