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
네이버크라우드의 GSLB는 어떻게 진행해야 할까요? 아래 글에서 GTM(Global Traffic Manager)라는 서비스를 보면서, 순서를 정리해주셨습니다.
- GSLB 정책 설정 > 임의의 도메인 지정(이름 부여) > DNS CNAME 레코더를 추가합니다.
이 세가지 단계를 따르면 쉽게 GSLB를 네이버클라우드에서 사용해볼 수 있습니다. 자세한 내용은 다음 글을 참고하시면 됩니다.
https://brunch.co.kr/@topasvga/3565
온프레미스라면, 가중치를 주고 트래픽을 특정 데이터센터에 주고 나머지는 다른 데이터센터로 넘길 수 있습니다. 같은 방식으로, 네이버클라우드에서는 가이드를 통해 정책으로 조정하면, 비율에 맞춰 트래픽을 각각 나누어 대응할 수 있습니다.
2. 멀티 클라우드
멀티 클라우드를 준비하려면, 먼저 네트워크 블록 개념이 있어야 합니다. 사무실, 온프레미스(데이터센터), 클라우드마다 IP 블록이 전부 달라야 합니다. 대역간 통신을 위한 최소한의 조건입니다.
https://brunch.co.kr/@topasvga/3807
만약에 겹칠 수 있다면, IP CIDR를 더 낮추어 작게 쪼개고 쪼개면 됩니다. AWS 클라우드는 VPC가 172.16번 대역이라면, 네이버클라우드는 10.0번을 사용해볼 수 있겠네요. 이렇게 사설 아이피를 잘 쪼갤 수 있도록 IP 블록을 잘 설계해야합니다.
비용처리는, 네이버클라우드라면 Organization 이라는 기능을 사용해볼 수 있습니다. 통합 청구가 가능한 계정을 만들고 그것으로 묶으면 됩니다. 이 기능은 AWS, 네이버클라우드 모두 있으니 잘 활용하면 편하게 사용이 가능합니다.
https://brunch.co.kr/@topasvga/1920
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
그 외에도, 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
이 자료를 통해 subnet을 설정했고, NKS를 구동할 때 잘 활용했습니다.
실습1: 콘솔로 NKS 구동하기
네이버클라우드 콘솔로 NKS를 구동했습니다. 콘솔에서 vpc, subnet을 생성하고 NKS 클러스터를 생성했습니다. 외부와 통신을 위해서 NAT GW를 만들고, Route table도 그에맞게 설정했습니다. 외부에서 본 NKS 클러스토 노드로 접속하고자 로드밸런서를 부착하고, 해당 엔드포인트로 접속하여 간단한 스도쿠 게임을 구동하였습니다.
실습2: 테라폼으로 NKS 구동하기
콘솔에서 필요한 정보를 파악해두고, 이에 맞추어 테라폼을 사용해서 구성했습니다.
https://brunch.co.kr/@topasvga/3975
같은 작업이지만, 역시 IaC로 관리하는게 편리한 점은 어쩔 수 없네요. 다만 자원삭제도 해야하니 잘 작성해두어야겠습니다. 마리오 게임을 NKS로 배포해보고 실제로 실행도 해볼 수 있다고 합니다.
그리고 테라폼의 가장 기초 명령어를 잠깐 살펴봤는데, init, plan, apply 세가지를 기본으로 하는 것 같습니다. terraform init은 설정하는 가장 초기 명령어라면, terraform plan은 설정된 것을 미리 확인할 수 있고, terraform apply로 확인된 설정을 실제 적용하는 것입니다. 반대로 다 삭제하려면 destroy auto approve라는 방법이 있지만, 완전히 깔끔하게 지워지지 않으므로, 나중에 하나씩 확인하면서 리소스를 삭제해야합니다.
후기
약 5시간의 길고도 짧은 스터디였습니다. 마스터님의 강의를 들으면서 내가 직접 자원을 생성해보고 삭제까지 해야하는 걸 반복할수록 완전히 나의 것이 되어간다는 걸 느낍니다.
현재 채용 분위기가 좋지 않은데, 네이버클라우드가 의외로 인원이 적다고 합니다. 나름대로 공부를 하고, 여기에 AWS나 GCP/Azure 중 하나를 공부해서 커리어를 쌓으면 좋다고 합니다. 많이 참고해서 AWS 공부도 부지런히 해보려고 합니다. 멀티클라우드를 통해 특정 클라우드 사의 장애에 적극 대응하고, 이중화를 하면 안전해보이기도 하구요.
가장 좋은 것은 역시 terraform 이라는 도구를 잘 활용하고 싶은 욕구가 커진 점입니다. IaC라고 해서, 코드로 인프라를 관리하는 툴이 다양한데, 그 중에서 특정 CSP사에 종속되지 않고 자유롭게 활용할 수 있는 도구가 필요했습니다. 이 terraform을 통해 공부해보고, 멀티클라우드를 자유롭게 활용할 수 있는 엔지니어로 성장하고 싶네요.
'세미나 후기' 카테고리의 다른 글
[AWS] AWS Industry Week 후기 - Healthcare (0) | 2024.11.09 |
---|---|
[NCUC] Ncloud 판교 소모임 후기: 수도권 남부 소모임으로! (7) | 2024.08.28 |
[가짜연구소] <초조한 전망대> 나만의 AI 뉴스레터 설명해보기 연습 (0) | 2024.07.28 |
[Ncloud] 마스터와 함께하는 네트워크 스터디 후기 (3) | 2024.07.14 |
[가짜연구소] <초조한 전망대> 두번째 후기: 내 AI 유형 탐색하기 (0) | 2024.07.07 |