[개발자의 NCloud 활용 썰] EP.4 : Cloud Club (클라우드 클럽)의 클라우드 네이티브 개발기

고가용성 클러스터, GitOps, 슬랙봇 자동화 경험기​

NAVER CLOUD PLATFORM
NAVER CLOUD PLATFORM
11 min readJan 12, 2023

--

NCloud를 활용하는 개발자들의 솔직 담백한 이야기👩‍💻​. 2023년을 맞이하여 네 번째 이야기로 찾아왔습니다.​

첫 번째 개발자 육성 기업 F-Lab의 멘티부터, 두 번째 IT 프로젝트 플랫폼 비사이드 팀, 세 번째 보안 리더 양성 프로그램 BoB 소속 팀까지​. 다양한 분야에서 개발자분들이 네이버 클라우드 플랫폼 (Ncloud)을 어떻게 활용하고 있는지 총 세 편의 [개.들.N.썰] 시리즈로 소개해 드렸습니다.​

아직 안 보셨다면, 아래 링크에서 전 편을 확인하세요!

(1편부터 정주행하면 유익함이 4배💪)

https://blog.naver.com/n_cloudplatform/222882295483
https://blog.naver.com/n_cloudplatform/222888452261
https://blog.naver.com/n_cloudplatform/222930686497

네 번째 개.들.N.썰은 클라우드 동아리 Cloud Club에 소속된 개발자분들의 SSUL입니다 :)

About Cloud Club

Cloud Club 은 클라우드에 대한 관심과 배움의 의지로 가득한 현직자와 학생이 모인 동아리입니다.

​“Vendor — Neutral” (특정 벤더에 종속되지 않음)

Cloud Club이 추구하는 방향성인데요, 폭넓은 클라우드 인프라 경험을 추구합니다. 클라우드 네이티브 환경에서 스터디를 진행하고 함께 다양한 프로젝트를 시도하고 있습니다.​

🔎 Cloud Club 자세히 알아보기 🔍

개.들.N.썰 4편에서는 Cloud Club 클둥이 세 분의 NCloud 활용썰을 소개해 드리겠습니다. (Cloud Club 동아리원을 ‘클둥이’라고 하네요 ㄱㅇㅇ..❣)

그.전.에! ​이번 Cloud Club을 포함한 개들N썰 시리즈Green Developers 프로그램 제휴 단체 소속 개발자분들이 작성해 주신 후기입니다.

About Green Developers

Green Developers 프로그램예비, 주니어 개발자를 대상으로 하는 IT 교육 기업, 개발자 동아리 등 제휴 기관 회원분들께 세 가지를 지원하는 프로그램입니다.​

✔ 최대 100만 원의 클라우드 크레딧

✔ 초보자를 위한 교육 자료

✔ 개발자 네트워킹

‘클라우드를 스터디 하는 분들이 진짜 필요로 하는 게 무엇일까’ 열심히 고민한 끝에 알짜배기 도움드리려 마련한 프로그램입니다!

​개발자 교육 기관, 개발자 동아리, IT 프로젝트 플랫폼 등 예비 개발자 및 3년 차 이하 주니어 개발자를 보유한 기업, 기관, 단체의 제휴 문의도 언제나 환영입니다! ​(문의 : greendevelopers@navercorp.com)

https://www.ncloud.com/support/greenDevelopers

그럼 본격적으로 세 클둥이의 NCloud 활용썰 시작합니다!

※ 개발자의 NCloud 후기를 각색하여 구성한 인터뷰입니다.

1️⃣ NCloud에서 k8s HA(고가용성) 클러스터 구축하기

- 차용민 님 -

Q. 프로젝트 소개 부탁드립니다.

네이버 클라우드 플랫폼 (Ncloud)에서 고가용성(HA) 쿠버네티스 토폴로지를 Stacked etcd(중첩된 토폴로지)로 구성하는 프로젝트였습니다. Stacked etcd는 etcd에서 제공하는 분산 데이터 스토리지 클러스터kubeadm으로 관리되는 노드에 의해서 형성된 클러스터 상단에 중첩하는 토폴로지입니다. kubeadm은 컨트롤 플레인 구성 요소를 실행합니다.

kubeadm HA topology 구조도 (출처 : 차용민 님 블로그)

* 고가용성(High Availability)이란 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영 가능한 성질을 의미합니다. 고가용성 쿠버네티스 토폴로지에 대해 더 자세히 알고 싶은 분은 우측 링크를 눌러주세요! 👉자세히 보기

Q. NCloud를 어떻게 활용하셨나요?

​네이버 클라우드 플랫폼 (Ncloud) 콘솔에서 VPC와 Subnet을 생성하고, Init Script를 작성하여 서버 생성 시에 사용했어요. 그 후에는 네이버클라우드의 IP 주소/포트 기반 필터링 기능인 ACG를 통해 허용해야 하는 포트 번호, 프로토콜을 설정했어요.

ACG 규칙까지 설정한 후에, 본격적으로 로드밸런서 노드, 마스터 노드, 워커 노드로 사용할 서버를 세팅했습니다. 고가용성(HA)를 위해 필요한 것이 로드밸런서인데요, 로드밸런서 뒤에 있는 API Server 중 한 개의 API Server에 장애가 발생해도 나머지 API Server로 정상적인 서비스를 하도록 로드를 분배하는 게 중요했답니다.

​그다음에는 쿠버네티스 초기화와 노드 조인을 진행했습니다. kudbeam init 명령을 통해 쿠버네티스 초기화 작업을 진행하였고 마스터노드에서 각각의 노드를 조인했습니다. 마지막으로 여러 가지 CNI 플러그인 중에 Calico를 사용하여 CNI (Container Network Interface) 설치까지 완료하였습니다.

프로젝트에 활용된 Ncloud 서비스 (출처 : 차용민 님 블로그)

이번 프로젝트의 순서를 정리하면 다음과 같습니다.​

✔ VPC 및 Subnet 생성

✔ Init Script 작성

✔ ACG 생성

✔ Server 세팅

✔ 쿠버네티스 초기화 및 노드 조인

✔ CNI 설치​

Q. NCloud를 사용하면서 만족했던 점이나 아쉬운 점은 무엇이었나요?

사실 이번 프로젝트를 통해 처음으로 네이버 클라우드 플랫폼을 접했어요. 사용하면서 크게 불편함을 느낀 적은 없었어요. 처음 사용했는데에도 불편함이 없었다는 게 아주 편하다는 거 아닐까요? (ㅎㅎ) 서버 생성 시 매번 user data를 입력, 복붙하며 사용해야 하는 타사와 다르게 init script를 따로 생성해 둘 수 있어서 더 편했습니다.

전반적으로 만족스러웠지만 굳이 아쉬웠던 점을 뽑자면, 서버 부팅 시간이 살짝 느린 점이었어요. 이번 프로젝트에서 VPC, 서버 중심으로 사용했다면 다음 프로젝트에는 네이버 클라우드 플랫폼의 쿠버네티스 서비스 NKS (NAVER Cloud Platform Kubernetes Service)도 사용해 보고 싶습니다.​

✅ 차용민 님의 프로젝트 자세히 보기

2️⃣ 오픈소스를 활용하여 GitOps 환경 구성하기

- 조우형 님 -​

Q. 프로젝트 소개 부탁드립니다.

NCloud 환경에서 오픈소스를 활용하여 GitOps 환경을 구성해 보는 프로젝트를 진행했습니다.​

목표는 CNCF 소속 오픈소스를 활용한 GitOps 환경 구성이었어요. 이를 위해 전반기와 후반기로 플랜을 정하여 프로젝트를 진행하고 있습니다. 전반기에는 컨테이너 생성까지 자동화를 하고 수동으로 쿠버네티스 리소스 배포하는 시스템을 구축한 후에, 후반기에는 Kubectl 명령어를 아예 사용하지 않고 선언적으로 리소스를 배포하는 GitOps 환경을 구성하는 프로젝트입니다.

NKS Cluster 생성 화면 (출처 : 조우형 님 블로그)

📄 프로젝트 로그 모아보기 📄​

🗒 NKS Cluster 구축을 위한 준비

🗒 NKS Cluster 생성

🗒 K8s Service 인증

🗒 RBAC 설정

Q. NCloud를 어떻게 활용하셨나요?

현재까지는 Sub Account 서비스를 활용하여 팀원들에게 각각 맞는 권한을 부여하여 IAM 유저를 발급해 주는 서비스를 활용했어요. 또한 VPC의 Kubernetes Container 서비스를 이용하여 생성한 클러스터에 각 팀원에게 부여한 IAM 유저에 따라 권한을 부여하여 클러스터 리소스를 활용하도록 하였습니다.

kubectl 동작 화면 (출처 : 조우형 님 블로그)

Q. NCloud를 사용하면서 만족했던 점이나 아쉬운 점은 무엇이었나요?

무엇보다 국내 개발자들에게 매우 친절하다는 것이 가장 만족했던 점이에요. 해외 CSP (Cloud Service Provider, 클라우드 서비스 제공 벤더사) 와 다르게 국내 사용자에게 UI가 친화적이고 직관적이었고 한글화 가이드가 친절했어요. 그 덕분에 처음 써보는 서비스임에도 불구하고 다른 CSP 서비스 대비 금방 활용할 수 있어서 만족스러웠습니다.​

✅ 조우형 님의 프로젝트 자세히 보기

3️⃣ 슬랙봇 자동화

- 현유경 님 -​

Q. 프로젝트 소개 부탁드립니다.

두 가지 슬랙봇을 제작했어요! 하나는 랜덤 아재 개그를 변환해 주는 슬랙봇이고, 다른 하나는 동아리원의 생일을 축하해 주는 슬랙봇이에요. 두 가지 슬랙봇을 단순히 제작하기보단, 자동화 배포 공부에 초점을 두어서 진행한 개인적인 프로젝트였습니다.

아재봇이 내는 퀴즈

Q. NCloud를 어떻게 활용하셨나요?

슬랙봇 자동화에 초점을 맞추어 서비스를 사용했어요! 기본적으로 NCloud 환경에서 서버를 생성하였고, 해당 서버에서 슬랙봇을 실행시켰어요. 배포 자동화가 목적이었기 때문에 Docker, Argo CD, Kubernetes를 공부하고 실행하는 것까지도 네이버 클라우드 플랫폼 (Ncloud) 서버를 활용했습니다.

Q. NCloud를 사용하면서 만족했던 점이나 아쉬운 점은 무엇이었나요?

네이버 클라우드 플랫폼 (NCloud)을 활용하면서 좋은 서비스가 많다는 걸 알 수 있었어요. 특히 AI Service 나 Application Service는 개발을 하는 데에 있어 개발을 더욱 편하게 도와주고, 활용도가 높다고 생각했습니다. 또한 이 서비스를 보며 개발 아이디어도 많이 얻을 수 있었기 때문에 아이디어를 얻고 싶을 때 네이버 클라우드 플랫폼 서비스를 탐색해 보는 것도 괜찮다는 생각을 하게 되었어요.😊​

다만 레퍼런스가 다소 부족하다는 것이 아쉬웠어요. 평소에 잘 풀리지 않는 문제가 있을 때 레퍼런스를 참고해서 해결하곤 하는데 당시 저에게 맞는 레퍼런스는 찾기 어려웠어요. 그럼에도 가이드가 친절해서 가이드를 통해 잘 해결할 수 있었습니다!​

✅ 현유경님의 프로젝트 자세히 보기

‘개.들.N.썰’ 네 번째 이야기!

Cloud Club 회원분들의 Ncloud 개발썰을 소개해 드렸는데요, (C.들.N.썰 😎)

​역시 클라우드에 대한 관심이 높아서인지 처음 접한 NCloud 환경에도 쉽게 적응하고 개발 환경을 세팅하신 점이 인상적이었습니다.

​그리고 만족스러웠던 점뿐만 아니라 아쉬운 점도 솔직하게 들려주신 덕분에 서비스와 콘텐츠 확장에 대한 고민을 진지하게 이어나갈 수 있게 됐습니다.

(계속해서 발전하는 모습 지켜봐 주세요🙏)

​앞으로도 Cloud Club을 비롯한 많은 개발자분들이 클라우드 네이티브 환경에서 다양한 서비스를 구축하고 광활한 코드를 통합하여 자동화할 수 있도록

네이버클라우드가 열심히 지원하도록 하겠습니다.

2023년 계묘년에도 NCloud 환경에서 펄쩍펄쩍 뛰어다니는 개발자분들의 이야기 계속해서 소개해 드릴게요!

2023, 개.들.N.썰 레스고
https://www.ncloud.com/support/greenDevelopers
https://www.ncloud.com/

--

--

NAVER CLOUD PLATFORM
NAVER CLOUD PLATFORM

We provide cloud-based information technology services for industry leaders from startups to enterprises.