세미나 후기

[Ncloud] GSLB로 DNS 이중화 스터디 후기

graph-dev 2024. 8. 18. 15:55
728x90

 

GSLB와 DNS 이중화

GSLB 이론을 간단히 배우고 DNS를 이중화하는 방법을 배웠습니다. 단일 클라우드 이중화보다 2개의 데이터센터(멀티 클라우드 포함)으로 이론을 학습해보고, 실습은 kubernetes를 사용해서 재미있는 게임을 배포해보았습니다. 처음에는 콘솔로 만들어보고, 다음은 terraform이라는 IaC 도구를 통해 만들어볼 수 있었습니다.

 

네이버클라우드 역삼역 교육장에서 12시부터 5시까지 진행했습니다. 중간에 재미있는 현장에서 네트워크 이야기를 들어보면서 질의응답도 잘 해주셨습니다. 추가로, 모든 이론과 실습 자료는 아래의 블로그를 바탕으로 수행했습니다.

https://brunch.co.kr/@topasvga/3938

스터디 사진

 

 

이론: GSLB와 DNS 이야기

이론 부분은 이 주제의 핵심인 DNS와 GSLB를 함께 다룰 수 있는 AWS, 각자 다른 메뉴로 지정해야하는 네이버클라우드의 비교로 시작합니다. 클라우드 CSP사마다 다른 콘솔의 구성요소를 알아야합니다. 왜 그럴까요?

 

이 과정을 콘솔에서 확인해야, 나중에 IaC를 활용해서 구축하더라도 필요한 요소를 추가하여 구성할 수 있기 때문입니다. 콘솔부터 실습하는 이유도 바로 여기에 있습니다.

 

목표는 "신속한 재해 복구"입니다.  DNS, GSLB, 쿠버네티스 콘솔 및 테라폼으로 CSP를 이중화합니다. 즉, 멀티클라우드를 운용해서 안정성과 비용을 모두 잡는 것입니다. 

 

1. 네이버클라우드 DNS 이론

https://brunch.co.kr/@topasvga/1938

 

36.(30분 공부)네이버 클라우드 DNS 사용해 보기

네이버 클라우드 DNS서비스인 Global DNS 서비스 설정법을 알려드립니다. <1> Global DNS  = 도메인 네임 서비스이다. <2> Global DNS 사용법과 도메인  연결하기 <3> 기존에 네임서버가 있는 경우 서브도메

brunch.co.kr

 

 

 

네이버크라우드의 GSLB는 어떻게 진행해야 할까요? 아래 글에서 GTM(Global Traffic Manager)라는 서비스를 보면서, 순서를 정리해주셨습니다.

 

  • GSLB 정책 설정 > 임의의 도메인 지정(이름 부여) > DNS CNAME 레코더를 추가합니다.

 

이 세가지 단계를 따르면 쉽게 GSLB를 네이버클라우드에서 사용해볼 수 있습니다. 자세한 내용은 다음 글을 참고하시면 됩니다.

 

https://brunch.co.kr/@topasvga/3565

 

네이버 15탄-3. Global DNS-2024

네이버 클라우드 DNS서비스는 Global DNS서비스를 사용하자. GTM도 사용해보자. 1 Public에 웹서버 1대 생성하자. - 로키 리눅스 Private에 웹서버 1대 생성하자.  로드 밸런서를 연결하자. 2 pub서버 접속

brunch.co.kr

 

 

온프레미스라면, 가중치를 주고 트래픽을 특정 데이터센터에 주고 나머지는 다른 데이터센터로 넘길 수 있습니다. 같은 방식으로, 네이버클라우드에서는 가이드를 통해 정책으로 조정하면, 비율에 맞춰 트래픽을 각각 나누어 대응할 수 있습니다.

 

 

2. 멀티 클라우드

멀티 클라우드를 준비하려면, 먼저 네트워크 블록 개념이 있어야 합니다. 사무실, 온프레미스(데이터센터), 클라우드마다 IP 블록이 전부 달라야 합니다. 대역간 통신을 위한 최소한의 조건입니다.

 

https://brunch.co.kr/@topasvga/3807

 

20탄-2. 네이버 클라우드 네트워크대역간통신-2024

<5> 사설 IP 대역 <6> 네트워크 설계 - 대역 간의 통신 <7> 네트워크 설계 - 서브네팅 <8> 클라우드 네트워크 구축 - 반복됩니다. 포기하지 마세요 <5> 사설 IP 대역 <6> 네트워크 설계 - 대역 간의 통신

brunch.co.kr

 

만약에 겹칠 수 있다면, IP CIDR를 더 낮추어 작게 쪼개고 쪼개면 됩니다. AWS 클라우드는 VPC가 172.16번 대역이라면, 네이버클라우드는 10.0번을 사용해볼 수 있겠네요. 이렇게 사설 아이피를 잘 쪼갤 수 있도록 IP 블록을 잘 설계해야합니다. 

 

 

비용처리는, 네이버클라우드라면 Organization 이라는 기능을 사용해볼 수 있습니다. 통합 청구가 가능한 계정을 만들고 그것으로 묶으면 됩니다. 이 기능은 AWS, 네이버클라우드 모두 있으니 잘 활용하면 편하게 사용이 가능합니다. 

https://brunch.co.kr/@topasvga/1920

 

35.(30분) NCP 계정통합 Organization

네이버 클라우드 계정 통합 서비스인 Organization 설정법을 알려드립니다. 네이버 클라우드 오가니제이션으로 계정들을 묶어서 관리하자 AWS Organzation과 동일한 기능이다. NCP 여러 계정의 비용을

brunch.co.kr

 

 

3. 고정 IP vs 유동 IP

다양한 아키텍처를 구상하고, 회사의 예산에 맞게 운영해야 합니다. 아래 글을 참조하였습니다.

https://brunch.co.kr/@topasvga/3981

 

특히 대부분 로드밸런서를 활용하는데, 여기서 GTM은 고정 IP만 지원합니다. 이 점은 네이버클라우드라면 고정 IP여서 괜찮지만, AWS의 경우 NLB는 고정 IP를 제공하고, ALB는 도메인(유동 IP)를 제공하므로 잘 기억해두어 활용해야 합니다. 만약 필요하다면, ALB 앞에 NLB를 붙여볼 수 있습니다.

 

https://brunch.co.kr/@topasvga/2937

 

네이버 9탄- 로드밸런서 비교 3/3 -2023

로드밸런서 장비는 CSP에서 기능 변경에 따라 내용이 달라질 수도 있습니다. 여기서는  CSP(AWS , 네이머) 마다 기능이 조금씩 달라 적어봅니다. <1> 요약 <2> 고정 IP제공 <3> 보안 그룹 <4> 빠르기 <5>

brunch.co.kr

 

그 외에도, AWS는 GTM에 보안그룹도 함께 고려해야합니다. 네이버클라우드의 GTM은 보안그룹(ACG)는 적용되지 않으니 바로 작동할 수 있습니다. 이런 점은 멀티 클라우드를 할 때, 알아두면 좋겠습니다.

 

 

실습: 웹 서버 만들기

먼저 간단한 웹 서버를 하나 만들어보고, init script를 사용해서 웹 상에서 나오도록 했습니다. VPC, Subnet, 공인 아이피를 부여하고 스크립트로 필요한 패키지를 설치해줍니다. ACG에서는 80포트(http)를 개방해주면 웹 상에서 "web server-1" 문장이 뜹니다.

#!/bin/bash
yum -y install httpd
systemctl enable httpd
systemctl start httpd
echo '<html><h1>Web Server-1</h1></html>' > /var/www/html/index.html

 

 

 

네이버클라우드 네트워크 표준 아키텍처

https://brunch.co.kr/@topasvga/3956

 

비공인) 네이버 클라우드 네트워크  정의-2024-08

<1> 비공인) 네이버 클라우드 네트워크 표준 아키텍처 1 정의-Singel AZ <2> 비공인) 네이버 클라우드 네트워크 표준 아키텍처 2 정의-Multi AZ <1> 비공인) 네이버 클라우드 네트워크 표준 아키텍처 1 정

brunch.co.kr

 

이 자료를 통해 subnet을 설정했고, NKS를 구동할 때 잘 활용했습니다.

 

실습1: 콘솔로 NKS 구동하기

네이버클라우드 콘솔로 NKS를 구동했습니다. 콘솔에서 vpc, subnet을 생성하고 NKS 클러스터를 생성했습니다. 외부와 통신을 위해서 NAT GW를 만들고, Route table도 그에맞게 설정했습니다. 외부에서 본 NKS 클러스토 노드로 접속하고자 로드밸런서를 부착하고, 해당 엔드포인트로 접속하여 간단한 스도쿠 게임을 구동하였습니다.

 

실습2: 테라폼으로 NKS 구동하기

콘솔에서 필요한 정보를 파악해두고, 이에 맞추어 테라폼을 사용해서 구성했습니다.

https://brunch.co.kr/@topasvga/3975

 

2. 네이버 클라우드- 테라폼-VPC-2024-08

테라폼으로 네트워크 만들자. 테라폼으로 네이버 클라우드 쿠버네티스 생성하자. 환경 세팅하고 테라폼 기초부터 시작한다. <0> 테라폼으로 생성하려는 네트워크 구성도 , 환경 세팅 <1> VPC , Pub1-

brunch.co.kr

 

같은 작업이지만, 역시 IaC로 관리하는게 편리한 점은 어쩔 수 없네요. 다만 자원삭제도 해야하니 잘 작성해두어야겠습니다. 마리오 게임을 NKS로 배포해보고 실제로 실행도 해볼 수 있다고 합니다.

 

그리고 테라폼의 가장 기초 명령어를 잠깐 살펴봤는데, init, plan, apply 세가지를 기본으로 하는 것 같습니다. terraform init은 설정하는 가장 초기 명령어라면, terraform plan은 설정된 것을 미리 확인할 수 있고, terraform apply로 확인된 설정을 실제 적용하는 것입니다. 반대로 다 삭제하려면 destroy auto approve라는 방법이 있지만, 완전히 깔끔하게 지워지지 않으므로, 나중에 하나씩 확인하면서 리소스를 삭제해야합니다.

 

내가 만든 쿠버네티스 클러스터

 

 

후기

약 5시간의 길고도 짧은 스터디였습니다. 마스터님의 강의를 들으면서 내가 직접 자원을 생성해보고 삭제까지 해야하는 걸 반복할수록 완전히 나의 것이 되어간다는 걸 느낍니다.

 

현재 채용 분위기가 좋지 않은데, 네이버클라우드가 의외로 인원이 적다고 합니다. 나름대로 공부를 하고, 여기에 AWS나 GCP/Azure 중 하나를 공부해서 커리어를 쌓으면 좋다고 합니다. 많이 참고해서 AWS 공부도 부지런히 해보려고 합니다. 멀티클라우드를 통해 특정 클라우드 사의 장애에 적극 대응하고, 이중화를 하면 안전해보이기도 하구요.

 

가장 좋은 것은 역시 terraform 이라는 도구를 잘 활용하고 싶은 욕구가 커진 점입니다. IaC라고 해서, 코드로 인프라를 관리하는 툴이 다양한데, 그 중에서 특정 CSP사에 종속되지 않고 자유롭게 활용할 수 있는 도구가 필요했습니다. 이 terraform을 통해 공부해보고, 멀티클라우드를 자유롭게 활용할 수 있는 엔지니어로 성장하고 싶네요.