[ AWS ]
서비스 > RDS
● 데이터베이스 생성
서비스 > EC2
● 인스턴스 생성
○ 우분투 20.04 사용
○ 퍼블릭 IPv4 주소 & 키로 putty 접속
》 키 등록 : Category > Connection > SSH > Auth > Private key file for authentication
》 login as : ubuntu
● 방화벽 해제
○ EC2
》 인스턴스 》 인스턴스 ID 》 보안 》 보안 그룹 》 인바운드 규칙 》 인바운드 규칙 편집 》 규칙 추가
( 유형 : HTTP & 소스 : 0.0.0.0/0)
○ RDS
》 데이터베이스 》 연결&보안 》 VPC 보안 그룹 》 보안 그룹 ID 》 인바운드 규칙 》 인바운드 규칙 편집 》 소스 유형 변경
( 소스 유형 : Anywhere-IPv4 )
[ PuTTY ]
● root 계정으로 변경
sudo su
● 파이썬 버전 확인
python3 --version
○ 현재 python 3.8.10
》 3.9로 업데이트
● 파이썬 설치
apt update
apt install python3.9
○ python3.8 & 3.9 같이 설치되어 있음
》 우선순위 설정 필요
● 파이썬 버전 변경
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
○ 확인하기
update-alternatives --config python3
》 * 표시로 제일 우선순위가 높은 버전 표시
● 패키지 설치
apt-get install apache2 apache2-dev python3-pip libmysqlclient-dev libjpeg-dev python3.9-dev
》 CentOS 웹 서버 프로그램 : httpd
》 Ubuntu 웹 서버 프로그램 : apache2
● 프로젝트 파일 옮기기 및 압축 해제
○ FileZilla 이용
》 AWS에서 받았던 키 파일을 이용해 비밀번호 없이 접속 가능
》 호스트는 AWS - EC2 에서의 공인 IP
》 포트번호 22
》 사용자 : ubuntu
》 키 파일 : AWS 에서 발급받았던 키 파일
○ 압축 해제
unzip [압축파일이름]
¿ 에러 발생 ¿ ImportError: No module named apt_pkg
¡ 해결
apt-get remove python3-apt
apt-get install python3-apt
apt-get install --reinstall python3-apt
¿ 에러 발생 ¿ unzip: command not found
¡ 해결
apt-get install unzip
● venv 삭제 및 재생성 / 활성화
○ 삭제
rm -rf venv
○ 재생성
virtualenv venv
¿ 에러 발생 ¿ virtualenv: command not found
¡ 해결
apt install virtualenv
○ venv 활성화
source venv/bin/activate
● 라이브러리 설치
pip install -r requirements.txt
● 아파치 장고 연동
○ 모듈 설치
pip install mod_wsgi
○ 웹 서버 설정 파일
》 /etc/apache2/sites-enabled/000-default.conf 내용 추가
LoadModule wsgi_module "/home/web/django/venv/lib/python3.9/site-packages/mod_wsgi/server/mod_wsgi-py39.cpython-39-x86_64-linux-gnu.so"
WSGIPythonHome "/home/web/django/venv"
# 위 두 줄은 mod_wsgi-express module-config 입력 후 출력 결과 붙여넣기
WSGIPythonPath "/[Project 폴더]"
<Directory "/[Project 폴더]/[Project 안의 설정 폴더]">
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static/ /[Project 폴더]/static/
<Directory /[Project 폴더]/static/>
Require all granted
</Directory>
Alias /media/ /[Project 폴더]/media/
<Directory /[Project 폴더]/media/>
Require all granted
</Directory>
● settings.py 파일 설정 변경
○ 배포용 설정
ALLOWED_HOSTS = [] #변경 전
ALLOWED_HOSTS = ['*', ] #변경 후
○ DB 설정
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DB이름',
'USER': '계정',
'PASSWORD': '패스워드',
'HOST': 'AWS-RDS의 엔드포인트 주소',
'PORT': '3306',
'OPTIONS': {
'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"'
}
}
}
》 데이터베이스 적용
python3 manage.py migrate
● 재시작
systemctl restart apache2
☞ 접속 확인! ☜
》 AWS - EC2 에서 할당받았던 퍼블릭 IPv4 주소로 웹페이지 접속 확인
'CLOUD > Server' 카테고리의 다른 글
[DB] 사상 (Mapping) (0) | 2023.03.02 |
---|---|
[DB] 관계 데이터 모델 (0) | 2023.03.02 |
[DB] ER 다이어그램 (0) | 2023.02.27 |
[DB] 데이터 모델링 (0) | 2023.02.23 |
[DB] DBMS (0) | 2023.02.22 |