터미널을 종료하더라도 계속해서 서버에 올라가 있을 수 있도록 작업을 해놨다!
로컬환경에서 사이트를 만들고 테스트를 해본 이후 웹 서버에 배포를 했다!
1. AWS를 통해 ec2 서버를 구매
※ 무료 서버를 구매했으며, Keypair 는 필수로 저장해야한다.
2. AWS ec2 접속하기
- 접근권한 변경하기 : sudo chmod 400 Keypair 끌어다놓기
- SSH 접속하기 : ssh -i Keypair 끌어다 놓기 ubuntu@ip주소
※ Key fingerprint 관련 메세지가 나올경우 Yes 입력
* 간단한 리눅스 명령어 알아두기
3. AWS 포트열어주기
AWS EC2에서도 자체적으로 포트를 열고/닫을 수 있게 관리를 하고 있으므로, 인바운드 요청 포트를 열어줘야한다.
(보안그룹 내 인바운드 규칙 수정)
* 이번 사이트만들기 작업 시, 필요한 세가지 포트를 추가해줘야한다.
- 80포트 : HTTP접속을 위한 기본포트
- 5000포트 : flask 기본포트
- 27017 포트 : 외부에서 몽고DB를 접속하기 위한 포트
4. AWS EC2세팅하기 (.feat 파일질라)
※ EC2 한번에 세팅하기 한번에 내 서버에서 세팅할 수 있도록 강의에서 해당파일을 제공 해주었다. "initial_ec2.sh"
(1) sudo chmod 755 initial_ec2.sh
(2) ./initial_ec2.sh
위 명령어를 순서대로 터미널을 입력하면 간단하게 세팅완료
※ 한걸음 더 - 서버환경 세팅
- 한국시간으로 세팅
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
- 파이썬 (python3 → python)
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
- pip (pip설치, 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
5. mongoDB 설치
몽고 DB 공식자료 : https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
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 sudo apt-get update
sudo apt-get install -y mongodb-org
→ 몽고DB설치코드 이며, 한줄씩 입력하면 설치 완료
6. mongoDB 실행
sudo service mongod start
→ 아무것도 안나와야 정상적으로 실행이 된것이며, 다른어떠한 문구가 나올경우 오타 확인 필요
7. mongoDB 접속 계정 생성
mongo
몽고라고 입력하면 좌측 ">" 표시가 나오면 성공적으로 접속한거라고 보면된다.
# admin 계정바꾸기
use admin;
# 계정생성하기
db.createUser({user: "test", pwd: "test", roles:["root"]});
위와같은 화면으로 나오면은 정상적으로 접속계정 생성이 완료된것입니다.
이후 몽고DB 재시작하면 끝!
8. mongoDB 외부에서 열어주기
우선 관리자 권한으로 실행
sudo vi /etc/mongod.conf
# sudo : 관리자 권한으로 다음을 실행
# 관리자 권한으로 /etc 폴더 아래 mongod.conf 파일을 vim으로 켜달라는 의미
관리자 권한으로 실행이 되었을때, 위와같이 수정을 해주면된다!
# 입력모드 전환 : a
# 내용저장하고 에디터 종료하기 : esc 누르고 :wq 입력
# 재시작 : sudo service mongod restart
※ 해당 내용을 수정할떄, "#"은 주석표시가 되어있는것이므로 내용만 수정하지말고 주석표시도 없애줘야한다.
9. mongoDB에 접속하기 위한 robo3T 접속하기
* 접속정보 세팅하기
※ 포트포워딩 ( 80포트 → 5000포트로)
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
10. 파일질라 파일 업로드하기
* 업로드 하기 전! app.py 파일의 mongoDB 세팅부분을 바꿔줘야한다.
지금까지는 로컬서버에서 테스트를 하기위해 접속 localhost : 27107 만 세팅을 했지만, 이제는 아이디/비밀번호까지 연결해줘야한다.
client = MongoClient('mongodb://test:test@localhost', 27017)
이제는 필요한 패키지 설치가 모두 완료된다면
python app.py 로 실행이 가능하다!
* 포트포워딩은 위에서 포트번호 없이도 접속가능하도록 세팅을 해두었기때문에 지금부터는 http://ip주소 만으로도 접속이 가능하다.
11. nohup 설정하기 (SSH접속을 끊어도 계속 돌아가게 하기)
- 실행 : nohup python app.py &
- 종료
ps -ef | grep 'app.py' : 명령어로 미리 PID값을 본다(프로세스번호)
kill -9 "pid값" : "" 없이 pid값만 입력해서 죽여주면 끝
12. 도메인구매하기 (가비아)
- 회원가입 / 로그인
- DNS관리 툴
- 도메인 연결
- DNS 설정
- 호스트 이름에 @ , IP주소에 IP주소를 입력
* URL, IP주소를 매핑하는데 10분정도 소요 될 수 있음!
이렇게 해서 내가 만든 사이트를 배포하고 접속 URL까지 변경을 했다.
이렇게 한번쯤 웹사이트가 어떻게 동작하고 배포되는지 쭉 경험해볼 수 있는 좋은 기회였던 것 같다!
'내마음대로만들어보자 > 나만의 웹 서비스 만들기' 카테고리의 다른 글
[계획]나만의 Planner 만들기 (0) | 2021.09.26 |
---|---|
개발일지#3-나만의 웹 서비스 만들기2 오늘뭐먹지(크롤링) (0) | 2021.06.10 |
개발일지#2 - 나만의 웹서비스 만들기2 (개발계획) (0) | 2021.06.03 |
개발일지 #1 - 나만의웹서비스만들기2 (아이디어 구상) (0) | 2021.06.02 |
개발일지#6 - 나만의 웹 서비스 만들기(완성) (1) | 2021.06.01 |