1. 일단 aws 설정은 전에 완전 삭제후 aws 만들기 따라하면 된다
1. aws 서버를 만들어 놓는다
vscode 로 ssh 되게하면 더좋음 잘보임
2. aws 에 파이썬 및 다른것들 버전 업데이트 및 맞추기
1. 일단 램 크기 만들어 놓는게 좋긴하다 (동영상에서는 늦게 업해버림)
free -h 에 램이 1g라 힘듬 이거 4기가 만들어줘야함
#터미널
$ sudo fallocate -l 4G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ free -h
대충 이제 램이 된다
2. 처음에는 version을 봐서 확인해야한다
#터미널
$ python --version
$ pip --version
#젠장 버전 다 이상하게 되있음 쓰래기 같은 aws 같으 웁!! 웁!!~!~~!
$ sudo dpkg --configure -a (선택)
aws 기본 다운된거 컴파일링 하는거 오래걸림 참고 이거키고 1시간
3. 파이썬 버전 맞추기
터미널
$ ls /usr/bin/ |grep python
# 이걸로 파이썬3 있나 확인부터
$ sudo update-alternatives --config python
# 이걸로 터미널 파이썬 첫을때 실행되는거 확인(아마 아묵더솓 안되있을거임) 에러뜸
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
# 파이썬2 는 1이라는 숫자표 주기
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
#파이썬3 은 2라는 숫자표 주기
$ sudo update-alternatives --config python
# 이제 2라는 숫자표 가진 python 만 쓰게 하기
$ python --version
# 이제 3뜰거임
4. pip 버전 맞추기
# 파이썬 3 되니깐
$ wget https://bootstrap.pypa.io/get-pip.py
# pip 수동으로 다운받음
$ sudo -H python3 get-pip.py
# 이걸 3으로 풀어써서 pip를 파이썬 3 로 재설정
$ pip --version
#이제 파이썬3 뜰거임
5. 우분투도 업해주자
# 우분투 업그래이드
$ sudo apt-get update
동영상에선 이제 메모리 올림 (이전에 했다면 스킵)
6. 파이썬 pip 설치하자
# python-pip 설치
$ sudo apt-get install python3-pip
#pip3 확인해보자
$ sudo -H pip3 install --upgrade pip
#아마 최신일거임
2. 이제 본격적 web 실행 준비
1. django설치
#폴더 ubuntu 유저로 이동바람
(아마 난 desktop 만들어서좀 파일 관리하기 편하게 만들었음 선택임)
$ mkdir Desktop (선택임)
$ cd Desktop (선택임)
# virualenv 설치
$ sudo apt-get install virualenv
# 설치 실행
$ sudo -H pip install virtualenv
$ virtualenv -p python3 venv
# 그다음 실행 이건내가 터미널에 실행
$source venv/bin/activate
# 됫다 가상환경
pip install Django
# 데장고 깔고
django-admin.py startproject mydjweb
# mydjweb으로 프로젝트만듬
# 그리고 파일에 settings.py 에
'''
ALLOWED_HOSTS(이거찾으셈) = ['*']
'''
# *로바꿔서 오는 접속방법 다되게한다
$ python3 manage.py runserver 0.0.0.0:8000
#서버 켜서 확인해보자
#이거 기본 ip로는 안들어가지고 포트따라가면 될것이다
#안돼면 재부팅 이거 aws 설정 다시봐야함
'''
######## 안될경우 ########################
aws에 이 서버에 되있는 사용자 구릅을 들어가서 http 80(기본www에서 들어가는 포트임)을
넣어주고 tcp :8000 포트를 접글할수 있게 만들어준다
'''
2. uwsgi 설치
$ pip install uwsgi
# 드디어 uwsgi 이제 설치해준다
#이 그 뭐냐 mydjweb에서 파일 하나 만들어준다 manage.py랑 같이 있게
$ vi uwsgi.ini
#솨랄라 뭔가 나옴
## i를 눌러서 입력함
##여기안에 잘 맞쳐서 넣어준다
'''
[uwsgi]
chdir=/home/ubuntu/{프로젝트 폴더}
module={프로젝트 내 파일이름}.wsgi:application
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/home/ubuntu/{프로젝트 폴더}/django.log
home=/home/ubuntu/{프로젝트 폴더}/venv
virtualenv=/home/ubuntu/{프로젝트 폴더}/venv
socket=/home/ubuntu/{프로젝트 폴더}/uwsgi.sock
chmod-socket=666
'''
내가 쓴거
'''
[uwsgi]
chdir=/home/ubuntu/Desktop/mydjweb
module=mydjweb.wsgi:application
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/home/ubuntu/Desktop/mydjweb/django.log
home=/home/ubuntu/Desktop/venv
virtualenv=/home/ubuntu/Desktop/venv
socket=/home/ubuntu/Desktop/mydjweb/uwsgi.sock
chmod-socket=666
'''
#이제 ini 적용
$ uwsgi --ini uwsgi.ini
#됫으!!!! 이제
3. nginx 설치
1. 설치하고 conf 찾아 수정하기
$ sudo apt-get install nginx
#이제 설치 ㅅㄱ
$ sudo vi /etc/nginx/nginx.conf
#이 파일 수정하자(설치하면 생김)
'''
안에 http 있는데 거기에 적어줘야함
http(이거 찾으셈) {
upstream django {
server unix:/home/ubuntu/Desktop/mydjweb/uwsgi.sock;
}
}
'''
# 이제 파일 수정하고 나오면
2. 또 sites default 인가 수정하기
$sudo vi /etc/nginx/sites-enabled/default
## 여기안에서 location 찾으셈
'''
location(이거찾으셈) / {
include /etc/nginx/uwsgi_params;
uwsgi_pass django;
}
#이제 서버 연동될거임
# static 파일 연동해주기(이건 밑에 만드셈)
# 그전에 파일 만들어야하는건 잊말것!!
location /static/ {
alias /home/ubuntu/Desktop/mydjweb/mydjweb/static/;
}
# 이것도 같음 내꺼 이미지 넣은 폴더 주소에 추가해주는거임
location /media/ {
alias /home/ubuntu/Desktop/mydjweb/mydjweb/media/;
}
'''
3. aws ip에 django web 실행하기
1. 이 한줄을 위해서 위에 엄청난 짓을 했다
$ sudo service nginx restart
이젠 서버를 키지 않아도 ip만 적어주면 된다 (포트도 안적어도 된다)
확인해보자
aws 에 적혀있는 ip를 복사 chrome에 넣어줘보자
드뎌 !!! 됫다
3. 동영상 촬영한거
4. 추가 재부팅시 자동 웹서버 실행
ubuntu@ip-172-31-42-203:~$ sudo pip3 install uwsgi
ubuntu@ip-172-31-42-203:~$ sudo mkdir /etc/uwsgi
ubuntu@ip-172-31-42-203:~$ sudo mkdir /etc/uwsgi/vassals
ubuntu@ip-172-31-42-203:~$ sudo ln -s /home/ubuntu/Desktop/mydjweb/uwsgi.ini /etc/uwsgi/vassals/
ubuntu@ip-172-31-42-203:~$ sudo uwsgi --emperor /etc/uwsgi/vassals/ --uid www-data --gid www-data
/etc/rc.local 에 설정 추가해줘야됨
아마 뭐뭐 있을텐데 이거 추가해줘야됨
/usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals/ --uid www-data --gid www-data --daemonize /var/log/uwsgi-emperor.log
ubuntu@ip-172-31-42-203:~$ sudo vi /etc/rc.local
i저기 밑에 한줄추가함
#!/bin/sh
# DLAMI Configurations
/opt/aws/dlami/bin/init
# DLAMI Conda Configurations
/opt/aws/dlami/bin/init_conda
/usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals/ --uid www-data --gid www-data --daemonize /var/log/uwsgi-emperor.log
exit 0
~
~
======================경고 실험중 안됨 ==================================
aws 추가 설정
# 터미널
sudo chmod +x /etc/rc.local
sudo vi /lib/systemd/system/rc-local.service
파일에 이렇게 내용을 추가한다
[Service]
.....................
[Install]
WantedBy=multi-user.target
# 터미널
sudo systemctl enable rc-local.service
sudo systemctl start rc-local.service
sudo dpkg --configure -a
'Programmers > 데브코스 인공지능' 카테고리의 다른 글
[프로그래머스 스쿨 AI] Weak 6 확률이론 (0) | 2021.05.28 |
---|---|
[프로그래머스 스쿨 AI] Weak 6 머신러닝이란 1 (0) | 2021.05.28 |
[프로그래머스 스쿨 AI] Weak 5 Django DB, forms (0) | 2021.05.19 |
[프로그래머스 스쿨 AI] Weak 5 django (0) | 2021.05.17 |
[프로그래머스 스쿨 AI] Weak 4 미션들 (0) | 2021.05.17 |