NCP 서버 생성 및 접속은 1편으로!
2025.02.26 - [프로젝트/Cushion] - [쿠션] Naver Cloud Platform 배포 (React) - ① 서버 생성 및 접속 편
[쿠션] Naver Cloud Platform 배포 (React) - ① 서버 생성 및 접속 편
1. 개요쿠션은 포텐데이 X 클로바 스튜디오 해커톤을 진행하며 만들어진 서비스로, 해커톤 고도화 과정까지 운영되다가 1차 지원금을 모두 사용함과 동시에 과금이 발생하면서 무려 6개월 동안
cconac.tistory.com
1. 개요
배포까지 모두 완료되었지만, 지금은 공인 IP를 통해서만 배포된 서버에 접근할 수 있는 상태이다. 모든 사람들이 도메인을 통해 서비스에 접근할 수 있도록 하고 싶은데 서버 IP로 접근하게 하는 상황이다보니 포트포워딩이 필요했다. 🙏 그러기 위해서는 포트포워딩을 위한 웹 서버를 선택해야 했는데, 난이도가 쉬운 편에 가볍고 빠르다는 장점까지 가지고 있는 웹 서버 nginx를 택하게 되었다. 아주 웹 서버의 팔방미인이시다. 🕺
2. 포트포워딩
1. Nginx 설치
> sudo apt update
> sudo apt install nginx
# 실행되는지 확인하고 싶다면
> sudo systemctl start nginx
# 부팅 시 자동으로 시작되도록 설정
> sudo systemctl enable nginx
2. Nginx 설정
1. 80 포트와 도메인 연결
> sudo nano /etc/nginx/sites-available/default
# 편집기 열리면 아래 내용 작성 후 Ctrl+O (저장) Ctrl+X (나가기)
server {
listen 80;
server_name domain_URL;
location / {
proxy_pass http://localhost:4000;
proxy_http_version 1.1;
proxy_set_header Host $host;
}
}
2. Nginx 재시작
> sudo systemctl restart nginx
3. 도메인으로 접속
server_name에 작성한 domain_URL로 접속하면 성공적으로 화면이 보여진다. 하지만, 현재는 80 포트로만 연결해 뒀기 때문에 http로만 도메인 접속이 가능하다. 이는 브라우저에서 보안상 권장하지 않기 때문에 nginx에서 SSL 인증서를 어떻게 설정할 수 있는지 알아보자.
3. SSL 인증서 발급 및 설정
1. Certbot 설치
Certbot은 HTTPS를 활성화하기 위해 웹 사이트에서 Let's Encrypt를 발급받고 갱신 및 관리하는, 즉 인증서를 자동으로 관리해 주는 무료 오픈 소스 소프트웨어 도구다. 정말 간편한 SSL 인증서 발급이 가능하기 때문에 Certbot을 선택했다.
> sudo apt update
> sudo apt install certbot python3-certbot-nginx
2. Nginx 설정 확인
인증서를 발급받기 전, Nginx 설정에 문제가 없는지 확인이 필요하다. 사실 이건 인증서를 발급받는 과정이 아니더라도 수시로 해 줘야 그때마다 오류 발견이 가능하기 때문에, 수시로 확인하는 것을 권장한다. 😱 안 그러면 에러를 반환하며 서버가 제대로 돌아가지 않는다.......
> sudo nginx -t
3. 인증서 발급
아래 명령어로 간단하게 SSL 인증서를 발급받을 수 있다. 발급 과정에서 이용 동의서와 이메일을 입력하라고 나오는데, 두 약관에 모두 동의해 주고 이메일까지 입력해 주면 인증서 발급까지 모두 완료된다.
> sudo certbot --nginx -d <domain_URL>
도메인을 잘못 입력했거나, 유효하지 않은 도메인일 경우 아래와 같은 에러 메시지가 표시될 수 있으니 주의하도록 하자. 나 같은 경우는 Global DNS에 레코드를 등록하지 않고 도메인만 주구장창 입력하다 영문도 모른 채 한 시간을 헤맨 경험이 있다. 🥲
check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AAAA
for domain_URL - check that a DNS record exists for this domain
4. 인증서 자동 갱신 설정
Let's Encrypt 인증서는 90일 동안 유효하다. 때문에, 그 시기마다 재발급을 받아 줘야 하는데 90일을 일일이 세고 있는 것도 번거롭고, 그 주기를 기억하고 있다 하더라도 그때마다 발급을 받는 것도 불편하기 때문에 Certbot은 자동 갱신을 아래 명령어 한 줄로 지원하고 있다. 👍
> sudo certbot renew --dry-run
5. Nginx 재시작
모든 설정이 완료되었다면 nginx를 재시작해 주면 된다.
> sudo systemctl restart nginx
6. 도메인으로 접속 (최종)
재시작 후 등록된 도메인으로 접속하면 모든 과정은 끝이다. 👏 이 글이 많은 분들께 도움이 되었으면 좋겠고 마지막으로 우리 팀의 서비스를 홍보하며 끝을 내도록 하겠습니다. 오예~
3. REFERENCE
'프로젝트 > Cushion' 카테고리의 다른 글
[쿠션] Naver Cloud Platform 배포 (React) - ① 서버 생성 및 접속 편 (0) | 2025.02.26 |
---|