관리 메뉴

Storage Gonie

파트8. AWS EC2, Django 프로젝트 배포하기 본문

웹개발/장고를 활용한 웹사이트 만들기(프로그래머스)

파트8. AWS EC2, Django 프로젝트 배포하기

Storage Gonie 2019. 2. 22. 05:43
반응형

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의 경우

https://docs.aws.amazon.com/ko_kr/quickstarts/latest/vmlaunch/step-2-connect-to-instance.html#sshclient

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"

반응형
Comments