ABOUT ME

나의 공부 기록

Today
Yesterday
Total
  • NCP를 이용한 프로젝트 배포 - (3) 도메인 및 SSL 적용
    ☁️ infra/Naver Cloud Platform 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

     

    댓글

Designed by Tistory.