EC2 프리티어 종료 기간이 이틀앞으로 다가왔다. 프리티어가 종료되면 어떤 요금 폭탄을 맞게될지 모르기 때문에 얼른 lightsail로 서버를 이전하기로 했다. 다행이 실시간으로 돌아가는 서버는 두개밖에 없어서 빠르게 이전할 수 있었다.
원달러 환율이 1440을 넘어선 지금…. 요금 폭탄을 맞기 전에 얼른 이전하도록 하자!!
Lightsail 설정
1) lightsail 인스턴스 설정
우선 lightsail을 빠르게 생성해준다. ubuntu / 3.5$ plan 으로 설정한다.
Network설정에서 필요한 포트들을 열어둔다. https를 위해 443포트를 열어두었다.
추가로 고정ip를 설정해주면 인스턴스가 종료될 때에도 ip가 변경되지 않는다!
이제 static_ip:port 로 접근해보자. 접근이 된다면 설정이 잘 된 것이다.
2) ubunt설정
•
필요한 패키지 설치
sudo passwd 비밀번호 변경
sudo apt update
sudo apt upgrade
# nodejs server를 위한 설정들
sudo apt install npm
sudo apt install -g n
sudo n stable → 종료 후 다시 시작
# tmux session을 활용해서 서버를 돌리기 때문에 tmux를 설치해주었다.
sudo apt install tmux
Shell
복사
•
.env 등 환경변수 이전
•
nginx 설정
sudo apt install nginx
sudo service nginx start
Shell
복사
3) ssl 설정
Let’s Encrypt를 활용해서 SSL 인증서를 발급받았다. 아래 블로그를 참고하면 손쉽게 처리할 수 있다. 4가지 방법을 소개하는데 그 중 내가 시도한 방법을 소개하겠다.
웹서버를 통한 Let’s Encrypt SSL 인증서 발급
1.
certbot 설치
sudo apt install certbot python3-certbot-nginxcc
Shell
복사
2.
Nginx 설정 확인 - conf파일에 server_name을 등록합니다.
# /etc/nginx/sites-available/{name}.conf or default
server {
server_name example.com www.example.com;
}
Shell
복사
3.
동작 확인
sudo nginx -t
Shell
복사
4.
방화벽 확인
sudo ufw allow ssh
sudo ufw allow 'Nginx Full'
Shell
복사
5.
SSL 인증서 발급
sudo certbot --nginx -d 사이트명
Shell
복사
크론탭 등록
0 0 1 * * sudo certbot renew --dry-run // 매달 ssl 인증서 갱신
JavaScript
복사
5) 도메인 연결
이제 기존에 사용하던 도메인에 새로 발급받은 static ip를 연결하도록 하자! 도메인을 구매한 서비스(ex 가비아 등)로 이동해서 변경해주면 된다.
도메인 연결을 마지막에 진행해야 서비스가 종료되지 않고 서버를 이전할 수 있었다. 실수로 ssl 연결 전에 바꿔버려서 한동안 서비스가 먹통이였지만… 서비스 사용자가 적어서 조용히 넘어갈 수 있었다. 만약 이 포스팅을 참고한다면 순서대로 진행하길 바란다!
EC2 인스턴스 삭제
이제 필요없어진 EC2 인스턴스를 종료하자!! 종료된 후, 10시간 이내에 목록에서 지워진다. 시간이 지난 후 다시 확인해 보자.
만약 바로 종료가 안된다면 종료 방지 기능이 켜져있는지 확인하자
왼쪽 메뉴에서 볼륨으로 들어간다. 인스턴스는 종료되었지만, 남아있는 볼륨이 있다면 삭제해준다