일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- vscode
- k-eta
- 프레임워크와 라이브러리의 차이
- Django의 편의성
- EOF
- UI한글변경
- scanf
- 알고리즘 공부방법
- 입출력 패턴
- 자료구조
- Django란
- 구조체와 클래스의 공통점 및 차이점
- string 함수
- double ended queue
- 매크로
- 2557
- getline
- iOS14
- 엑셀
- 표준 입출력
- 시간복잡도
- correlation coefficient
- 연결요소
- Django Nodejs 차이점
- 이분그래프
- 입/출력
- string 메소드
- c++
- 백준
- 장고란
- Today
- Total
Storage Gonie
파트8. AWS EC2, Django 프로젝트 배포하기 본문
AWS에서 클라우드 서버를 실행하고, 거기에 Django 서버를 실행을 해볼것임.
유튜브 영상 참고 : https://youtu.be/uqL7DzJyekU
1. AWS 접속 후 로그인
- https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2
2. 오른쪽 위에서 서울을 선택, 왼쪽 상단의 Services클릭
3. 클라우드 서버를 생성하기 위해 EC2 를 클릭한다.
4. 인스턴스 시작 클릭
5. 어떤 인스턴스를 실행할지 선택하면 되는데 여기선 Ubuntu를 선택
6. 인스턴스 유형은 프리티어에서 사용가능한 두번째 것을 선택하고 '검토 및 시작'을 클릭.
7. 다음 화면에서는 '시작하기'를 누른다.
8. '새 키 페어 생성'을 선택하고 '키 페어 이름'에 임의의 텍스트를 입력해준다.
그 다음 '키 페어 다운로드'를 클릭해주는데 이 파일은 한번만 받을 수 있으니 잘 챙겨두자.
9. 인스턴스 시작을 누르면 시작됨(제대로 시작하기까지는 시간이 좀 걸린다)
10. 다시 첫 화면에서 EC2 선택하여 들어온 뒤 '실행 중인 인스턴스'를 클릭하면 실행중인 인스턴스를 볼 수 있다.
11. 실행 중인 인스턴스 화면에서 '연결'을 누르면 접속할 수 있는 방법을 볼 수 있다.
12. 위의 화면에서 'PuTTY를 사용하여 연결' 클릭하고 'PuTTY 다운로드 페이지'를 클릭
13. EC2 instance SSH접속
- Mac : iterm, zshell, bash shell 이용
- Windows : putty 이용
- 아래 각각의 경우 참고.
Mac의 경우
1) 터미널을 실행하여 private 키를 저장했던 위치로 디렉토리를 이동시킨다.
- cd ~~~ 이용
2) chmod를 이용해서 private 키를 공개적으로 보지 못하게 한다.
- "chmod 400 DjangoServer.pem"
3) "sudo ssh -i PATH/DjangoServer.pem ubuntu@PUBLIC_DNS"
- PATH는 pwd했을 때 뜨는 경로 대신 채워주면됨
- PUBLIC_DNS는 EC2-실행중인 인스턴스 들어가면 볼 수 있음.
4) 클라우드 서버에 접속이 되면서 커맨드 창이 열림
Windows의 경우
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html
1) Stable 클릭
2) putty.exe과 puttygen.exe 다운로드
3) puttygen.exe 먼저 실행 후 'Load' 클릭
4) 위에서 다운로드 해뒀던 키 페어 파일 선택
- 정상적으로 된다면 Notice가 아래와 같이 뜬다.
5) 'Save private key' 클릭, 그리고 'Yes' 클릭
- 이름은 이전 파일이름과 같게 입력 후 저장해준다.
6) 이번에는 putty.exe를 실행 하고 Host Name에 Public DNS를 복사 붙여넣기 한다.
- Public DNS는 아까 위에서 '연결'을 눌렀을 때 뜨는 창에 있다.
7) Host Name 맨 앞에 'ubuntu@'를 추가로 삽입해주고 Port는 22, Connection type은 SHH로 선택.
8) 왼쪽에서 Connection - SHH - Auth선택 후 'Browse'클릭 후, puttygen.exe로 만든 파일 선택 후, 'Open' 클릭
9) 아마존의 클라우드 서버에 접속이 되면서 커맨드 창이 열림
Mac, Windows 공통(계속)
14. 커맨드 창이 열리면 "sudo apt-get update"
- 설치할 수 있는 패키지의 정보를 불러오는 것이라고 보면 됨.
15. "sudo apt-get install git", "y"
- 깃 설치
16. "sudo apt-get install python3-pip", "y"
- python3 모듈을 관리하는 python3버전의 pip 설치
17. "sudo pip3 install django==1.10"
18. "git clone 깃허브 리포지토리 링크"
19. "python3 manage.py runserver"
- manage.py 파일이 있는 곳으로 이동해서 실행
20. 일단 Ctrl + C 로 종료.
21. 다시 EC2에서 왼쪽에서 보안그룹 선택, 그룹이름이 launch-wizard-1 인 것을 클릭, 아래에서 인바운드 클릭, 편집 클릭
22. 규칙추가 - 유형 : 사용자 지정 TCP규칙 선택, 포트 범위 : 8000, 저장
- 이제 외부에서 접속할 수 있게 됨
23. 다시 우분투 접속 창에서 "python3 manage.py runserver 0.0.0.0:8000"
24. EC2 - 실행 중인 인스턴스 - Public DNS복사
25. Public DNS:8000 접속
- 브라우저에서 다음 url을 입력하여 접속 http://ec2-54-180-109-41.ap-northeast-2.compute.amazonaws.com:8000/
쉘에서 사용하게될 기타 기능
<SSH쉘이 끊어져도 계속 실행되게 하는 방법>
1. python manage.py runserver 명령어로 서버를 실행시킨다.
2. 'Ctrl + z' 를 눌러 해당 프로그램을 정지(pause) 시킨 후 shell로 돌아온다.
3. 'bg' 명령어를 쳐서 해당 프로그램을 백그라운드로 보내어 돌린다.
4. 'disown -h' 명령어를 쳐서 ssh 연결이 끊어져도 해당 프로세스가 돌아가도록 한다.
5. 터미널 창을 닫는다.
<실행중인 프로세스 확인>
- "ps -l"
<사용중인 포트 반환하기>
- "sudo lsof -t -i tcp:8000 | xargs kill -9"