아마존 EC2 인스턴스 생성
도메인 구매 → DNS관리툴에 EC2 인스턴스 A타입 퍼블릭 도메인(IPv4) 등록
PUTTY 설치
PuTTYgen**을 실행Load 클릭: EC2 인스턴스를 생성할 때 다운로드한 PEM 파일을 로드.Save private key 클릭: 경고 메시지가 나타나면 "Yes"를 클릭하고, PPK 파일로 저장Host Name**에 ec2-user@your-ec2-public-dnsConnection -> SSH -> Auth**에서 **Private key file for authentication**에 .pem 파일을 변환한 .ppk 파일등WinSCP 설치
SFTPec2-xx-xx-xx-xx.compute-1.amazonaws.com)22ec2-userSave 버튼을 클릭하고, 원하는 이름으로 세션을 저장파일 탐색기 열기
파일 전송
~/ 또는 /home/ec2-user/ 디렉토리가 적합Upload**를 선택SSH를 통해 파일 확인
WinSCP를 통해 파일을 전송한 후, PuTTY를 사용하여 EC2 인스턴스에 접속하여 파일이 제대로 전송되었는지 확인(로그인 아이디 : ec2-user)
PuTTY를 실행합니다.Host Name에 EC2 인스턴스의 퍼블릭 DNS를 입력하고, Connection -> SSH -> Auth에서 PPK 파일을 선택한 후 Open 버튼을 클릭합니다.cd /home/ec2-user
ls
# 위 명령어를 통해 전송된 파일이 목록에 나타나는지 확인
# 업로드한 파일 디렉토리로 이동
cd /home/ec2-user/accident-detection-aiserver
#파일 확인:
ls
#가상환경 활성화 및 필요 패키지 설치
python3 -m venv myenv #한번만
source myenv/bin/activate
pip install -r requirements.txt
sudo yum install mesa-libGLU -y
###메모리 부족 문제를 해결하기 위해 Swap 공간을 생성
#Swap 파일 생성:
sudo fallocate -l 4G /swapfile
#Swap 파일에 올바른 권한 설정:
sudo chmod 600 /swapfile
#Swap 파일 형식 지정:
sudo mkswap /swapfile
#Swap 파일 활성화:
sudo swapon /swapfile
#Swap 활성화 확인:
sudo swapon --show
#Swap 파일을 부팅 시 자동으로 활성화:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
###1회용 -> EC2인스턴스를 비싼걸로 해도 됨
# Nginx 설치
sudo amazon-linux-extras install nginx1 -y
# Nginx 설정 파일 수정
sudo nano /etc/nginx/nginx.conf
# Nginx 파일 내용
server {
listen 80
listen [::]:80;
server_name capstone-aiserver.shop #실제 도메인 이름
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass <http://127.0.0.1:5000>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# Crtl+O, Enter, Ctrl+C로 편집종
#Nginx 재시작
sudo systemctl restart nginx
#앱 실행
python app.py