[AWS] - Spring Boot 프로젝트 배포(2)
개발 환경
💻 OS : M1 Mac Ventura 13.1 / EC2 Amazon Linux
🍃 Spring : Spring Boot 2.7.7
🏭 Env : Gabia(가비아), Nginx, Certbot/SSL
Gabia
도메인 구매
앞으로 DNS를 사용할 것이기 때문에, 가비아에 들어가 도메인을 구매하자!
- 본인이 원하는 도메인을 검색한 뒤, 신청
- 구매 과정에서 따로 건들이는 것 없이 구매!
도메인 설정
- 메인화면 우측 상단에 있는 My가비아 버튼 클릭
- 방금 구매한 도메인의 관리 버튼 클릭
- DNS 정보 탭에 들어가서 DNS 관리 버튼 클릭
- 방금 구매한 도메인의 가장 우측 설정 버튼 클릭
- 사진과 같이 레코드 수정을 눌러 편집
-
www
,@
총 2개의 호스트를 각각 지정해준뒤,TTL
은 3600으로 지정해준다. - 값/위치는 EC2의 퍼블릭 IPv4(탄력적 IP)를 입력해주면 된다.
적용까지 최대 10분이 걸릴 수 있으며, 신청한 도메인으로 접속 시 EC2에 배포되어 있는 서버에 접속할 수 있게 된다.
Nginx
Amazon Linux(EC2)
에 ssh
로 접근해서 아래 과정을 진행!
Nginx 설치
sudo amazon-linux-extras install -y nginx1
nginx -v
config 파일 수정
sudo vi /etc/nginx/nginx.conf
여기서 server_name 부분에 가비아에서 구매한 도메인을 입력해준다.
Certbot/SSL
https 보안을 사용하기 위해서는 SSL 인증서가 필요하다.
아래 과정을 통해 SSL 인증서를 발급 받고, 적용해보도록 하자!
sudo wget -r --no-parent -A 'epel-release-*.rpm' http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/
sudo rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-*.rpm
sudo yum-config-manager --enable epel*
sudo yum install -y certbot python2-certbot-apache
sudo yum install certbot-nginx
네트워크에 문제가 있지 않은 이상 위 내용에서 에러가 날 일은 없을 것이다.
sudo certbot --nginx
모든 설치가 완료되면, 위 명령어를 통해 인증서를 발급!
- 처음에 나오는 email 입력은 필수로 기억
- 모두
Y
를 입력해 동의해주도록 한다!- 홍보성 이메일 수신 여부는
N
을 해도 상관 없음!
- 홍보성 이메일 수신 여부는
Proxy
sudo vi /etc/nginx/nginx.conf
- conf 파일을 수정하기 위해 위 명령어 입력
location / {
proxy_pass http://localhost:8080; # 자신의 springboot app이사용하는 포트
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;
}
위의 내용을 총 두 곳에 등록할 것이다.
# nginx에 문제가 없는지 테스트
sudo nginx -t
# nginx 서비스 재시작
sudo service nginx restart
댓글남기기