aws ec2 flask_uwsgi_nginx install guide korean

31
AWS EC2 flask, uwsgi, nginx on Mac OS X Urang

Upload: -

Post on 09-Aug-2015

445 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: AWS EC2 flask_uwsgi_nginx install guide korean

AWS EC2 flask, uwsgi, nginx

on Mac OS X

Urang

Page 2: AWS EC2 flask_uwsgi_nginx install guide korean

목차

• EC2 접속 방법

• 가상환경 (virtualenv) 구축

• Flask, uwsgi, nginx, uwsgi 설치 및 설정

• git-clone(github to ec2)

• 시간대변경(ec2 datetime)

Page 3: AWS EC2 flask_uwsgi_nginx install guide korean

EC2 접속 방법

Network & Security 탭 하단의 Key Pair에 들어갑니다

그리고 Create Key Pair 하시고 Connect 누르시면

chmod 400 xxx.pem xxx.pem 파일 권한 변경해주신후

ssh -i xxx.pem ec2-user@ipaddress 복사합니다.

Page 4: AWS EC2 flask_uwsgi_nginx install guide korean

EC2 접속 방법

아까 복사한 ssh -i xxx.pem ec2-user@ip_address를 터미널에 붙여주시고 엔터누르시면

EC2 접속 끝!

Page 5: AWS EC2 flask_uwsgi_nginx install guide korean

가상환경 (virtualenv) 구축

Page 6: AWS EC2 flask_uwsgi_nginx install guide korean

처음 경로로 되돌아와서 virtualenv aws-flask-env 로 가상환경을 만들어 준다. 실행하는 방법은 source aws-flask-env/bin/activate 실행 후 pip list를 확인해보니 pip, setupools 두 개 밖에 없다. 이제 필요한 것들을 설치하러 가보자

가상환경 (virtualenv) 구축

Page 7: AWS EC2 flask_uwsgi_nginx install guide korean

1. pip install flask - 플라스크 설치

2. pip install uwsgi 실행 시 오류

For such a reason, to compile uWSGI you only need to have a c compiler suite (gcc, clang...) and a python interpreter.

- 출처 http://uwsgi-docs.readthedocs.org/en/latest/BuildSystem.html -

build procedure MUST BE fast :

C 컴파일러를 쓰는 이유 - 공식문서 중 발췌

Flask, uwsgi, nginx, uwsgi 설치 및 설정

대략 읽어보니 uwsgi 사용하려면 gcc가 필요합니다.

Page 8: AWS EC2 flask_uwsgi_nginx install guide korean

GNU 컴파일러 모음(GNU Compiler Collection, 줄여서 GCC)는 GNU 프로젝트의 일환으로 개발되어 널리 쓰이고 있는 컴파일러이다.

자유 소프트웨어 중에 가장 잘 알려진 것들 중 하나인 GCC는 원래 C만을 지원했던 컴파일러로 이름도 "GNU C 컴파일러"였다. 이러한 까닭에 현재에도 GCC는 GNU 컴파일러 모음의 일부인 GNU C 컴파일러(GNU C Compiler)의 줄임말로 쓰이기도 한다. 그러나 나중에 C++, 자바, 포트란, 에이다 등 여러 언어를 컴파일할 수 있게 되면서, 현재의 이름으로 바뀌게 되었다.

- 출처 위키피디아 http://ko.wikipedia.org/wiki/GNU_%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC_%EB%AA%A8%EC%9D%8C- -

GNU 컴파일러 모음(GNU Compiler Collection, 줄여서 GCC)

Flask, uwsgi, nginx, uwsgi 설치 및 설정

Page 9: AWS EC2 flask_uwsgi_nginx install guide korean

Mac OS 에서는 gcc 따로 설치할 필요 없고, Xcode를 설치하면 해결된다고 합니다 참고하세요~ ec2는 linux라 설치합니다~

$ sudo yum install gcc (devian 계열은 apt-get 명령어로) $ pip install gcc (실패 pip로는 설치 안됩니다.) 그래서 yum 명령어(리눅스 설치 명령어) 를 사용하여 gcc를 설치하려했습니다. yum, apt 등 여러 종류가 있습니다. $ yum install gcc (권한 문제로 실패) $ sudo yum install gcc (성공적)

$ pip install uwsgi (성공적)

uwsgi 설치 성공했습니다. 이제 nginx 설치하러 가겠습니다.

Flask, uwsgi, nginx, uwsgi 설치 및 설정

Page 10: AWS EC2 flask_uwsgi_nginx install guide korean

$ sudo yum install nginx

한방에 설치가 완료됩니다. 가볍게 y를 입력해주세요.

Flask, uwsgi, nginx, uwsgi 설치 및 설정

Page 11: AWS EC2 flask_uwsgi_nginx install guide korean

$ uwsgi 입력시 다음과 같은 화면이 나온다면 설치에 성공한 것

Flask, uwsgi, nginx, uwsgi 설치 및 설정

Page 12: AWS EC2 flask_uwsgi_nginx install guide korean

Nginx 실행방법은 간단하다. $ sudo nginx 입력하고 아무런 반응이 없어 잘 돌아가는지 궁금하면 aws dashboard 들어가서 해당 instance의 public domain name server를 브라우저 주소창에 입력하면 다음과 같은 화면을 볼 수 있다.

Flask, uwsgi, nginx, uwsgi 설치 및 설정

Page 13: AWS EC2 flask_uwsgi_nginx install guide korean
Page 14: AWS EC2 flask_uwsgi_nginx install guide korean

Nginx 멈추는 방법 $ sudo nginx -s stop

Flask, uwsgi, nginx, uwsgi 설치 및 설정

Page 15: AWS EC2 flask_uwsgi_nginx install guide korean

Flask, uwsgi, nginx, uwsgi 설치 및 설정

간단한 flask 실행 파일 만들었습니다.

Page 16: AWS EC2 flask_uwsgi_nginx install guide korean

$ uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191

주목할 점 http -> socket callable app

출처 :https://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html

$ uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191 그런데 매번 이런식으로 작성하기엔 귀찮으니 뒤에 내용을 담고 있는 파일을 만들기로 함.

현재 디렉토리에서 $ touch aws.ini —> ( aws.ini 라는 이름의 빈 파일 생성) $ vi aws.ini —> (aws.ini 파일 수정)

Flask, uwsgi, nginx, uwsgi 설치 및 설정

Page 17: AWS EC2 flask_uwsgi_nginx install guide korean

chdir = 파일 경로 (확인하는 방법은 pwd 라고 치면 현재 경로 나옴) chmod-socket = 666 callable = app (aws.py 안에 애플리케이션 이름을 뭐로 정의했는지에 따라 달라짐 ex. app.routing , app.run) module = 폴더명 socket = /tmp/uwsgi.sock 으로 입력해주세요 virtualenv = 가상환경 경로 ( virtualenv 사용하지 않는 사람들은 입력안해야함)

Flask, uwsgi, nginx, uwsgi 설치 및 설정

<- aws.ini 파일입니다.

Page 18: AWS EC2 flask_uwsgi_nginx install guide korean

nginx 설정

경로이동 /etc/nginx nginx.conf 파일 수정

in 터미널 $ cd /etc/nginx —> 경로 이동 ( change directory = cd) $ vi nginx.conf —> nginx.conf 파일 수정 (vi editor = vi)

Flask, uwsgi, nginx, uwsgi 설치 및 설정

Page 19: AWS EC2 flask_uwsgi_nginx install guide korean

Before

After

Flask, uwsgi, nginx, uwsgi 설치 및 설정

Page 20: AWS EC2 flask_uwsgi_nginx install guide korean

chmod = change mode 파일 or 폴더에 대한 권한 변경시 사용

Flask, uwsgi, nginx, uwsgi 설치 및 설정

Page 21: AWS EC2 flask_uwsgi_nginx install guide korean

Flask, uwsgi, nginx, uwsgi 설치 및 설정

추가로 콘솔창을 꺼도 서버가 계속 돌아가도록 하시려면 $ uwsgi aws.ini & (‘&’ 추가해주시면 됩니다) 그리고 control + d 누르면 ec2에서 로그아웃 됩니다.

잘나오네요 ㅎ

Page 22: AWS EC2 flask_uwsgi_nginx install guide korean

Git

Page 23: AWS EC2 flask_uwsgi_nginx install guide korean

그럼 이제 원래 작업하던 파일을 가져와서 올려보도록 하겠습니다. (가상환경에서 vi 작업해서 올리기엔 불편하니...)

일단 작업물을 옮겨올 폴더를 하나 만들겠습니다.

mkdir = make directory (경로 만들기) cd = chage directory (경로 이동)

$ sudo yum install git-core (리눅스 설치 명령어 yum을 사용합니다)

$ git ( git 호출, 그런데 아무런 반응이 없네요 설치가 안돼있나 보네요) $ git init ( git 시작하는 명령어)

Page 24: AWS EC2 flask_uwsgi_nginx install guide korean

$ git git을 입력하니 밑에 많은 명령어가 쏟아집니다.

Page 25: AWS EC2 flask_uwsgi_nginx install guide korean

$ git init —> ( git 시작)

$ ls -a 로 현재 경로내 파일 확인해보니 숨김 폴더로 .git이 만들어졌습니다.

$ git clone [email protected]:UrangUrang/Sharable.git

Page 26: AWS EC2 flask_uwsgi_nginx install guide korean
Page 27: AWS EC2 flask_uwsgi_nginx install guide korean

AWS - Godaddy - 도메인 연결

Page 28: AWS EC2 flask_uwsgi_nginx install guide korean
Page 29: AWS EC2 flask_uwsgi_nginx install guide korean
Page 30: AWS EC2 flask_uwsgi_nginx install guide korean
Page 31: AWS EC2 flask_uwsgi_nginx install guide korean

ec2 시간대 변경