sparta 웹개발 종합반 개발일지

Sparta 웹개발 종합반 5주차 11~19강 +숙제

나아눙 2022. 6. 3. 01:51

11. 서버 세팅하기

filezilla를 이용해서, 간단한 python 파일을 올린다.

컴퓨터를 사고 원격접속을 하여 폴더를 만들어보고 들어가보고 나와봤다.

filezilla는 내 컴퓨터에 있는 파일을 그냥 올려주는 업로더

다운로드 업로더해주는 프로그램

파이썬 파일 실행해보기

 

filezilla에서 왼쪽은 내 컴퓨터 오른쪽은 내가 지금 파일을 올리고 받을 컴퓨터

test.py 바탕하면으로 다운받고 sparta안에 넣는다.

파일을 실행하면 결과가 나옴
mongo 잘 설치되어있는지 확인
flask error
flask 설치
실행

서버 환경 통일하기

우리는 지금 막! 컴퓨터를 구매한 상태

여기에 이런저런 세팅들(업그레이드, DB설치, 명령어 통일 등)을 해줘야 본격적으로 이용할 때 편리

 

EC2 한방에 세팅하기 

initial_ec2

입력할 명령어를 모아 놓은 파일

 

이 파일의 권한 조정

 

이 파일 안에 있는 명령어들이 잘 실행될수 있도록한다.

pip 패키지 설치할때 클릭이 없다 대신 해줌

 

다시, 파이썬 파일을 실행해보기

Ec2컴퓨터에 서버를 본격적으로 돌려보겠다.

test.py에 app.py코드 넣고 실행

FileZilla에서 test.py->app.py로 수정

 

서버 환경 세팅 - 혼자 해보기

 

한국시간 세팅

EC2 컴퓨터의 시간대를 한국으로 맞추는 명령어

sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 

파이썬 (python3 → python)

python3 명령어를 python으로 사용할 수 있게 하는 명령어

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

 

pip (pip3 → pip)

pip3 설치

pip3 명령어를 pip으로 사용할 수 있게 하는 명령어

 

# pip3 설치

sudo apt-get update

sudo apt-get install -y python3-pip

 

# pip3 대신 pip 라고 입력하기 위한 명령어

sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

12. flask 서버를 실행해보기

AWS에서 우리가 샀는데

이 AWS 자체 방화벽이 있다.

자체적으로포트들을 꽤 막아서 풀어줘야한다.

 

인스턴스 사이트에서 보안 -> 보안그룹 ->인바운드 규칙편지

22번포트는 미리 열려져있다. 그래서 우리가 접속 가능한것ㅇ였다.

규칙 추가 -5000,80,27017(5000는 사용자지정 나머지는 위치무관)

27017 mongoDB도 우리가 밖에서 접속을 해봐야지 데이터가 잘들어갔는지 알수 있다.

 

기초저인 flask 서버 파일 만들기

app.py

filezilla를 통해 EC2에 업로드한 다음, 실행

flask 없다는 Error

명령어로 pip install flask

 

다시 flask 서버 실행해보기 

python app.py

 

아직 동작X -> AWS에서 설정이 더 필요

13. AWS에서 포트 열어주기

EC2 서버(=가상의 내 컴퓨터)에서 포트를 따로 설정하는 것 외에도,

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

->그래서 AWS EC2 Security Group에서 인바운드 요청 포트를 열어줘야 됨

 

일단, EC2 관리 콘솔로 들어간다.

그리고 보안그룹(영문: Security Group)을 눌러 들어감

여기선 launch-wizard-1 이라고 쓰여있음

 

해당 보안그룹을 클릭

 

Edit inbound rules 선택

 

세 가지 포트를 추가.

→ 5000포트: flask 기본포트

→ 27017포트: 외부에서 mongoDB 접속을 하기위한 포트

→ 80포트: HTTP 접속을 위한 기본포트

 

다시 접속하면 연결된다.

14. 원페이지쇼핑몰 업로드해보기

원페이지쇼핑몰을 서버에 올리고 서버를 실행

=>모든 사람이 볼수 있다.

원페이지 쇼핑몰은 데이터베이스를 이용한다.

db에 저장한다. 

 

Robo3T를 이용해서, "내 컴퓨터에서"→"서버에 있는 mongoDB"에 접속하기

 

원페이지쇼핑몰 완성본을 filezilla로 EC2에 업로드해봅니다.

MongoDB 접속 세팅을 바꾸기

AWS의 MongoDB에 아이디와 비밀번호를 추가했으니

pymongo에도 아이디와 비밀번호를 입력

pymongo가 올바르게 DB에 접근

 

client = MongoClient('mongodb://test:test@localhost', 27017)

client = MongoClient('mongodb://아이디:비밀번호@localhost', 27017)

같은뜻이다.

 

15. 포트포워딩

5000포트로 들어오면  플라스크를 만나고

27107포트로 들어오면 mongodb와 만난다.

80포트로 접속하면 안붙여도 된다.

http의 기본 포트로 80을 안붙여도된다.

80포트로 들어오는 요청을 5000포트로 돌아가고 있는 플라스크로 포워딩시켜준다.

이니셜세팅할때 해두었다.

그래서 5000빼고 해도된다.

 

  • 지금은 5000포트에서 웹 서비스가 실행
  • . 그래서 매번 :5000 이라고 뒤에 붙여줘야한다
  • http 요청에서는 80포트가 기본이기 때문에, 굳이 :80을 붙이지 않아도 자동으로 연결이 됩니다.
  • 포트 번호를 입력하지 않아도 자동으로 접속되기 위해, 우리는 80포트로 오는 요청을 5000 포트로 전달하게 하는 포트포워딩(port forwarding) 을 사용
  • 리눅스에서 기본으로 제공해주는 포트포워딩을 사용 

16. nohup 설정하기

SSH 접속을 끊어도 서버가 계속 돌게 하기

Git bash 또는 맥의 터미널을 종료하면 (=즉, SSH 접속을 끊으면) 프로세스가 종료되면서,

서버가 돌아가지 않는다.

그러나 우리가 원격접속을 끊어도, 서버는 계속 동작해야한다.

# 아래의 명령어로 실행하면 된다
nohup python app.py &

 

서버 종료하기 - 강제종료하는 방법

# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep 'app.py'

# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]

 

SSH 접속을 종료한 뒤, 접속

브라우저에서 접속하기

http://내AWS아이피/

 

돌고있는 것을 끄고

그다음에 지우고 filezilla에서 수정된 파일을 올리고 nohup로 실행시킨다.

 

ps -ef :모든 프로세스를 다 보여준다.

ps -ef | grep 'app.py' :모든 프로세스 중에서 app.py만 솎아내기

 

 

17. 도메인 구입하기

도메인을 구매한다는 것은, 네임서버를 운영해주는 업체에, IP와 도메인 매칭 유지비를 내는 것

한국 또는 글로벌 업체 어디든 상관 없지만, 우리는 한국의 '가비아'라는 회사에서 구입

 

https://my.gabia.com/service#/

 

웹을 넘어 클라우드로. 가비아

그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브

www.gabia.com

DNS 관리툴 클릭

DNS 설정 클릭

레코드 수정

레코드 추가

호스트 이름에 @, IP주소에 IP주소를 입력합니다

 

sycoding.shop로 접속하면 나온다.

 

18. og 태그

og 태그 만들기

static 폴더 아래에 이미지 파일을 넣고,

각자 프로젝트 HTML의 <head>~</head> 사이에 아래 내용을 작성하면 og 태그를 개인 프로젝트에 사용할수있다.

 

1. "내 사이트의 제목" 입력하기

2. "보고 있는 페이지의 내용 요약" 입력하기

3. 적당한 이미지를 만들거나/골라서 static폴더에 ogimage.png로 저장하기! (사이즈 800x400인 이미지를 구글에서 검색!)

 

index.html에서 head안에 넣음

마지막에 static 폴더안에 있는 ogimage.png 파일을 읽어오기

FileZilla로 올린다.