Skip to content

NCloud CI CD 구축

ez edited this page Nov 8, 2024 · 3 revisions

NCloud CI/CD 구축하기

배포 환경

프론트엔드는 React를 사용하고 있고 백엔드는 Nest.js를 사용하고 있습니다.

React에서 정적 파일을 빌드하면 해당 정적 파일을 NCloud Object Storage에 업로드하고 NCloud Object Storage 정적 웹 사이트 호스팅을 통해 배포를 했습니다. http://octodocs.s3-website.kr.object.ncloudstorage.com/

Nest의 경우 NCloud Server에 배포를 하였고 데이터베이스인 postgres도 NCloud Server에 배포하였습니다.

image

CI/CD 도구

github actions를 사용했습니다.

NCloud Object Storage 프론트 배포

  1. main 브랜치에 push가 발생하면 리액트를 빌드합니다.
  2. dist 디렉토리 내부에 빌드된 정적 파일들이 생성되고 이 dist 디렉토리 내부 모든 파일들을 함께 NCloud Object Storage에 업로드 합니다.

NCloud Object Storage CLI는 aws-cli와 호환이 됩니다.

다만 github action으로 aws-cli를 사용하여 NCloud Object Storage에 접근할 때 다음과 같은 부분을 주의해야 합니다.

  1. endpoint-url이 필요합니다.
  2. region 설정을 해야 합니다.
      # aws cli를 통해 ncloud object storage 업로드
      - name: Configure AWS credentials
        env:
          NCLOUD_ACCESS_KEY_ID: ${{ secrets.NCLOUD_ACCESS_KEY_ID }}
          NCLOUD_SECRET_ACCESS_KEY: ${{ secrets.NCLOUD_SECRET_ACCESS_KEY }}
        run: |
          aws configure set aws_access_key_id $NCLOUD_ACCESS_KEY_ID
          aws configure set aws_secret_access_key $NCLOUD_SECRET_ACCESS_KEY
          aws configure set region ap-northeast-2
          aws --endpoint-url=https://kr.object.ncloudstorage.com s3 cp ./frontend/dist s3://octodocs/ --recursive --debug

NCloud Server 백엔드 배포

  1. main 브랜치에 push가 발생하면 배포 쉘 스크립트 파일을 NCloud Server로 전송한 뒤 실행합니다.
  2. github에서 최신 변경 사항을 pull 해옵니다.
  3. nest를 실행합니다.

개선 사항

  1. 프론트 코드만 push 되더라도 백엔드 서버도 다시 배포됩니다.

개발 문서

⚓️ 사용자 피드백과 버그 기록
👷🏻 기술적 도전
📖 위키와 학습정리
🚧 트러블슈팅

팀 문화

🧸 팀원 소개
⛺️ 그라운드 룰
🍞 커밋 컨벤션
🧈 이슈, PR 컨벤션
🥞 브랜치 전략

그룹 기록

📢 발표 자료
🌤️ 데일리 스크럼
📑 회의록
🏖️ 그룹 회고
🚸 멘토링 일지
Clone this wiki locally