항해 99/사전 기본 스터디

AWS E2C 서버로 도메인 연결하기

U_D 2022. 2. 26. 14:43

1. AWS 서버 구매하기

AWS에 회원가입을 하고 로그인 후, AWS EC2 서버인 Ubuntu Server 18.04 또는 20.04 버전을 구매한다.

 


Ubuntu Server 구매

#. 새키 페어 생성 - 키페어 이름 설정 - 키페어 다운로드 클릭(바탕화면 다운로드) - 인스턴스 시작

 

2. AWS 서버 접속

 

서버 구매가 끝났으면,

이제 구매한 AWS EC2에 접속해보자.

Git Bath를 열고 아래와 같이 입력한다.

ssh -i 받은 키페어를 끌어다놓기 ubuntu@'AWS에적힌내아이피'

Key fingerprint 관련 메시지가 나올 경우 Yes를 입력.

git bash를 종료할 때는 exit 명령어를 입력하여 ssh 접속을 먼저 끊어주기.

 

 

 

*알아두면 유용한 간단한 리눅스 명령어

ls: 내 위치의 모든 파일을 보여준다.

pwd: 내 위치(폴더의 경로)를 알려준다.

mkdir: 내 위치 아래에 폴더를 하나 만든다.

cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.

cd .. : 나를 상위 폴더로 이동시킨다.

cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기

rm -rf [지울 것]: 지우기

sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)

 

 

자, 이제 접속을 마쳤으면,

기본적이 세팅을 할 차례이다.

아래 3가지 세팅을 해보자.

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

# pip3 설치 & pip3 대신 pip 라고 입력하기 위한 명령어
sudo apt-get update
sudo apt-get install -y python3-pip
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

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

 

세팅 까지 마쳤으면, 이제 서버 컴퓨터에 내가 올릴 파일을 옮기고, 그것을 실행해주면 끝.

내 컴퓨터에 있는 파일을 서버 컴퓨터에 옮기는 것은 'FileZilla'라는 프로그램을 이용해서 할 수 있다.

 

 


파일질라 다운 > 파일질라 실행 > 다음과 같이 설정

다음과 같이 설정

왼쪽이 내 컴퓨터 / 오른쪽이 서버 컴퓨터 >> 옮기고 싶은 파일 선택해서 드래그 앤 드롭

 

 

 

 

 

3. 웹사이트 배포

 

자 이제 서버 컴퓨터에 파일 옮기기도 완료.

마지막, 파일을 실행 해보자.

 

Git Bash에 폴더를 찾아 들어가, python 파일 실행 명령어를 입력한다.

python app.py

 

패키지가 설치되어 있지 않다면, 패키지 설치도 해주기. (패키지 설치 후, 파이썬 파일 다시 실행)

pip install flask
pip install pymongo
pip install dnspython

 

 

자 이제 서버가 실행되는 것을 Git Bash에서 확인했다면,

크롬에서 접속을 해보자.

http://3.38.102.3:5000/ 5000은 삭제해도 무방

 

 

이때, 접속을 위해 한가지 더 설정해 줘야 하는게 있다.

AWS에서 5000포트 열어주기.

 

아래와 같이 설정하면 진짜진짜 끝.

 

 

 


ECS 관리 콘솔 > 보안그룹 클릭

 

해당 보안그룹 클릭

 

Edit inbound rules 선택

 

두 가지 포트 추가 → 80포트: HTTP 접속을 위한 기본포트, 5000포트: flask 기본포트 *Anywhere-IPv4 선택 

 

 

드디어 처음 배포한 나의 사이트!

visit jeju의 오픈 api키를 활용한 제주도 관광지 정보 페이지다!

 

 

 

4. 서버 설정하기

그런데, 배포된 사이트를 Git Bath를 종료하더라도, 계속해서 서버가 돌아갈 수 있게 할 순 없을까.

있다.

 

*현재 상황

Git bash가 터미널을 종료하면 (=즉, SSH 접속을 끊으면) 프로세스가 종료되면서, 서버가 돌아가지 않음 

원격 접속을 종료하더라도 서버가 계속 돌아가도록 nohub 설정 필요

 

아래의 명령어로 실행해보자.

*파일을 실행중이었다면, 끄고 nohup 실행해주기!

nohup python app.py &

 

 

이렇게 nohub 설정을 하면, Git Bath를 종료하더라도 사이트가 계속 활성화 되는 것을 확인 할 수 있는데,

그럼 이를 강제 종료 하는 방법은 아래의 명령어를 실행해 주면 된다.

외우지 말고 저장해 두었다가 필요할 때 복사해서 사용하기.

ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill

 

 

 

 

 

 

5. 도메인 설정하기

마지막으로, 도메인을 구매하고 내 서버의 ip 주소를 설정하여 도메인을 연결해보았다.

도메인 구입은 가비아에서 했다.

https://dns.gabia.com/

 

도메인 구매 후 dns 설정해주기.

 

 

 


dns 설정에서 도메인 선택 후 설정 클릭

 

호스트 이름에 @, ip주소에 ip주소 입력

 

네임서버에 내 도메인-ip가 매칭되는 시간 10~20분 소요

 

 

6. og태그 설정

진짜 진짜 라스트.

meta 태그의 og title, description, image 설정까지 마무리해보자.

 

팬명록 html 파일에 og 태그 붙여넣기

    <meta property="og:title" content="내 사이트의 제목"/>
    <meta property="og:description" content="보고 있는 페이지의 내용 요약"/>
    <meta property="og:image" content="이미지URL"/>

 

 

자 이제 수정된 파일은 내 컴퓨터에만 있는 파일이기 때문에,

 

#1. 서버에서 실행되고 있는 파일을 끄고,

#2. 파일을 바꿔치기 하고,

#3. 다시 수정된 파일을 실행해주면 끝.

 

 

http://udisplay.shop/

 

제주도 어디갈래?!

제주도 숨은 관광지

udisplay.shop

 

 

웹개발 기본 5주차 강의가 모두 끝났다!

과연 여기서 실전에서 쓰는게 어떤거일지 모르겠으나

맛보기는 한거같다! 이제 선택과 집중을해서 코린이를 벗어나자!