AWS EC2 배포(3)

김형진·2025년 1월 16일

git action 설정

작성해둔 git action 내용을 확인하고 포스팅을 보면 된다.

git action: https://velog.io/@isacc7224/Git-action

name: Deploy to EC2

on:
  push:
    branches:
      - master  

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18

      - name: Install dependencies and build
        run: |
          npm install
          npm run build

      - name: Deploy to EC2 (Using Domain)
        uses: appleboy/scp-action@v0.1.4
        with:
          host: ${{ secrets.EC2_HOST }} 
          username: ${{ secrets.EC2_USER }}
          key: ${{ secrets.EC2_SSH_KEY }}
          source: "dist/*"
          target: "/var/www/mynote"

      - name: Restart Nginx
        uses: appleboy/ssh-action@v0.1.10
        with:
          host: ${{ secrets.EC2_HOST }}  
          username: ${{ secrets.EC2_USER }}
          key: ${{ secrets.EC2_SSH_KEY }}
          script: |
            sudo systemctl restart nginx

git에 푸시할때 git action ubuntu 환경에서 앱을 build 후 dist폴더를 ec2 인스턴스/var/www/mynote 경로에 전달해 배포함

scp 방법사용

  • ${{ secrets.EC2_HOST }}: 내 도메인
  • ${{ secrets.EC2_USER }}: ubuntu (접속 유저 이름)
  • ${{ secrets.EC2_SSH_KEY }}: 인스턴스 pem키 내용

실행 중 폴더 접근 권한이 부족하다면 ec2 인스턴스에서 ubuntu 유저 mynote폴더에 대한 권한 부여

sudo chown -R ubuntu:ubuntu /var/www/mynote
sudo chmod -R 775 /var/www/mynote

0개의 댓글