패스트캠퍼스/웹개발

[패스트캠퍼스] 웹 개발 강의(AWS 배포)

Rosie, Lee 2023. 4. 23. 18:34

국비지원교육으로 패스트캠퍼스에서 진행하는 웹 개발 강의를 듣고 정리한 내용입니다.


AWS

서버 준비

배포를 위해 클라우드 혹은 서버환경을 구성하는데, 여기서는 AWS EC2를 가지고 서버 구성을 한다.

  • AWS > 컴퓨팅 > EC2 > 상단 오른쪽에 리전도 꼭 서울로 체크
  • 인스턴스 = 컴퓨터
    • 인스턴스 시작은 컴퓨터를 하나 만드는 것이다. 여기다 운영체제를 설치, 성능 선택 등 할 수 있다.
  • 키페어(접속을 위한 키) 생성
    • 키를 잃어버리면 접속할 수 없으니 잘 관리해야 한다.
  • 웹사이트 제공용이니 SSH, HTTP, HTTPS 트래픽 허용 모두 체크한다.

설정 값 스크린샷

퍼블릭 IPv4 주소가 서버의 IP이다.

 

코드 수정

기존에 python으로 작업한 코드에서 host와 port를 수정해줘야 한다.

# 다른 주소로도 접속할 수 있도록 설정
# 0.0.0.0 = 모든 주소로 접속할 수 있다.
# 웹사이트는 기본적으로 사용하는 포트가 80이다.
app.run(host='0.0.0.0', port='80')

 

서버에 소스코드 업로드

소스코드 업로드를 위해 Filezilla 설치해서 SFTP 방식으로 업로드할 수 있다.

또는 ssh로 서버 접속하여 옮길 수도 있다.(vscode의 Remote - SSH 확장프로그램을 사용)

 

서버에 필요한 패키지 설치

소스코드를 업로드하고 나서 EC2 서버 접속(AWS 인스턴스에서 연결 버튼 클릭해서 연결도 가능)해서 필요한 패키지를 설치한다.

sudo pip3 install flask Flask-PyMongo

MongoDB 설치

설치는 MongoDB의 문서를 참고해서 한다.

https://www.mongodb.com/docs/v4.4/tutorial/install-mongodb-on-amazon/

 

Install MongoDB Community Edition on Amazon Linux — MongoDB Manual

Docs Home → MongoDB Manual MongoDB AtlasMongoDB Atlas is a hosted MongoDB service option in the cloud which requires no installation overhead and offers a free tier to get started.Use this tutorial to install MongoDB 4.4 Community Edition on Amazon Linux

www.mongodb.com

vim /etc/yum.repos.d/mongodb-org-4.4.repo

vim에서 아래 내용 붙여 넣고 저장(ESC클릭 누르고 -> :wq)

[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

mongoDB 설치

sudo yum install -y mongodb-org

monogDB 시작

sudo systemctl start mongod

실행 됐는지 확인(active(runngin) 나오면 실행 확인)

sudo systemctl status mongod

python3 실행(리눅스에는 python2와 python3가 기본적으로 설치되어 있어서 3를 꼭 명시해 줘서 실행해야 한다.)

sudo python3 app.py

그러면 IP가 생성된다. 그 IP로 접속이 가능하다.

 

백그라운드에서 실행

그런데 python3를 종료하면 다시 접속이 안된다.

python3가 계속 실행 중이어야 된다.

그래서 nohub을 사용한다.

sudo nohup python3 app.py &

다시 IP로 접속하면 정상 동작함

 

도메인 연결

네임서버 관리에서 A레코드(웹사이트 연결) 추가한다. (호스트 추가도 가능하다 (ex: www))

연결 IP에 python3 실행했던 IP로 연결한다.

반응형