Study/Django(멋쟁이사자처럼 7기 운영진)

[멋사7기] 8주차 - 5. aws 배포하기

안다희 2019. 3. 1. 17:01
728x90

 

Elastic Beanstalk으로 웹서비스 배포해보기

 

 

과금주의

1년동안은 무료.. 그 이후는 과금!   실습하고 꼭 취소하기

 

 

1) AWS 회원가입

2)  험난한 배포의 길...

3)  awsebcli 설치

eb 명령어 사용 위해 (like python~ git ~ 위해 python, git 설치)

 

pip install awsebcli --upgrade --user

 

확인하기

 

 

 

 

user@DESKTOP-3OU4T9D MINGW64 /e/0_lilelion7/likelion3

$ pip install awsebcli --upgrade --user

 

 

!!!!!!!설치 안되면 클릭!!!!!!!

 

**) 설치 안되면

https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/eb-cli3-install-windows.html

 

 

이과정을 진행한다.

 

 

클릭!

 

환경변수 클릭!

 

 

Path에 경로 추가할거임. Path 누르고 편집 클릭!

 

 

 

새로만들기 클릭하고 저 경로 추가!

 

아까 위에 써둔 경로로 들어가면

 

 

경로가 다를 수 있다고 뜬다.

 

나같은 경우는 윈도우에서 python 검색해서 우클릭 - 파일위치열기 기능으로 찾았다.

 

그리고 확인 쭉 누르고 쉘 다시 켜면 eb --version 잘된다!!!

 

 

 

 

소셜로그인 배포해본다. (likelion3 - week7_login)

가상환경 켜는거 잊지말기.

 

4) .gitignore 파일 만들기

 

# Created by https://www.gitignore.io/api/django,elasticbeanstalk
# Edit at https://www.gitignore.io/?templates=django,elasticbeanstalk

### Django ###
*.log
*.pot
*.pyc
__pycache__/
local_settings.py
db.sqlite3
media

### ElasticBeanstalk ###
.elasticbeanstalk/*
!.elasticbeanstalk/*.cfg.yml
!.elasticbeanstalk/*.global.yml

 

그리고 github에 push하기

https://github.com/daheeahn/aws_deploy_test

 

5) manage.py있는 곳에 requirements.txt

만들어주면 eb가 알아서 적어줄거라고 생각했지만 오류가 났음

 

pip freeze > requirements.txt

이렇게 하기

 

6) 똑같은곳에 .ebextensions 폴더만들고 그 안에 django.config 파일 만들기 그리고 config  파일 안에

option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: week7_login/wsgi.py

프로젝트 폴더 안에  wsgi 파일 있으므로 주황색 글씨처럼~!

 

 

7)  git push

 

8) deactivate

프로젝트 안에서 쳐도 괜찮았음

 

9)

user@DESKTOP-3OU4T9D MINGW64 /e/0_lilelion7/likelion3    (위치 주의)
$ eb init -p python-3.6 django-tutorial
(myvenv)

 

 

config.yml이 생김

 

Application django-tutorial has been created.

 

eb init을 처음 했을 때 aws-access-id, aws-secret-key 발급받는 방법

http://wildpup.cafe24.com/archives/929

 

 

django-tutorial은 애플리케이션 이름.

 

13분쯤에 이미 애플리케ㅣ션 만들어진거를 명령어로 쳤을때 해결하는 방법있음

 

 

$ eb init -p python-3.6 django-tutorial
ERROR: UnicodeDecodeError - 'cp949' codec can't decode byte 0xeb in position 283: illegal multibyte sequence

 

==> .gitignore에 한글을 써놔서 생긴 오류.

 

 

 

10) eb create django-env

 

user@DESKTOP-3OU4T9D MINGW64 /e/0_lilelion7/likelion3
$ eb create django-env

 

=> 장고로서 사용할 수 있는 서버컴퓨터환경을 하나 할당 받는 것! (오래 걸림)

 

successfully~~ 뜨면 성공.

 

Successfully launched environment: django-env

 

2019-03-03 08:11:32    ERROR   Your WSGIPath refers to a file that does not exist.

.extensions 오타였음

 

 

 

11) eb status

 

우리들을 위한 도메인이 하나 생김

eb status로 확인가능

 

CNAME이 도메인!    

 

 

 

 

 

12) settings.py에 도메인 넣기

ALLOWED_HOSTS = ['django-env.wpugirg4te.us-west-2.elasticbeanstalk.com']

 

 

13) commit push

 

user@DESKTOP-3OU4T9D MINGW64 /e/0_lilelion7/likelion3/week7_login (master)
$ git add .
(myvenv)

 

user@DESKTOP-3OU4T9D MINGW64 /e/0_lilelion7/likelion3/week7_login (master)
$ git commit -m "aws 서버 도메인 받음"
[master b5442a1] aws 서버 도메인 받음
 1 file changed, 1 insertion(+), 1 deletion(-)

(myvenv)

 

user@DESKTOP-3OU4T9D MINGW64 /e/0_lilelion7/likelion3/week7_login (master)
$ git push -u origin master

 

14) 배포

 

user@DESKTOP-3OU4T9D MINGW64 /e/0_lilelion7/likelion3
$ eb deploy

 

 

 

15) eb open

그래도 오류가 난다.

 

 

지금 내가 위치를 혼동했다.

딱 프로젝트 안에서 해야되는데...!

 

그래서 likelion3/week7_login 여기서만 다 진행돼야 하기 때문에

이 위치에 만들어진거 삭제하기로!

 

이 위치에서

eb terminate --all

 

그리고 다시 9번부터 진행! ctrl+c 누르지 말기 그냥..

 

 

*** eb terminate --all 안하면 과금될수도~

 

========================

이후 발생한 오류

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

 

 

 

user@DESKTOP-3OU4T9D MINGW64 /e/0_lilelion7/likelion4/awsdeploy (master)

$ pip freeze > requirements.txt

 

했더니 배포 성공!

 

이렇게 하고 push 하고 eb deploy까지해야 변경사항 저장되는 것이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

출처: https://mingos-habitat.tistory.com/34 [밍고의서식지:티스토리]