POST & GET을 활용한 웹페이지 제작 , 웹 서비스 런칭
내가 만든 프로젝트를 배포하려면?
필요사항)
👉 컴퓨터가 항상 켜져있고 프로그램이 실행되어 있어야하고,
👉 모두가 접근할 수 있는 공개 주소인 공개 IP 주소로 나의 웹 서비스에 접근할 수 있도록 해야 한다.
👉 서버는 just 컴퓨터이다.( 서버=컴퓨터 ) 외부 접속이 가능하게 설정한 다음에 내 컴퓨터를 서버로 사용할 수도 있다.
AWS 라는 클라우드 서비스에서 편하게 서버를 관리하기 위해서 항상 켜 놓을 수 있는 컴퓨터인 EC2 사용권을 구입해 서버로 사용한다.
# 간단한 리눅스 명령어
ls: 내 위치의 모든 파일을 보여준다.
pwd: 내 위치(폴더의 경로)를 알려준다.
mkdir: 내 위치 아래에 폴더를 하나 만든다.
cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
cd .. : 나를 상위 폴더로 이동시킨다.
cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기
rm -rf [지울 것]: 지우기
sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)
# SSH란?
🔐SSH(Secure Shell Protocol)
다른 컴퓨터에 접속할 때 쓰는 프로그램이며 보안이 상대적으로 뛰어나다.
접속할 컴퓨터가 22번 포트가 열려있어야 접속이 가능하다. AWS EC2의 경우, 이미 22번 포트가 열려있다.
#1. AWS 서버 구매 및 접속
내가 원하는 서버(컴퓨터)의 설정을 정하고, 거기에 컴퓨터를 실행시키기 위한 운영체제를 설치한다.
아래 예제에선 OS로 Linux의 Obuntu를 설치한다.
1. AWS에 로그인 후, 인스턴스란에서 Ubuntu를 선택한 뒤, Ubuntu Server 20.04 버전을 선택한다.(1년 무료)
2. 키 페어를 생성한 후, 키 페어를 다운로드하여 바탕화면에 둔다.
키 페어 이름은 본인이 정하고, 유형은 RSA 키 파일 형식은 .pem으로 설정한다.
3. 조금만 시간이 지나면 아래와 같이 인스턴스 상태에 실행 중이라고 뜨게되면 생성 성공
4. AWS EC2에 접속한다.
4-1. 방금 생성한 인스턴스를 클릭 후 퍼블릭 IPv4주소를 복사한다.
4-2. Gitbash를 실행한 후 , AWS EC2에 접속한다
window는 ssh가 없으므로, git bash프로그램을 이용한다.
ssh -i ( 다운로드 받은 키페어 끌어넣기) ubuntu@(복사한 IPv4주소)
위와 같이 접속 성공한 것을 볼 수 있다.
5. 명령어를 통해 폴더 생성 및 폴더간 이동
mkdir sparta ( sparta 폴더 생성 ) 명령어 생략
#2. 서버 세팅
지금 막 컴퓨터를 구매한 상태이기 때문에 , 이런저런 세팅들(업그레이드 ,DB설치, 명령어 통일 등)을 해줘야한다.
1. EC2 세팅
python3 -> python
# python3 -> python
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
# pip3 -> pip
sudo apt-get update
sudo apt-get install -y python3-pip
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
# port forwarding
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
#flask 설치
pip install flask
#pymongo 설치
pip install pymongo
#dnspython설치
pip install dnspython
위의 명령어들을 AWS EC2에 접속한 상태에서 한줄한줄 입력시켜준다.
2. FileZilla 를 실행하여 EC2에 연결시켜준다.
상단의 맨좌측탭의 아이콘을 클릭한 뒤, New site 클릭 후, 오른쪽의 체크된 부분을 통일시켜준다.
여기서 호스트는 복사한 IPv4 주소이며, 키 파일은 아까 저장한 .pem 파일이다.
3. 올릴 프로젝트를 EC2에 옮겨준다.
static, templates, app.py 만 선택하여 오른쪽으로 옮겨준다. ( 나머지는 필요없음 )
4. 5000번 포트를 열어준다.
4-1. 아까 인스턴스탭에서 보안탭으로 간 후, 보안 그룹을 클릭한다.
4-2. 인바운드 규칙 편집을 눌러준 후, 인바운드 규칙을 추가하여 5000번 포트를 추가한다.
5. nohup 설정
현재 상황은 Git bash 또는 맥의 터미널을 종료하면( = 즉, SSH 접속을 끊으면) 프로세스가 종료되면서, 서버가 돌아가지 않고있다. 따라서 우리는 원격접속을 끊어도, 서버는 계속 동작하게 해야한다.
원격 접속을 종료하더라도 서버가 계속 돌아가게 하기
nohup python app.py &
Gitbash를 끄고 방금 IPv4 주소에 접속해도 계속 접속되는 것을 볼 수있다.
서버를 끄려면?
nohup 강제종료
ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill
'항해 부트캠프 > 스파르타 코딩 교육' 카테고리의 다른 글
스파르타 코딩 교육) 웹 개발 종합 교육 4주차 개발일지 (0) | 2022.06.09 |
---|---|
스파르타 코딩 교육) 웹 개발 종합 교육 3주차 개발일지 (0) | 2022.06.07 |
스파르타 코딩 교육) 웹 개발 종합 교육 2주차 개발일지 (0) | 2022.05.23 |
스파르타 코딩 교육) 웹 개발 종합 교육 1주차 개발일지 (0) | 2022.05.23 |