드레:
코딩 뿌시기
드레:
전체 방문자
오늘
어제
  • 분류 전체보기 (268)
    • Python (74)
      • Python 기초 (42)
      • Numpy (8)
      • Pandas (22)
    • Machine Learning (31)
      • Machine Learning (1)
      • Deep Learning (27)
    • AWS (22)
      • RDS (3)
      • EC2 (9)
      • Lambda (8)
      • S3 (2)
    • MySQL (24)
    • Git (8)
    • Streamlit (12)
    • REST API (22)
    • Java (24)
    • Android (36)
    • Debugging (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • GET
  • 액션바
  • Callback
  • 안드로이드 스튜디오
  • AWS
  • API
  • pandas
  • CNN
  • aws s3
  • Lambda
  • Python
  • flask
  • 깃이그노어
  • Java
  • Streamlit
  • rest api
  • 서버리스
  • fine tuning
  • AWS Lambda
  • Transfer Learning
  • Ann
  • tensorflow
  • EC2
  • serverless
  • 딥러닝
  • JWT
  • 네이버 API
  • volley
  • github
  • Retrofit2

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
드레:

코딩 뿌시기

GitHub Actions를 이용한 EC2 서버 CI/CD
Git

GitHub Actions를 이용한 EC2 서버 CI/CD

2022. 12. 20. 11:44

파일을 수정하면, EC2 서버에 자동 배포하는 법을 알아보자.

AWS EC2에 접속하려면 호스트주소, 키파일, username이 있어야 한다.

깃허브가 자동으로 EC2 서버에 접속해서 배포하려면 이 정보들을 가지고 있어야 한다.

 

 

1. PPK 키 파일을 PEM으로 변환

 

먼저 키파일 확장자가 ppk라면 윈도우즈 용이므로 리눅스용인 pem 파일로 변환해줘야 한다.

 

PuTTYgen 실행

Load를 눌러 내 키파일을 등록한다.

 

 

conversions - Export OpenSSH key 선택 후, 파일명.pem으로 저장한다.

 

 

 

2. Action secrets 를 만든다.

 

EC2 접속에 필요한 호스트주소, 키파일, username을,

github 레파지토리 Action secrets에 저장한다.

 

New repository secret 클릭

 

  • (1) 호스트주소

이름을 짓고, EC2 서버의 퍼블릭 주소를 넣고 add secret.

 

  • (2) username

EC2 서버에 접속할 때 쓰는 유저명

 

 

  • (3) pem 키파일

secret 내용을 쓰는 곳에 pem 키파일을 드래그앤드랍 하면 새 창이 열리는데

그 창의 내용을 복사해서 붙여넣는다.

 

3. GItHub Actions의 workflow 만들기

 

 

 

다음과 같이 입력하고 commit 한다.

이제 github에 push하면 자동으로 EC2 서버에 pull 하게 된다.

name: ec2 deploy
on:
  push:
    branches:
      - main
      
jobs:
  SSH:
    runs-on: ubuntu-latest
    
    steps:
      - uses: actions/checkout@v3
      - name: ssh to ec2
        uses: appleboy/ssh-action@master
        with:
          key: ${{secrets.SSH_PRIVATE_KEY}}
          host: ${{secrets.HOST}}
          username: ${{secrets.USER}}
          script: |
            cd streamlit_car_price_app
            git pull

 

 

 

로컬에서 push 해보니 정상적으로 동작하고 있다.

 

 

 

※ 레파지토리를 private으로 만든 경우

 

private 레파지토리라면 접속할 때 인증이 필요하기 때문에

main.yml 맨 마지막 줄 git pull을 수정해야 한다.

git pull https://[사용자ID]:[토큰]@[git주소]

 

토큰이 노출되면 곤란하니  secret에 등록해서 사용한다.

git pull https://${{ secrets.GIT_USER }}:${{ secrets.GIT_PASSWORD }}@github.com/reodinas/streamlit_kmeans.git

'Git' 카테고리의 다른 글

GitHub에 잘못 올린 파일 제거 및 히스토리에서 삭제  (0) 2023.03.31
특정 프로젝트에 있는 파이썬 패키지만 requirements.txt 로 만들기 - pipreqs  (0) 2022.12.23
GitHub 사용 방법 - Commit, Push, Pull  (0) 2022.12.12
GitHub 사용 환경 구축하기(2) - Visual Studio Code 연동  (0) 2022.12.12
GitHub 사용 환경 구축하기(1) - 클론 만들기  (0) 2022.12.12
    'Git' 카테고리의 다른 글
    • GitHub에 잘못 올린 파일 제거 및 히스토리에서 삭제
    • 특정 프로젝트에 있는 파이썬 패키지만 requirements.txt 로 만들기 - pipreqs
    • GitHub 사용 방법 - Commit, Push, Pull
    • GitHub 사용 환경 구축하기(2) - Visual Studio Code 연동
    드레:
    드레:

    티스토리툴바