AWS | EC2 배포 후 서버 실행 (for MacOS)

Ruah·2024년 11월 5일
post-thumbnail

이미지 출처

이번 글은 MacOS에서 서버를 첫 실행 하는 방법을 알아보자.
만일 EC2 인스턴스생성 방법을 모른다면 >> EC2 배포 인스턴스 생성하기

먼저 pem 키가 있는 디렉토리로 이동

  • 이전에 저장한 pem키가 있는 디렉토리로 이동한다.
cd /Users/ruah_kim/Desktop/deploy/ai-assistant

권한 설정

# 읽기, 쓰기 가능한 600으로 설정해 주었다. 
chmod 600 test-name.pem

SSH접속 명령어 입력

  • pem 파일과
  • 이전에 미리 복사해 놓은 퍼블릭 IPv4 DNS
ssh -i <당신의 pem명>.pem ubuntu@<ec2 인스턴스 정보에서 복사한 주소>

# 이런식으로 생겼어요
ssh -i test-name.pem ubuntu@ec4-1-41-322-200.ap-northeast-2.compute.amazonaws.com
  • 성공했다면 아래와같이 출력

패키지 업데이트

  • Ubuntu에서 소프트 웨어 패키지를 설치, 관리, 업데이트 하는데 사용하는 패키지 관리자.
  • apt 명령어를 사용하면 필요한 소프트웨어를 빠르게 다운로드 하고 설치 가능.
    - 이를 통해 os와 호환되는 안정된 버전의 소프트 웨어를 설치할 수 있다.
sudo apt update 

https 관련 패키지 설치

  • Ubuntu 시스템에서 HTTPS를 통해 안전하게 다운로드를 진행할 수 있게 한다.
sudo apt install apt-transport-https ca-certificates curl software-properties-common

python 3.12 소스코드 다운로드

  • 원래 사용하던 python의 버전을 확인후 같은 버전으로 받아준다.
sudo apt install update python3.12 

Python 컴파일 및 설치

sudo apt install python3-pip

프로젝트 클론 및 기본설정

git clone https://github.com/<내 ID>/<레파지토리명>.git
cd <repository명>/
ls

가상환경 및 패키지 설치

# 파이썬 환경 설치
sudo apt install python3.12-venv

# 가상환경 만들기
python3.12 -m venv .myenv

# 가상환경 실행하기
source .myenv/bin/activate

# 필요한 라이브러리 설치 혹은 pip install 로 직접 설치도 가능하다.
pip install -r requirements.txt

환경변수 설정 파일 생성

  • 각 프로젝트마다 각자 원래 설정되어있는 .env 파일이 있을것이다. 새로 생성한 이환경에는 env 파일이 없으니 새로 만들어주어야 한다.
nano .env

  • 이와 같이 자신의 설정한 후 Ctrl+X > Y > Enter 순으로 눌러준다.

서버 실행

일반 백그라운드 실행

nohup uvicorn main:app --reload --host 0.0.0.0 --port 8000 &

오류메시지 발생시 확인을 위한 백그라운드 실행.

nohup uvicorn main:app --reload --host 0.0.0.0 --port 8000 > nohup.out 2>&1 &

로그확인

// 실시간 로그확인
tail -f nohup.out

// 에러부분만 확인
grep "ERROR" nohup.out | tail -n 50
grep -i "error" nohup.out | tail -n 50

//최신 로그 500줄 확인
tail -n 500 nohup.out

실행확인

  • 잘 실행이 되었나 확인한다
  • 아래와 같이나오면 잘 실행이 된 것이다.
lsof -i :8000

할당된 IP주소 이동

  • swagger가 잘 작동하는 것을 볼 수있다.

포트 죽이는 방법

  • 만일 배포한 서버를 끄고 싶다면 포트를 죽이고 인스턴스를 종료하거나 삭제하는 방법이 있다.
kill -9 <PID>

# 예시 
kill -9 1398
profile
집요한 주니어 개발자의 호되게 당했던 기록

0개의 댓글