Search
Duplicate

누구보다 빠르게 EC2 → lightsail 이전하기(ubuntu 설정부터 ssl 인증서 발급까지)

간단소개
저렴한 Lightsail로 갈아타자!
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
AWS
태그
Scrap
8 more properties
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-nginx
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시간 이내에 목록에서 지워진다. 시간이 지난 후 다시 확인해 보자.
만약 바로 종료가 안된다면 종료 방지 기능이 켜져있는지 확인하자
왼쪽 메뉴에서 볼륨으로 들어간다. 인스턴스는 종료되었지만, 남아있는 볼륨이 있다면 삭제해준다

Reference