안녕하세요
이번 시간에는 LoadBalancer에서 서비스 중단 없이 서비스 도메인 변경하는 방법을 소개하고자 합니다.
1. 개요
사용자가 A.test.com라는 서비스를 이용하고 있습니다. 그런데 갑자기 시스템 관리자가 A.test2.com이라고 하는 도메인으로 서비스 도메인을 바꾸고자 합니다. 이때 A.test2.com 도메인에 대한 준비만 끝났다고 바로 A.test.com을 지워버리면 기존에 서비스를 이용하던 사용자들은 서비스를 이용할 수 없습니다. 또한 A.test.com 도메인을 A.test2.com에 연결시키지 않으면 기존 사용자들은 서비스 중단으로 부정적인 경험하게 됩니다.
사용자가 서비스 중단을 경험하지 않으려면 시스템 관리자는 A.test.com으로 접속하거나 A.test2.com으로 접속해도 동일한 서비스를 보여주어야 합니다. 그렇게 하기 위해 호스트 기반으로 서비스를 구성한 후에 1번에 대해 A.test2.com으로 리다이렉트 시켜주면 됩니다.
서비스를 운영하다가 A.test2.com 서비스에 웹 사이트 주소 변경 안내 팝업창을 띄워주고 기존 A.test.com에서도 동일하게 웹사이트 주소 변경 안내 서비스를 띄워줍니다. 그렇게 천천히 Fade-Out 시키면 사용자가 서비스 이용에 불편함을 겪지 않고 서비스 도메인을 변경할 수 있게 됩니다. 충분히 웹사이트 주소 변경 안내를 고지했다면 기존 도메인은 삭제해도 무방합니다.
2. 서비스 플로우
기본적으로 사용자는 서비스 도메인을 통해 요청합니다.
1. Global DNS
- DNS에서는 서비스 중인 도메인과 서브도메인이 등록되어 있어야 합니다.
- WAF와 연동되어 있다면 서브도메인에 대한 CNAME 처리는 WAF 로드밸런서의 엔드포인트로 등록되어야 합니다.
2. WAF
- WAF는 80/443 요청에 대해 기본적으로 443으로 처리합니다.
- 이때 WAF에서는 SSL Offloading으로 WAF에서 SSL 인증 처리를 하게 되며 로드밸런서에 HTTP/HTTPS 프로토콜로 전달합니다.
- 다중 인증서를 기본적으로 지원하고 있기 때문에 DomainA와 DomainB에 대한 인증서를 가지고 있어야 합니다.
3. LoadBalancer
- LoadBalancer는 WAF에서 SSL 인증을 처리했기 때문에 443을 리스너로 받을 필요 없이 Load Balancer <> Web Server에는 평문으로 통신하여 통신 성능을 높일 수 있습니다.
- 이때 로드밸런서에는 기존 서브 도메인이 타겟 그룹으로 잡혀있을 텐데 서비스 도메인 변경 시 서비스 중단이 없으려면 리다이렉트 처리를 해주어야 합니다.
4. Web Server
- 최근에는 포트보다 헤더 기반의 서비스가 많아지고 있기 때문에 헤더 기반의 서비스가 잘 구성되어 있는지 확인합니다.
3. WAF 인증서 추가하기
NCP 문의하기를 통해 신규 도메인과 연결된 WAF 로드밸랜서에 신규 도메인에 대한 SSL 인증서를 추가합니다. 기본적으로 WAF 로드밸런서는 다중 인증서를 지원합니다.
WAF 로드밸런서는 기본적으로 80 요청에 대해 443으로 자동으로 처리되는 기능을 가지고 있어서 로드밸런서 리다이렉트 시 HTTP > HTTPS로 설정하지 않으셔도 됩니다.
4. 신규 도메인 생성하기
기본적으로 현재 서비스는 기존 도메인으로 연결되어 있기 때문에 opass.shop 이라고 하는 신규 도메인을 생성합니다. 서브 도메인을 등록하고 레코드 값에는 WAF LB 엔드포인트 값으로 변경해 줍니다.
5. 로드밸런서 규칙 설정하기
로드밸런서에서 기존 도메인을 신규 도메인으로 서비스 중단없이 변경하기 위해서는 다음과 같이 로드밸런서를 선택한 후 [리스너 설정 변경]을 눌러 줍니다.
도메인이 WAF와 연결된 경우 80 리스너에 대해 [규칙 조회/변경]을 선택합니다.
도메인이 WAF와 연결되지 않고 바로 로드밸런서와 연결된 경우 443 리스너에 대해 [규칙 조회/변경]을 선택합니다.
(1) 도메인이 WAF와 연결된 경우
로드밸런서는 우선순위 규칙에 따라 동작하기 때문에 규칙을 설정합니다. 우선순위에 숫자는 상관없지만 다음과 같은 순서는 지켜주어야 합니다.
1. 기존 도메인 > 서비스
2. 신규 도메인 > 서비스
3. 기존 도메인 > 신규 도메인 리다이렉트
도메인 변경 작업 진행 시 1번을 3번 밑으로 우선순위를 낮추면 됩니다. WAF에서 기본적으로 80 -> 443은 지원하기 때문에 리다이렉트 포트는 80으로 보냅니다.
그러면 기존 도메인으로 접속 시에도 신규 도메인으로 리다이렉트 되면서 정상적으로 서비스를 운영할 수 있습니다.
(2) 도메인이 WAF와 연결되지 않은 경우
우선순위에 숫자는 상관 없지만 다음과 같은 순서는 지켜주어야 합니다.
1. 기존 도메인 > 서비스
2. 신규 도메인 > 서비스
3. 기존 도메인 > 신규 도메인 리다이렉트
동일하게 도메인 변경 작업 진행 시 1번을 3번 밑으로 우선순위를 낮추면 됩니다. 앞에서 80을 443으로 처리할 WAF가 없기 때문에 리다이렉트 포트는 443으로 보냅니다. 80 리스너에서 443으로 보내는 설정을 기본적으로 해주어야 합니다.
그러면 기존 도메인으로 접속 시에도 신규 도메인으로 리다이렉트 되면서 정상적으로 서비스를 운영할 수 있습니다.
6. 서비스 확인하기
WAF를 사용할 시 WAF에 인증서를 넣어주어야 하고 WAF 없이 LB를 리버스 프락시로 단독으로 사용할 시 로드밸런서 443 리스너에 해당 설정을 진행해주어야 합니다.
7. 주의사항
1. 기본적으로 로드밸런서에서 리다이렉트 시키는 방법보다 서비스 레벨에서 헤더 기반으로 처리하면서 리다이렉트 하는 것을 권장합니다. Ncloud에서는 A.test.com, B.test.com, C.test.com > A.test2.com으로는 한 번에 처리가 가능한데 A.test.com, B.test.com, C.test.com > A.test2.com, B.test.com, C.test.com으로 한 번에 처리할 수 없기 때문에 처리할 수만큼 리다이렉트 규칙을 생성해야 하기 때문입니다.
2. 도메인 변경 작업을 진행하면서 로그인이 풀리거나 CORS 문제가 생길 수 있습니다. 개발이나 스테이지 환경에서 먼저 테스트를 해본 후에 도메인 변경 작업을 진행해주시면 됩니다.
이번 시간에는 서비스 중단없이 로드밸런서에서 서비스 도메인을 변경하는 방법에 대해 알아봤습니다.
감사합니다.
'Cloud > Naver Cloud' 카테고리의 다른 글
[AI 막차 탑승 : HyperCLOVA X] HCX J팀 프로젝트 산출물 및 후기 (0) | 2024.07.03 |
---|---|
[Ncloud] CDN 서비스인 Global Edge의 Match Protocol 미지원으로 인한 문제점 (0) | 2024.06.26 |
[Ncloud] Global Edge 멀티 어카운트에서 SSL 인증서 업데이트하는 방법 소개 (0) | 2024.06.17 |
[Ncloud] Cloud Insight를 통해 인바운드 트래픽 확인하기 (0) | 2024.06.11 |
[Ncloud] 쉽게 따라할 수 있는 VPC 간 IPsec VPN 구성하는 실습 가이드 (0) | 2024.04.22 |
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!