이건 나중에 프론트랑 연결할 때를 위해 설정해두는 것!!
EC2는 기본으로 HTTP로 연결되는데 프론트에서는 HTTPS로 작동해서 백엔드 쪽에 HTTPS를 적용시켜보겠다.
Nginx는 웹 서버 소프트웨어로 리버시 프록시 기능을 가지고 있다. 그리고 Certbot은 무료로 HTTPS 인증서를 발급해준다.
프론트에서 요청이 들어오면 NginX 서버가 해당 요청을 스프링부트로 전달한다. NginX는 certbot로 HTTPS가 적용되어있기 때문에 정상적으로 다른 도메인을 사용하는 프론트와 백엔드에서 세션 쿠키가 사용이 된다.
sudo apt update
sudo apt install nginx
sudo service nginx status
로 잘 설치되었는지 확인하고 EC2의 IP를 브라우저에 입력해보면 NignX 서버가 실행되고 있는것을 확인할 수 있다.

sudo snap install --classic certbot
위 명령어로 설치해주고 SSL 인증서를 발급받아야하는데, SSL 인증서를 발급받기 위해서는 도메인 주소가 필요하다.
'가비아'나 '내 도메인 한국'과 같은 도메인 발급 서비스를 이용하여 발급한다.
나는 가비아를 사용했는데,

원하는 도메인 구입 후에 도메인 설정에 들어간다. 사진과 같이 설정하면 되는데 값/위치에는 EC2의 IP주소를 기입한다.
근데 도메인 구입 후에도 그렇고 설정 후에도 그렇고 시간이 좀 걸리니까 기다려야한다!!
sudo certbot --nginx -d {도메인}
위 명령어를 입력해서 이메일 인증까지 하면 설정이 완료된다. 도메인에는 www.~.~ 입력해주면된다.
sudo vi /etc/nginx/sites-available/default
위 경로로 이동해서 default 파일을 수정해줘야한다. certbot 파일은 자동으로 https 관련 설정을 해주는데 리버스 프록시의 역할 등 추가적인 설정을 해야한다.
내리다보면 내가 발급받은 도메인이 적혀있는 부분이랑 try_files $uri $uri/ =404; 부분이 나오는데 해당 부분을 주석 처리하고 proxy_pass <서버IP>:<스프링부트 포트번호>$request_uri;를 적어준다.
이건 NginX 서버로 들어오는 모든 요청을 스프링부트 서버로 연결해준다는 뜻이다.
sudo nginx -t
위 명령어로 문법에 오류 있는지 확인하고 성공했다면 아래 명령어를 통해 nginx 재시작을 해주면 된다.
sudo systemctl reload nginx