Github Actions 은 Github에서 제공하는 워크플로우(workflow)를 자동화하도록 도와주는 도구이다.
CI/CD 는 지속적 통합 ( Continuous integration ) 과 지속적 배포 ( Continuous delivery ) 를 의미한다.
Github Actions 을 설정하는 방법이다.
먼저 윈도우즈 사용자라면, EC2에 접속할 .pem 파일을 해야한다.
만약 윈도우즈에서 .ppk 파일로 사용중이였다면 putty key generator 툴을 이용하여서 .pem 파일로 변환을 해주어야 한다.
1. putty key generator 툴을 실행 시킨 후, 기존 ppk 파일을 load
2. Conversions 메뉴 선택 - Export Open SSH 선택후 파일명.pem 형식으로 저장을 해준다.

github 사이트의 actions 를 설정하고자 하는 프로젝트에 들어간 후,
setting - 사이드바의 secrets - actions 를 클릭하여서 SSH_PRIVATE_KEY, USER, HOST 키를 설정해주어야 한다.

New repository secret 을 클릭하여서 시크릿을 생성해준다.
SSH_PRIVATE_KEY 에는 위에서 설정한 .pem 파일을 copy and paste 를 해준다.
HOST 에는 AWS - EC2 에서 생성한 인스턴스를 넣어준다.
USER 에는 ec2 에 접속할 때, 로그인 했던 명령어를 넣어주면 된다.
현재는 ec2 에서 기본으로 제공을 해주는 ec2-user 를 사용하고 있기때문에, ec2-user 를 입력하면 된다.
설정이 완료되었으면, Actions - set up a workflow yourself 를 클릭한다.

github actions 의 workflow 를 만든다.
아래는 작성한 소스코드를 푸시하면 자동으로 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
github actions 를 모두 설정하였다면, 이제 putty 를 이용하여서, streamlit 을 서버에 배포하면 된다.
하지만 기존에 사용하였던 nohup streamlit 명령어를 이용하면, streamlit 서버가 소스 코드 바뀐 것을 반영하지 못한다.
따라서 스트림릿의 실행 명령을 아래처럼 수정 해준다.
nohup streamlit run 파일명.py --server.port 포트번호 --server.runOnSave true &
'AWS' 카테고리의 다른 글
| [Serverless] AWS 에서 IAM 을 이용하여 API 배포하기 (0) | 2023.01.10 |
|---|---|
| AWS EC2 - 리눅스(linux) 운영체제에서 한글 사용하기 (한글 깨짐) (0) | 2022.12.22 |
| 하나의 EC2 서버에 여러개의 앱을 돌리는 방법 (0) | 2022.12.16 |
| AWS 방화벽에 8501 등의 포트 추가하기 (0) | 2022.12.15 |
| 스트림릿을 ec2 서버에서 실행시킬때, 터미널 접속을 끊어도 24시간 365일 돌아가도록 하는 방법 (0) | 2022.12.14 |