본문 바로가기

Programming diary

21. October 22, 2020

 

 

토익 점수의 우울함을 뒤로하고.. .... AWS EC2로 서버 연결하기

 

내 개발환경

1. python + html 파일로 개발

2. Db는 mongoDB / DB 확인하는 프로그램: RoBo 3T

3. Flask로 서비스 배포

4. FTP 클라이언트 소프트웨어: Filezilla

5. Mac OS

 

 

 

 

1. 서비스 클릭 -> EC2 클릭

 

2. 스크롤 내리면 인스턴스 시작 (주황색 버튼) 클릭 

 

 

3. 우분투 서버 18.04 선택 

4. 자동으로 프리티어가 선택되는데 동그라미 친 부분으로 선택되어 있는지만 확인 후 시작 버튼 클릭 그리고 또 클릭 

 

5. 팝업창으로 키 페어 창이 뜨는데 키 페어 이름 입력 후 키페어 다운로드 받는데 이 키페어 엄청 중요하니까 잘 보관하세요. 프로젝트 이름으로 저장하는거 추천.

6. 터미널 켜서 산 EC2 서버 우분투 접속하기 

 

더보기

1) sudo chmod 400 받은키페어를끌어다놓기 

2) ssh -i 받은키페어를끌어다놓기 ubuntu@AWS퍼블릭IPv4주소

 

더보기

3) yes 입력

4) 아래와같이 우분투@자신이 입력한 아이피로 접속이 된걸 볼수있다. 

 

 

7. 파일질라 열어서

1) New Site 

2) 이름 설정

3) 프로토콜 - SFTP,

호스트 - AWS 퍼블릭 IP,

포트번호: 22,

로그온 유형: 키파일

사용자: ubuntu

키파일: 아까 위에서 다운받은 키파일

4)연결

 

 

8. 우분투에서 python 버전 3 실행시킬 수 있게 하기. 두번째 줄 입력 후엔 여러가지 파일이 좌르르르르르르르륵 다운로드 됨. 기다리면 됨

더보기

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

sudo apt-get update

 

9. 계속해서 pip3 설치

더보기

sudo apt-get install -y python3-pip

 

10. pip 버전 확인 및 pip3 대신 pip라고 입력하기 위해 쳐주는 코드 

더보기

pip3 --version

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

 

 

11. 설치한 pip 이용해 flask 설치하기

더보기

pip install flask

 

12. 우분투에 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

 

 

13. 몽고디비 잘 깔렸나 들어가보기 exit 을 누르면 나옴

더보기

sudo service mongod start

mongo

 

 

14. 우분투 몽고디비에 db.createUser로 계정 생성해주기.  그리고 다했으면 exit 으로 나오기

user: id

pwd: password

더보기

use admin

db.createUser({user: "test", pwd: "test", roles:["root"]})

exit

 

 

15. 몽고디비 재시작 한 후 외부에서 열 수 있도록 conf 파일 수정하기

더보기

sudo service mongod restart

sudo vi /etc/mongod.conf

*security 에 # 지우고, 엔터 후 스페이스바 2번: authorization: enabled

오타 조심

 

 

 

 

16. AWS에서도 접속포트 열어주기. 보안규칙 변경

1) 보안, 보안그룹 클릭

 

 

2) 인바운드 규칙 편집

 

3) 규칙추가에 포트범위 5000, 소스 위치무관 또 규칙추가 눌러서 포트범위 27017, 소스 위치무관 해주고 저장

 

+ 규칙 저장전 미리 80 까지 추가해놓기

 

 

 

17. Robo 3T가서 우분투에서 만든 계정 생성하기. create 클릭 후 name, address 입력 후 어쎈티케이션으로 넘어감

1) name: 프로젝트이름, address: AWS 퍼블릭 IP 주소

 

2) db.createUser({user: "test", pwd: "test", roles:["root"]}) 에 입력했던 user, pwd 대로 입력해줌. 

 

 

18.pip 환경에서 request 임포트 해주기 (bs4, pymongo). 

더보기

pip install requests bs4 pymongo 

 

 

19. 우분투에서 파이썬 실행시키고, 잘 되는지 확인해보기

더보기

cd 이용해서 실행시켜줘야 되는 py파일이 있는 경로폴더 이름

python3 파일명.py 

 

이렇게 aws 퍼블릭 ip:5000으로 했을 때 잘 나오는 것을 확인해주면 된다.

 

 

19. 포트 떼고 접속해보기

더보기

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

+참고 자동적으로 80 포트가 붙기때문에 aws 보안그룹에서 80도 규칙만들어줘야됨. 안된다면 16번 다시 한번 확인하기

 

 

20. app.py 를 실행시키지 않아도 계속 돌아갈 수 있도록 노훕

더보기

nohup python app.py &

잘된다.

 

 

21. 서버 종료하기 * 나중에 * 노훕 끄고싶을 때 사용

더보기

# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다.

ps -ef | grep 'python'

 

# 아래 명령어로 특정 프로세스를 종료시킨다

kill -9 [pid값]

 

22. 여기서부턴 도메인이 있는 사람만.

나는 가비아를 이용했고 이렇게 호스트랑 내 aws 퍼블릭 서버를 입력해서 내가 구매한 도메인에 입력시켜줬음.

 

 

 

 

구매한 도메인으로도 접속 가능! 

'Programming diary' 카테고리의 다른 글

23. October 27, 2020  (0) 2020.10.27
22. October 23, 2020  (0) 2020.10.24
20. October 18, 2020  (0) 2020.10.18
19. October 13, 2020  (0) 2020.10.13
18. October 11, 2020  (0) 2020.10.11