AWS서버를 이용해 내 프로젝트 올리기!

이단비·2021년 8월 6일
0


지난주에는 내 컴퓨터를 서버로 만들어서 프로젝트를 올렸다면
이번주는 AWS 서버를 이용해서 프로젝트를 배포해보았다.

서버는 항상 켜져있어야 하고, 많은 사람들이 웹페이지에 드나들어야하기때문에 보안상으로도 현실적으로도 내 컴퓨터로 서버역할을 하는 것은 불가능!

이번주차에는 AWS라는 클라우드 서비스에서 편리하게 서버를 관리하기 위해 EC2사용권을 구입해서 서버로 활용했다.

[EC2 서버 세팅]

GIT BASH를 이용하여 SSH(Secure Shell Protocol)을 통해 EC2에 접속했다.

[SSH?]

  • 다른 컴퓨터에 접속 할 때 쓰는 프로그램으로 다른 프로그램보다 상대적으로 보안이 뛰어남
  • 접속할 컴퓨터의 22포트가 열려있어야 가능

리눅스 명령어를 통해 제어 하는 환경이 꽤나 낯설었다.

[간단한 리눅스 명령어]
ls: 내 위치의 모든 파일을 보여준다.
pwd: 내 위치(폴더의 경로)를 알려준다.
mkdir: 내 위치 아래에 폴더를 하나 만든다.
cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
cd .. : 나를 상위 폴더로 이동시킨다.
cp -r [복사할 것][붙여넣기 할 것]: 복사 붙여넣기
rm -rf [지울 것]: 지우기
sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)

서버 세팅은 filezilla를 이용해서 서버에 아래 내용들이 포함되어 있는 파일을 올려 진행했다.

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

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

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

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

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

mongoDB 설치 코드

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org

mongoDB 실행하기

sudo service mongod start

80포트로 들어오는 요청을 5000포트로 넘겨주는 명령어

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

[서버 포트 열기]

EC2에서 기본으로 열려있는 22번포트 외에도 3개의 포트를 더 열어서 접속이 가능하도록 세팅해야 했다.

  • 80포트: HTTP 접속을 위한 기본 포트
  • 5000포트: FLASK 기본 포트
  • 27017포트: 외부에서 mongoDB를 접속하기 위한 포트

이렇게 포트를 열어준 다음에
http://내아이피:5000
로 접속하면 사이트가 잘 작동하는 것을 확인 할 수 있었다.

[웹페이지 업로드 하기]

가장 먼저 서버 DB를 관리하던 Robo 3T에서 EC2 컴퓨터를 연결해줬다.

다음으로 SSH 접속을 끊어도 EC2컴퓨터가 계속 작동할 수 있도록 nohub를 설정했다.

nohub 실행

nohup python app.py &

서버 강제 종료

# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep 'app.py'
# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]

다시켜기

nohup python app.py &

[도메인 연결하기]

도메인은 gavia를 통해 구매했다.
.shop 도메인이 할인가로 매우 저렴!

DNS관리툴 > 도메인 연결 > DNS 설정 > 호스트이름(@), IP주소(EC2에서 생성한 IP주소) 입력



네임서버에 내 도메인-IP가 매칭되는 시간이 필요하기 때문에
약 10분정도 후 도메인으로 접속하면 사이트가 연결된 것을 확인 할 수 있다!

이렇게 서버에 웹페이지 올리기까지 완성!!

아직 너무 복잡하지만 이 내용을 바탕으로 조금씩 더 공부해서 열심히 익혀나가야 겠다. :)

profile
왕초보 탈출기 입니다!! :)

0개의 댓글