1. EC2 만들기
1. 대시보드에서 인스턴스 시작 버튼
2. Amazon Machine Image(AMI) 선택
이번 경우 ubuntu 16.04 LTS 선택
3. 인스턴스 유형 선택
필요한 사양에 따라 인스턴스 사양 선택
테스트 서버 구현이므로 t2.micro 인스턴스 타입 선택한 다음
인스턴스 세부정보 구성으로 이동
4. 인스턴스 세부 정보 구성
VPC, IAM 등 설정을 위한 배경 지식이 필요하지만 이번 글에서는 제외
5. 스토리지 추가
이 부분에서 필요시 크기 늘려주시면 되고 인스턴스 스토어 / EBS 사용 여부나 프로비저닝된 SSD로 추가 성능 향상이 가능
6. 태그 추가(생략)
7. 보안 그룹 구성
기존 보안 그룹에서 설정하셔도 되고, 위 그림처럼 필요한 부분만 개방
8. 키페어 생성하거나 기존 키페어 사용
9. 인스턴스가 생성되는데까지 약간의 시간이 걸립니다
아래 메뉴에서 확인 가능
해당 인스턴스의 초기화가 끝날 때까지 대기
2. Elastic IP 할당
전용 테넌시 설정을 하지 않았기때문에 인스턴스 중지/시작시 IP 값이 계속해서 바뀔 수 있고
이번 경우 퍼블릭 IP를 할당 받지 않았으므로, Elastic IP를 할당합니다.
1. Elastic IP에서 새주소 할당
2. 할당 받은 IP를 EC2와 연결
새로 할당 받은 IP 선택 > 작업 클릭 > 주소 연결
할당할 인스턴스 선택 후 > 연결
3. Elastic IP로 EC2 접속
접속 이전에 .pem 키의 권한을 400으로 변경
$ chmod 400 ~.pem
접속
$ ssh -i “~.pem" ubuntu@ 할당 받은 IP
3. 서버 세팅
1. Local 설정
접속 후 locale 메세지가 뜰 경우
$ export LANGUAGE=en_US.UTF-8
$ export LC_ALL=en_US.UTF-8
$ sudo locale-gen en_US.UTF-8
$ sudo dpkg-reconfigure locales
ko_KR.UTF-8 찾아서 체크(스페이스바) 후 엔터
기본 설정은 en_US.UTF-8로 한 후 엔터
2. sudo: unable to resolve host ip~ 에러 처리
위 사진처럼 뜬다면,
/etc/hosts 에 편집해주면 됩니다
$ sudo vim /etc/hosts
127.0.0.1 localhost 아래에
( unable to resolve host ip-11-11-11-11 이라고 나왔다면)
11.11.11.11 ip-11-11-11-11 추가
이제 sudo 명령어를 사용해도 에러 메세지가 나오지 않습니다
3. 서버 패키지 최신화
$ sudo apt-get update && sudo apt-get upgrade
뭔가 물어보는 창이 뜬다면 기존 환경 유지~
4. python 개발 환경에 필요한 패지키들 설치
$ sudo apt-get install build-essential libssl-dev libffi-dev python3-dev lib32ncurses5-dev libmysqlclient-dev
5. git clone
배포하고자 하는 리모트 저장소를 클론합니다.
$ git clone <remote_url>
6. python 패키지 설치를 위한 pip 설치
$ sudo apt-get install python3-pip
7. 설치한 프로젝트 디렉토리로 이동 후
$ sudo pip3 install -r requirements.txt # 가상환경 세팅 안함
pip 업그레이드
$ pip3 install —upgrade pip
$ python3 manage.py runserver # 실행되는지 확인
4. uwsgi & nginx 설정
1. uwsgi 설정
설정은 위 예시처럼 하시거나 수정하시면 됩니다.
실행 방법은
$ uwsgi —-ini uwsgi.ini &
2. nginx 설치
nginx 설치
$ sudo apt-get install nginx
설치 확인
$ sudo service nginx start
위 사진처럼 뜬다면 성공
3. nginx 설정
$ sudo service nginx stop
위 명령어는 안해도 상관없음
/etc/nginx 폴더 밑으로 이동
/sites-enabled sites-available 아래 파일 전부 삭제
/conf.d 아래에 설정파일명.conf 파일 만들기
/conf.d/파일명.conf
$ sudo vim /etc/nginx/conf.d/파일명.conf
설정 예시
upstream 안 server 127.0.0.1:8081 의 port는 uwsgi 설정에 socket과 일치해야함
uwsgi 를 재시작한 다음
nginx 시작