☁️ infra/Naver Cloud Platform

NCP를 이용한 프로젝트 배포 - (3) 도메인 및 SSL 적용

beomsic 2025. 2. 28. 01:09

Naver Cloud Platform은 HTTPS/기본 도메인을 제공하지 않아 도메인 지정하고 SSL 적용해보기로 했다.

 

1️⃣ 개인 도메인 구매

NCP Global DNS를 사용하기 위해서는 개인 도메인이 필요하다.

개인 도메인은 호스팅 사이트에서 구매할 수 있다. (가비아 에서 구매)

 

2️⃣ NCP Global DNS에 구매한 도메인 등록

NCP 콘솔 > Networking > Global DNS > 도메인 추가

 

 

- 구매한 도메인 추가

 

도메인이 등록이 되면 Global DNS에서 제공하는 네임 서버를 확인할 수 있다.

  • 가비아는 자체적으로 DNS 서버를 운영하고 있어 구매한 도메인은 자동으로 가비아의 도메인 서버로 등록된다.
  • 따라서, Global DNS에 도메인 등록이 완료되었으면 가비아의 도메인 통합 관리 툴 에서 네임 서버 변경을 진행

 

가비아 > 도메인 관리 > 도메인 정보 변경

 

 

3️⃣ 서버에 도메인 호스트 연결 및 확인

네임 서버 변경을 했다면 NCP Global DNS 서비스에서 레코드 추가 ⇒ 서버에 호스트 정보를 매핑

NCP 서버의 공인 IP를 통해서 Global DNS 서비스의 레코드 추가를 통해 서버와 호스트를 연결한다.

 

- 레코드 값: 서버 IP

 

레코드 등록 여부 확인

> nslookup api.{}
Server: xxx.xx.xxx.xx
Address: xxx.xx.xxx.xx#xx

Non-authoritative answer:
Name: api.{}
Address: xxx.xxx.xxx.xxx

 

 

4️⃣ Certificate Manager 를 이용한 인증서 발급

등록된 인증서가 없기 때문에 Certificate Manager 를 통해서 SSL 인증서를 발급

 

 

 

1. 인증서 발급 버튼 을 누른다.

 - 도메인 이름에 구매한 도메인을 입력 (ex: test.com)

- 추가 도메인으로 내가 사용할 서비스에 맞는 도메인을 설정할 수 있다.

 

2. DNS 검증을 이용해 도메인의 소유권 검증

 

3. 신청완료 시 인증서가 진행 중인 상태

 - DNS 등록을 진행시 해당 인증서 사용가능

 

5️⃣ Global DNS 레코드 추가를 통해 DNS 검증

 

인증서를 만들고 나서 보이는 정보에서 Record Name과 Value로 레코드를 CNAME 타입으로 추가한다.

- 위 사진에서 검증 상태가 성공인건 내가 미리 설정 해놓은 인증서이기 때문

 

 

 

🤔 주의 : 도메인 이름 값을 그대로 복사 붙여넣기하는 것이 아니다.

  • ex) xxxxxxx.test 까지만 입력(.test.com 제외)

레코드를 추가한 후 [설정 적용] 을 통해서 도메인 배포

 

 

6️⃣ Load Balancer

📌  Target Group - 생성

  • VPC : Server가 존재하는 VPC
  • 프로토콜 : HTTP
  • 포트 : 8080 (Spring boot 내장 톰캣)

 

✅  Target Group - Health 체크

  • Target으로 잡은 Server:Port 가 200통신을 하는지 확인하는 신호를 보내는 작업
  • GET - /health 를 통해 200상태코드를 확인

 

✅  Target Group 상태 확인

 

 

 

📌 로드밸런서 생성

- 애플리케이션 로드밸런서 선택

 

부하 처리 성능

  • CPS (Connection Per Second)를 의미
  • 초당 TCP Connection을 맺을 수 있는 횟수 설정
  • 많은 요청이 많이 없을 것이라 생각해 small로 설정

 

VPC

  • Target Group 과 같은 VPC 선택
  • 서브넷 - Load Balancer 용 서브넷을 따로 생성

 

Network

  • 외부 도메인에서 요청이 오는 것을 원하기 때문에 Public IP로 설정

 

 

📌 로드밸런서에 SSL 인증서 등록

 

- 리스너 설정에서 HTTP 뿐 아니라 HTTPS 리스너 추가 (포트 443)

- 아까 등록한 인증서를 추가

 

HTTP 프로토콜 리스너에 대해서 규칙 조회 / 변경 버튼을 통해 규칙을 추가

 

- 엔드 유저가 80으로 들어왔을 때 443으로 리다이렉트

- host header xxx.test.com 에 대해 HTTPS 443으로 리다이렉트

 

 

😎 접속

내가 만든 헬스체크 API 로 접속해보자 - https://{도메인}/health

  • OK 같은 리턴 값을 확인

 

📖 참고자료

https://guide.ncloud-docs.com/docs/loadbalancer-application-vpc

https://www.ncloud.com/product/security/certificateManager

https://www.ncloud.com/product/networking/loadBalancer