공부하자/웹개발일지

[웹개발일지] #12. 서버 업로드하기(AWS, EC2, filezila)

snbrin 2022. 3. 19. 18:56

 

 

풀스택 웹개발 공부 기록하기 #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 

 

https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2

 

ap-northeast-2.console.aws.amazon.com

위 사이트에서 가입 후 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/ 입력해서 서버 작동 확인하기

 

 

이렇게 하면 서버에 프로젝트를 올리고 공개하기 완료!