토익 점수의 우울함을 뒤로하고.. .... 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 |