[웹개발일지] #12. 서버 업로드하기(AWS, EC2, filezila)
풀스택 웹개발 공부 기록하기 #12.
😉지금까지 만들었던 프로젝트를 배포하기 위한 작업!😉
AWS 서버를 구매하여 클라이언트의 요청에 항상 응답해줄 수 있는 서버를 만든다.
filezilla를 이용해서 서버에 파일을 업로드한다.
💾 AWS(Amazon Web Services) EC2
언제나 요청에 응답하려면
1. 컴퓨터가 항상 켜져 있고 프로그램이 실행되어 있어야 하고,
2. 모두가 접근할 수 있는 공개 주소인 공개 IP 주소(Public IP Address)로 나의 웹서비스에 접근할 수 있도록 해야한다.
이를 위해 필요한 것이 AWS라는 클라우드 서비스!!
AWS에서 편하게 서버 관리를 하기 위해서 항상 켜 놓을 수 있는 컴퓨터인 EC2 사용권을 구입해 서버로 사용할 것!
EC2 사용은 1년간 무료로 가능하고 그 후, 자동결제되므로 계속 사용하지 않을 거면 종료하는 법 알고 있는 것이 좋다.
https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2
위 사이트에서 가입 후 EC2 서버 구매가 가능하다.
🔽 구매한 서버 🔽
💻EC2 접속하기
mac은 ssh가 있어서 터미널에서 바로 서버 접근이 가능하지만
windows는 ssh가 없으므로 git bash를 이용해야 함!
※ 여기서 ssh란?
secure shell protocol로 다른 컴퓨터에 접속할 때 쓰인다.
보안이 우수하고 접속할 컴퓨터가 22번 포트가 열려있어야 접속이 가능하다.
aws ec2의 경우 22포트 열려있음!!
👉 1. git bash 실행
👉 2. 받은 키페어 끌어오기(끌어오면 자동으로 키페어가 저장된 루트 입력됨)
👉 3. aws에 적힌 내 ip입력(퍼블릭 IPv4 주소)
ssh -i 키페어 ubuntu@내ip
※ 종료할 때는 exit 명령어 입력하기(ssh 접속 끊기)
💻패키지 설치
flask서버를 이용한 파일을 서버에 올려서 실행하려면 flask에 맞는 포트가 또 필요하다.
때문에 flask 패키지를 EC2에 설치, 포트열기를 해야한다.
pip install flask
💻AWS 포트 열기(port forwarding)
80포트 : http 접속을 위한 기본 포트
굳이 :80을 붙이지 않아도 자동으로 연결 가능
5000포트 : flask 기본 포트
27017포트 : 외부에서 mongoDB 접속을 위한 포트
80포트로 오는 요청을 5000포트로 전달하게 하는 포트포워딩(port forwarding)을 해야함!!
IPv4, IPv6 모두 포트 열어줘야 함!!
포트 열어준 후
http://내ip:5000 접속 해보기~
💾 filezila
로컬에 저장되어 있는 프로젝트 파일을 서버에 옮기는 작업이 필수적이다.
이때 그 역할을 해줄 프로그램 == filezila
👉 서버 연결
순서대로 실행하고 정보를 입력한 후 확인을 누르면 서버의 파일들을 볼 수 있다.
여기서 호스트는 EC2 서버의 ip, 사용자 user는 ubuntu로 입력
왼쪽(red)가 로컬pc & 오른쪽(blue)가 서버 내 파일 목록
파일을 옮기고 싶을 때는
1. 옮길 파일 선택
2. 마우스 드래그로 옮김
💾 DB 접속
업로드할 프로젝트에 사용되는 DB 또한 서버와 연결되어야 하므로
Robo 3T에서 서버와 mongoDB를 연결한다.
👉 Create - 접속정보 입력 - Authentication - Perform authentication 체크박스 - 계정 아이디, 비밀번호 입력 - save
👉 app.py에서 client = MongoClient('mongodb://아이디:비밀번호@ㅣlocalhost',27017)로 수정
👉 로컬pc의 파일을 ubuntu 서버로 드래그 옮김
👉 http://내ip:5000/ 입력해서 서버 작동 확인하기
이렇게 하면 서버에 프로젝트를 올리고 공개하기 완료!