파일을 수정하면, 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 |