(인스턴스 생성은 위 사이트 참고)
1) 첫번째 고난 - PYTHON 설치
Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type로 인스턴스를 생성하게 되면
처음에 python2.*이 기본으로 깔려있다.
하지만 python version2는 더이상 지원되지 않음 & python3를 많이 사용하고 구문이 다름 & 애들은 장고를 python3로 했다
라는 이유들로 python3를 설치해보도록 한다.
차라리 파이썬이 안깔려있다면 더 편했겠지만(python3을 설치해도 2버전이 먼저 연결되어 있기에 버전확인을 하면 2라고 출력된다. 때문에 설치 후 사용환경 설정도 필요하다)
파이썬이 안깔려있고 내게 명령어가 더 친숙한 우분투로 인스턴스를 새로 생성하였으나 실수로 또 python2를 설치해버려서 (화나서) 그냥 끄고 Linux로 돌아왔다.
(우분투에서 sudo apt-get install python-pip를 했는데 python2가 깔렸다. 아직은 파이썬 기본 명령어가 2에 맞춰져 있는듯 하다)
AWS EC2 리눅스 인스턴스에 python 3.6 버전 설치하기
AWS EC2를 활용한 웹 서버 구축기 ssh를 통해 AWS EC2 인스턴스 접속에 성공했었습니다. 그 방법은 https://aws.amazon.com/ko/getting-started/tutorials/launch-a-virtual-machine/를 참조하습니다. 기쁜 마음..
nrhan.tistory.com
그래도 감사하게도 위 페이지에서 이미 python2가 설치되어있는 인스턴스에 python3를 얹는 작업을 안내해준다.
방법을 설명하기엔 위에서 너무 상세하게 얘기해서 더 할말이 없고 새로 알아낸 사실은
현재 파이썬이 3.8.5까지 나왔는데 ec2 linux에서 제공하는 패키지는 3.6까지만 있다. 아직 업데이트가 안된듯하다.
이제 장고를 깔려했는데 pip는 또 파이썬2에 맞춰져 있다고 한다. 정말 쉽지 않다.
2) 두번째 고난 - Django 설치
파이썬 버전은 3인데 pip는 파이썬2꺼라고 한다.
이번엔 해법을 찾는데 오래걸리지 않았다.
window에서는 장고를 설치할 때 pip install django 라는 명령어를 이용했는데 이번에는 python3의 pip를 사용해야 하기 때문에 앞에 python3를 붙여주었다.
sudo python3 -m pip install django~=2.0.1
위 명령어를 사용하니 잘 설치가 되었다. 장고 버전은 구글에 장고를 검색하였을 때 안정화 버전이라고 나와있어서 썼다.
장고 설치를 완료해도 계속 pip를 upgrade라하는 warning 문이 나온다.
sudo python3 -m pip install --upgrade pip
앞에 python3를 명시해 pip도 upgrade 해주었다.
이 과정이 완료되면 pip는 업그레이드 되고 pip명령어는 더이상 작동하지 않으며 사용하려면 pip3라고 입력해야한다.
3) 이젠 고난 아닌줄 알았던 가상환경 설치 및 장고 test
드디어 python과 pip를 정상적으로 사용할 수 있기 때문에 드디어 제대로 시작해본다.
우선 django 프로젝트 생성 전에 장고를 위한 가상환경을 구축한다.
기존 window에서 쓰던 것과 유사하게
pip3 install virtualenv 명령어를 사용해 가상환경을 설치한다.
설치 완료 후에
virtualenv myenv 명령어로 myenv라는 가상환경을 생성했고 이제 putty에 접속해 myenv\Scripts\activate를 하려했는데 myenv 안에 Script가 없다.
잠시 뇌정지가 왔지만 구글에 찾았더니 해법이 있다.
source myenv/bin/activate
됐다.
이제 윈도우에서 하는것과 마찬가지로 프로젝트를 제작하면된다.
django-admin startproject Testproject //프로젝트 생성
cd Testproject //프로젝트 디렉토리로 들어가기
python manage.py runserver
이렇게 하면 내 인스턴스 ip를 이용해 서버를 돌릴 수 있다고 생각했는데 127.0.0.1로 들어가란다.
의아해서 구글링을 해보니
python manage.py runserver 0:8000
이런 식으로 입력해야 ip주소 또는 호스트 주소를 사용할 수 있다고 한다.
이제 진짜 사이트가 들어가져야하는데 안들어가진다. 생각해보니 인스턴스 보안그룹에 tcp 포트를 옛날에 설정한게 기억이 났다.
내 인스턴스 - 보안그룹 - 인바운드 규칙 편집 - 규칙 추가하기 해서 원하는 포트로 tcp를 열어주면 된다.
8000말고 다른 숫자도 가능하다.
그렇게 하면 이런식으로 8000포트에 모든 위치에 있는 사용자가 접속할 수 있다.
이제 진짜로
python manage.py runserver 0:8000
를 실행하면 주소창에 **.**.**.**:8000(*은 내 IP)를 입력해 성공적으로 설치되었다는 화면을 3시간만에 만날 수 있었다.
이제 진짜 끝.
후기 : AWS ec2만 세번째 프로젝트인데 아직 서툴다.
'IT > Python' 카테고리의 다른 글
형태소 분석 (0) | 2021.01.27 |
---|---|
django 로그인 구현하기(python 설치, django 설치) (0) | 2020.11.24 |
파이썬으로 엑셀 자료를 딕셔너리로 저장하기 (0) | 2020.11.24 |