AWS] Django AWS EC2 Deploy - 1
목적
Django를 AWS EC2에 배포하여 접근하기
용어
EC2(Elastic Compute Cloud): 가상 인스턴스를 운영하는 서비스
인스턴스(Instance): AWS에서 가상 서버를 부르는 용어
가상서버: CPU와 메모리를 가진 클라우드 내 서버
IAM(Identity and Access Management): 사용자 엑세스 및 암호화 키 관리
보안 그룹(Security Group): 인스턴스에 대한 트래픽을 제어하는 가상 방화벽 역할
AWS 설정
IAM 생성
AWS에서 IAM을 먼저 생성하고 진행 해야한다.
진행하며 사용자가 생성되면 Access Key ID와 Secret access key가 나온다.Secret access key는 절대 노출되어서는 안된다.
키 페어를 생성하면 pem파일이 만들어진다.
아래 보이는 규칙 추가를 이용해서 port를 열어줄 것이다.
1 | chmod 400 pem파일 |
인스턴스에 접속하기
생성한 가상 컴퓨터 인스턴스에 ssh를 사용하여 접속
1 | ssh -i pem파일 유저명@EC2퍼플릭DNS주소 |
1 | > Are you sure you want to continue connecting (yes/no)? |
가 나오면 yes를 입력하여 접속하면 된다.
기본설정
update package
1 | sudo apt-get update |
다른 화면이 나올 경우에는 Enter를 누르면 된다.
Install python-pip
1 | sudo apt-get install python-pip |
Install zsh
1 | sudo apt-get install zsh |
Install oh-my-zsh
1 | sudo curl -L http://install.ohmyz.sh | sh |
Change Default shell
1 | sudo chsh ubuntu -s /usr/bin/zsh |
Install pyenv requirements
1 | sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ |
Install pyenv
1 | curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash |
pyenv 설정을 .zshrc 기록
1 | vi ~/.zshrc |
위의 내용이 .zshrc에 기록해야하는 것인지 bash에 한줄 한줄 써서 진행해야 하는것이 판별 필요
진행할때는 기록하고 하였으나 에러가 발생하여 한줄 한줄 bash에 작성하여 진행하여 해결함
Django 설정
1 | sudo chown -R ubuntu:ubuntu /srv/ |
git clone을 통한 프로젝트 가져오기
1 | git clone 프로젝트git주소 |
예시 Git 프로젝트 주소
https://github.com/TaeJuneJoung/Python-Deploy/tree/deploy-test
pyenv 설치 및 virtualenv
1 | cd 프로젝트폴더 |
Install python library
1 | sudo apt-get install python-dev python-setuptools |
pyenv 접속
1 | pyenv shell 3.7.5 |
runserver 테스트
- 0:8000으로 지정필요
- 웹 브라우저에서 <퍼블릭 DNS:8000=””> 로 접속하기 위해서는 보안그룹(security group) 설정이 필요
1 | python manage.py runserver 0:8000 |
참고 사이트
https://nachwon.github.io/django-deploy-1-aws/
https://wayhome25.github.io/django/2018/03/03/django-deploy-03-ec2/