[5주차]_ 서버배포

acacia·2022년 9월 11일
0
post-thumbnail

1. 서버 배포하기 준비

서버 = 컴퓨터!!
언제나 요청에 응답하려면?
: 컴퓨터가 항상 켜져있고 프로그램이 실행되어 있어야 한다.
-> AWS라는 클라우드 서비스에서 항상 켜 놓을 수 있는 컴퓨터인 EC2사용권을 구입해 서버로 사용하는 방법
: 모두가 접근할 수 있는 public IP address로 웹 서비스에 접근 할 수 있도록 해야한다.

filezilla 설치

filezilla

가비아 도메인 구입

gabia

2. AWS서버 구매 및 접속

1) ubuntu server 구매

2) keypair 생성 & 다운로드

3) keypair 접근 권한 바꿔주기

-terminal에 아래 코드를 작성한다

sudo chmod 400 (키페어) 

4) SSH로 접속

ssh (secure shell protocol)
: 다른 컴퓨터로 접속할 때 사용하는 프로그램으로 다른 것들보다 상대적으로 보안이 뛰어나며, 접속할 컴퓨터의 22번 포트가 열려있어야 접속 가능하다.

ssh -i (키페어) ubuntu@(AWS의 instance ip주소)

5) key fingerpring

관련 메세지가 나올 경우 yes입력

리눅스 
=> "쉘 명령어"를 통해 os를 조작한다
[가장 많이 쓰는 명령어]

ls : 현 위치의 모든 파일을 보여준다
pwd : 현 위치(경로)를 알려준다
mkdir : 현 위치 아래에 폴더를 하나 생성한다
cd [폴더명] : 폴더 내로 이동
cd .. : 상위 폴더로 이동
cp -r [복사할 것] [붙여넣기 할 것]: 복사/붙여넣기
rm -rf[지울 것] : 지우기
sudo [실행 할 명령어] : 명령어를 관리자 권한으로 실행한다
sudo su: 관리자 권한으로 들어간다

3. 서버 세팅하기

컴퓨터를 구매했으니, 세팅(업그레이드, db설치, 명령어 통일 등)을 해주어야 함.

1) AWS서버 구매 및 접속의 5) 이후 아래 코드 한줄씩 입력

~~# python3 -> python~~ 

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
:python3 명령어를 python으로 사용할 수 있게하는 명령어




~~# pip3 -> pip~~   

sudo apt-get update
sudo apt-get install -y python3-pip
: pip3설치

sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
: pip3 명령어를 pip으로 사용할 수 있게 하는 명령어



~~ # port forwarding~~  

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
: 80포트로 들어오는 요청을 5000포트로 넘겨주는 명령어
 sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

포트 번호 없애기
만약 5000포트에서 웹 서비스가 실행될 경우, 매번 :5000을 뒤에 붙여야함.하지만, htt
p 요청에서 80포트는 기본으로 사용되기 때문에,:80을 붙이지 않아도 자동으로 연결이 됌.
포트 번호를 입력하지 않아도 자동으로 접속되기 위해선, 80포트로 오는 요청을 5000 포트로
전달하게 하는 포트포워딩(port forwarding) 을 사용하면 됌.

2) Filezilla 실행 및 설정



3) pip 로 패키지 설치하기

pip install flask
pip install pymongo 
pip install dnspython
pip install certifi -나의 경우엔 certifi도 해주었음

4) flask 서버 실행

python app.py

5) AWS에서 5000포트 열어주기

: AWS EC2에서 자체적으로 포트를 열고/ 닫을 수 있게 관리하고 있다.

EC2 관리콘솔 -> security group -> 인바운드 규칙 수정 -> 인바운드 규칙 추가

2가지 포트를 추가한다

80포트 | http접속을 위한 기본포트- ' anywhere-IPv4 '
5000포트 | flask기본포트 - ' anywhere-IPv4 '

6) nohup 설정

: ssh접속을 끊어도 서버가 계속 돌게하기 위한 명령어 실행

nohup python 파일명.py &
      
  
반대로, 강제종료 하기 위한 코드
ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill

7) 도메인 연결하기

가비아 접속 -> DNS 설정 -> ip주소에 AWS의 instance ip주소입력 -> 확인 및 저장 

4. og 태그 만들기

og 태그 코드

head태그 사이에 아래 내용 작성

<meta property="og:title" content="내 사이트의 제목" />
<meta property="og:description" content="보고 있는 페이지의 내용 요약" />
<meta property="og:image" content="이미지URL" />
profile
게으른 개발자의 부지런한 개발일지

0개의 댓글