102일차 - aws (Jenkins vs Github Actions, Github Actions로 리액트앱 자동빌드 및 배포, 스프링 API EC2 배포 마무리)

Yohan·2024년 7월 24일
0

코딩기록

목록 보기
144/156
post-custom-banner

Jenkins vs Github Actions

둘 다 강력한 자동화 도구로 지속적 통합(CI)과 지속적 배포(CD) 파이프라인을 구축하는 데 사용됨

  • jenkins
    • 서버에 직접 설치 필요
    • 유지 관리 필요
    • 대규모 시스템에 적합
    • 가장 유연한 플러그인 시스템
  • Github Actions
    • 서버에 직접 설치 필요 X (깃허브에서 실행)
    • 소, 중규모 시스템에 적합
    • 푸시하거나 풀리퀘스트를 생성할 때 자동으로 작업 실행

Github Actions(Jekins와 )로 리액트앱 자동빌드 및 배포

  • npm run build, npm run deploy 했던 것을 자동화하겠다는 뜻!
  • 자동화 시키고싶은 프로젝트에 가서
  • setting - Secrets and variables - Actions
  • Repository secrets에 4개를 생성
  • ACCESS KEY, SECRET ACCESS KEY를 생성하고 내 REGION에 대한 코드 입력, 버킷의 이름을 입력해줌
  • React로 넘어와서 .github 폴더, workflows폴더, deploy.yml 생성
  • deploy.yml
name: Deploy React App to S3 # 배포 설정파일 이름

on:
  push:
    branches:
      - main  # main 브랜치에 푸시될 때 설정파일이 실행되게함

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4  # 리포지토리 코드 체크아웃

    - name: Set up Node.js
      uses: actions/setup-node@v4
      with:
        node-version: '20'  # Node.js 버전 지정

    - name: Install Dependencies
      run: npm install  # 의존성 설치

    - name: Build React App
      run: CI=false npm run build  # 프로덕션 빌드 생성

    - name: Deploy to AWS S3
      uses: jakejarvis/s3-sync-action@master
      with:
        args: --delete  #  불필요한 파일 삭제
      env:
        AWS_S3_BUCKET: ${{ secrets.S3_BUCKET }}
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        AWS_REGION: ${{ secrets.AWS_REGION }}
        SOURCE_DIR: 'build'  # 빌드된 파일이 있는 디렉토리
  • 이제 변경사항 코드와 yml을 푸시하게되면?
    -> 푸시할 때 마다 자동 배포, 빌드 되는 것을 볼 수 있음

스프링 API EC2 배포 마무리

  • putty에서
  • java -jar event.api-0.0.1-SNAPSHOT.jar 자동으로 서버가 꺼지는 실행의 문제를 해결하기 위해 백그라운드에서 실행
  • nohup java -jar event.api-0.0.1-SNAPSHOT.jar &로 실행
  • ps -ef | grep java 를 실행하면 지금 돌아가고 있는 시스템이 보임
  • 숫자 4개 떠있는게 프로세스 id인데 kill -9 2619처럼 입력하게되면 톰캣이 종료됨
profile
백엔드 개발자
post-custom-banner

0개의 댓글