[패스트캠퍼스] 웹 개발 강의(AWS 배포)
국비지원교육으로 패스트캠퍼스에서 진행하는 웹 개발 강의를 듣고 정리한 내용입니다.
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로 연결한다.