INTRO
23년 3월 22일에 진행한 AWSKRUG 성수 소모임에 참가하려, 무신사캠퍼스 N1에 다녀왔다.
짧은 경험담을 적어보려한다.
AWSKRUG가 뭔가요?
AWS한국사용자모임 커뮤니티에서 파생되어 운영되는것 같고, 다양한 소모임이 있는데 지역별, 기술별로 다양한 소모임이 존재하는것 같다.
어쩌다 소모임을 알게 되었나요?
내가 회사에서 쿠버네티스위에 ES를 비롯한 데이터 플랫폼을 구축하는 업무를 담당하고있다.
대부분의 스타트업이 똑같겠지만 회사에서 업무를 알려줄 시니어가 없기 태반이고, 있더라도 업무를 배울 시간이 없는 경우가 대다수일것이다.
그런데 마침, AWS한국사용자모임 성수소모임에서 EKS에서 검색엔진 플랫폼 구축하기 라는 주제로 발표를 진행한다는걸 알게되었다. 안갈수가없었다.
발표에서 기억남는 내용
- 무신사는 개발블로그를 운영하고있고, 이번에 발표한 내용은 아래 링크에서도 볼수있다.
- https://medium.com/musinsa-tech/무신사의-엘라스틱서치-muse-musinsa-elasticsearch-e6355516186a
1. 커스텀 플러그인
무신사의 경우 자연어를 기반으로 한 검색이 중요한데, 이를 위해서 자체 커스텀 플러그인을 사용하고 있다고 한다. 이 내용이 하나의 제약사항이 되는것이다.
K8s상에서 검색엔진을 구축하기위해서 다양한 제품을 비교한 표를 보면 알수있다.
2. CRD 사용
다양한 엘라스틱서치 제품중 ECK(Elastic Cloud on Kubernetes)를 사용하고 있는데, ECK가 CRD를 사용하여 구축된다고 한다.
직접사용해보면 CRD는 편하다. 나도 Kafka Cluster를 구성하기위해서 Strimzi Operator를 도입했고, 매우 잘 사용중이다.
그러나, 조금 걱정이 있었다. 결국엔 CRD는 Custom Resource Definition이기때문에 리소스가 잘못정의되어있으면 어떻게하지? 검증안된상태에서 도입하기엔 무리가있지않나??
라는 생각이 매우많이 들었다.
근데, ECK에서 제공하는 CRD는 Elaistc.co에서 직접 제공해주니까 괜찮지 않을까?
라는 생각이 들었다.
3. 볼륨을 성공적으로 줄이는 트릭
쿠버네티스에서는 PV, PVC, SC등 볼륨을 지정해줄수 있는데, 이게 문제가 있다.
볼륨을 적은용량→많은용량 으로 추가할당해주는건 가능한데, 많은용량→적은용량 으로 줄이는건 안된다는것이다. 그래서 꿀팁트릭을 하나 알려주셨다. 다른볼륨과 샤드할당을 사용하는 것이다.
예를들어, 볼륨A는 100GB가 할당되어있고, 데이터는 20GB가 적재되어있다. 이때, 볼륨A를 100GB→50GB로 바꾸고 싶은 상황이다.
- 데이터가 존재하기떄문에, 볼륨A의 용량을 100GB→20GB로 바로 바꿀수없다. 그래서 볼륨B를 추가로 할당한다. 볼륨B는 볼륨A의 용량이 다 담길정도면 충분하다. 따라서 볼륨B는 20GB로 할당한다.
- 볼륨A와 볼륨B를 연결한다. 이후, 샤드 설정을 통해서 볼륨A의 모든 데이터를 볼륨B로 전달한다.
- 볼륨A를 삭제한다.
- 50GB를 할당한 볼륨C를 생성한다.
- 볼륨B와 볼륨C를 연결한다. 이후, 샤드 설정을 통해서 볼륨B의 모든 데이터를 볼륨C로 전달한다.
이러면 결과적으로 최대볼륨이 100GB에서 50GB로 줄어들었다.
4. (내 질문) 쿠버네티스 위에 디비를 올려도 괜찮나?
외부 데이터 저장소도 많다고들 하지만, ES는 검색엔진의 성능을 하는 noSQL DB인데 K8s위에 올리는거 괜찮은지, 에 대해서 여쭤봤다.
일단, 해당내용에 대해서는 어느정도 인지하고 있으신것같았다. 그런데, 생각보다 딱히 이슈는 없는거같았다.
아무래도 쿠버네티스 안에 데이터를 적재하는것보다, 다른 외부 스토리지 서비스(S3 등등) 를 쓰는게 일반적이라서 그런것 아닐까 싶었다.
결론
ES를 Kubernetes에서 돌릴거면, 쿠버네티스를 먼저 잘 알아야한다.
메모메모..
'외부활동' 카테고리의 다른 글
[오픈소스 컨트리뷰션] 코스1. Backend.AI 써보고 경험 공유하기 (0) | 2023.06.21 |
---|---|
[구글 클라우드 쿠버네티스 스터디잼 중급] Introduction to Google Cloud (0) | 2023.06.15 |
[구글 클라우드 쿠버네티스 스터디잼 중급] Introduction to Google Cloud 챕터 4. Cloud Shell 코드 편집기 살펴보기 에러해결 (0) | 2023.06.03 |
발표에 대해서 끄적끄적 (0) | 2023.02.22 |
[리뷰] 오픈소스 분산 로그 저장소와 메세지큐로의 활용 (0) | 2022.11.13 |