오몰내알 데엔

데이터 엔지니어링/Kubernetes

가볍게 읽는 쿠버네티스 안내서

가볍게 읽는 도커 안내서에 이어서 쿠버네티스 개요에 대해서도 간단하게 알아보자 쿠버네티스 개요쿠버네티스가 하는 일컨테이너를 관리컨테이너가 하나만 있다면 충분히 관리할 수 있겠지만 만약 100개가 있다면? 쿠버네티스의 역사리눅스와 같은 성공한 오픈 소스 프로젝트 중에 하나 쿠버네티스 배포 종류관리형 쿠버네티스: EKS,GKE와 같은 클라우드를 이용한 쿠버네티스로 관리나 운영이 필요없다.설치형 쿠버네티스: Rancher, Red Hat Openshift와 같은 프로그램을 이용해서 필요한 여러 패키지들을 통합해 만든 설치형 버전.구성형 쿠버네티스(네이티브 쿠버네티스): 요구사항에 맞게 자유로운 커스텀이 가능하다. kuberadm, kubespray, krib, kops… 쿠버네티스 기초파드(Pod)마스터 노드..

데이터 엔지니어링/Kubernetes

[번역] Kube-Proxy: 무엇이고 어떻게 동작하는가

해당 포스트는 kube-proxy의 동작원리에 대한 좋은 글이 있어 다른 분들께도 공유드리고자 번역한 컨텐츠입니다. 원 글은 포스트 하단에 링크를 첨부하였습니다. 소개 네트워킹은 쿠버네티스의 아주 중요한 파트입니다. 네트워크 컴포넌트가 어떻게 다르게 동작하는지 이해하는 것은 올바른 어플리케이션을 설계하는데 있어서 큰 도움이 됩니다. 쿠버네티스 네트워크 뒤에는 내부에서 작동하는 구성요소가 있습니다. 이는 서비스를 사용가능한 네트워킹 규칙으로 변환하는데 이를 kube-proxy라고 합니다. 이번 아티클에서는 kube-proxy가 어떻게 동작하는지 소개해드릴려고 합니다. 우리는 서비스가 생성될 때 만들어지는 플로우에 대해서 설명하면서 kube-proxy가 만드는 몇 가지 예시 규칙들에 대해서 살펴보려고 합니다..

데이터 엔지니어링/Kubernetes

kubeadm으로 쿠버네티스 클러스터 구축하기 (feat. 오라클 클라우드, ARM64)

kubeadm을 이용하여 쿠버네티스 클러스터를 구축하는 과정을 살펴보자 개요 아마 개발자라면 다들 나만의 서버를 갖는 것에 대한 로망이 있을 것이다. 나 또한 개발자이기에 항상 내 서버를 가지고 싶었다. 특히 나는 현업에서 쿠버네티스를 많이 다루다보니 그냥 서버가 아닌 쿠버네티스 클러스터를 가지고 싶었지만 알다시피 쿠버네티스가 돌아갈 정도의 서버 여러 대를 구하는 것은 쉽지 않은 일이다... 그렇기에 항상 포기하고 맥북에 kind나 minikube를 이용하여 로컬 쿠버네티스를 이용해왔었다😂 (성에 차지 않는다...) 그러다 이번 여름에 공모전을 진행하면서 처음으로 오라클 클라우드(OCI)를 이용해볼 기회가 생겼었다. 사용 당시에는 이런 클라우드도 있구나 라고만 생각하며 이용을 했었다. 그리고 공모전이 끝..

데이터 엔지니어링/Kafka

카프카 리밸런싱이란?

카프카 컨슈머 그룹 리밸런싱이 무엇인지 알아보자 하나의 토픽에 다른 컨슈머 그룹을 추가해야 하는 상황을 맞이 했는데, 혹시나 기존의 컨슈머나 토픽에 영향을 줄까 싶어 살펴보다가 카프카 리밸런싱이라는 개념을 발견하게 되었다. 이번 글에서는 카프카 리밸런싱이 무엇이고, 왜 일어나는 것인지 기존 시스템에 어떤 영향을 미치는 지 알아보자. 컨슈머 그룹이란?컨슈머 그룹은 특정한 하나의 목적을 가진 컨슈머를 논리적인 그룹으로 묶는 단위이다. 기본적으로 모든 컨슈머는 특정 컨슈머 그룹에 속해있다. 1개든 2개든 N개든 컨슈머는 무조건 특정 목적을 가진 컨슈머 그룹으로 묶여있다. 그러면 컨슈머 그룹은 왜 사용할까? 컨슈머 그룹 왜 사용하는가?컨슈머 그룹은 크게 두가지 이유로 사용한다. Fault Tolerance (장..

데이터 엔지니어링/Kafka

카프카 스키마 레지스트리 핵심 컨셉 알아보기

카프카 스키마 레지스트리의 주요 동작 방식을 알아보자 스키마 레지스트리는 데이터의 스키마를 관리하고 저장하는 관리형 스키마 저장소이다. 이번 포스팅에서는 스키마 레지스트리의 주요 기능과 동작 방식에 대해 알아보고자 한다. 동작 방식 스키마 레지스트리는 Avro, JSON Schema, Protobuf 3가지의 형식을 지원한다(3가지 형식에 대해서는 다른 포스팅으로 다룰 예정이다). 해당 스키마는 subject 아래에 각각 저장되는데 subject의 이름은 subject name strategy에 의해 정해진다. 디폴트로 subject을 토픽이름으로 하는 TopicNameStrategy을 사용한다. 또한 스키마 레지스트리에는 가장 중요한 기능이라고 할 수 있는 compatibility 즉 호환성 규칙이 있..

데이터 엔지니어링/Kafka

쿠버네티스에서 카프카(kafka on k8s) 정말 좋은 선택일까?

카프카를 쿠버네티스 위에서 사용하는 이유와 장단점을 알아보자 최근 카프카를 주요하게 사용하는 프로젝트를 진행하면서 카프카와 쿠버네티스의 관계에 대해 궁금증이 생겼다. 일전에 카프카 커넥터를 쿠버네티스 위에 구축하여 사용해보면서 꽤나 좋은 경험을 했었는데, 커넥터 말고 카프카 전체를 쿠버네티스 위에서 사용하면 어떨지에 대한 호기심이 들었다. 이번 포스팅에서는 kafka on k8s를 사용하는 이유와 운영 시 주의할 사항들이 무엇이 있는지 알아보자. 왜 kafka on k8s를 사용할까? 만약 이미 다른 어플리케이션들을 쿠버네티스 위에서 실행시키고 있다면 오히려 물리 서버 위에서 실행시키는 것보다 훨씬 쉬운 일이 될 수 있다. 특히 대규모 조직에서는 Kafka를 Kubernetes 외부에서 배포하는 것이 많..

데이터 엔지니어링/dbt

dbt에서 jinja for, if문을 이용해서 쿼리 효율적으로 짜기

TWL(Today We Learn): dbt jinja의 for, if문을 이용하여 효율적인 쿼리를 작성해본다. dbt에는 다양한 기능을 이용하여 SQL 쿼리를 더욱 효율적으로 작성할 수 있습니다. 특히 dbt의 jinja를 이용하면 비효율적으로 반복했어야 할 쿼리를 쉽게 짤 수 있는데요. 이번 글에서는 jinja의 for, if문을 이용하여 효율적으로 쿼리를 작성하는 법을 알아보려 합니다. 참고로 SQL 문법은 Bigquery를 따르고 있습니다. 기존 코드 이벤트 로그에서 모든 파라미터를 STRING으로 변환하는 쿼리를 짜본다고 가정해봅시다. 만약 이벤트 파라미터가 많다면 아래와 같이 불필요한 중복 코드가 발생합니다. SELECT event_name, user_id, CAST("begin_schedul..

데이터 엔지니어링/Kubernetes

Nginx Ingress Annotation rewrite-target 알아보기

쿠버네티스 Ingress를 구성하다보면 어노테이션을 자주 설정하게 되는데요. 그 중에서 가장 많이 사용하는 어노테이션이 rewrite-target이 아닌가 싶습니다. 자주 사용은 하지만 그 의미를 완벽하게는 모르고 쓰는 경우가 대부분인데 오늘은 rewrite-target에 대해 정확히 짚고 넘어가보려 합니다. Ingress란 일단 간단하게 쿠버네티스의 ingress에 대해 알아보겠습니다. ingress와 service는 요청을 특정 경로로 보내주는 역할을 합니다. 그 중 ingress는 클러스터 외부에서 접근하는 요청들을 어떻게 처리할 지 정의해둔 규칙들의 모음입니다. ingress는 말 그대로 규칙들의 모음이고, 이러한 요청을 실제로 처리하는 친구가 ingress controller입니다. 예를 들어 ..

데이터 엔지니어링

드롭박스 엔지니어링 커리어 프레임 (데이터 엔지니어편)

최근에 커피챗을 하면서 굉장히 많은 정보를 얻을 수 있었는데, 그 중 하나인 드롭박스에서 정리한 엔지니어링 커리어 프레임워크라는 자료를 소개해보려 합니다. 아시는 분들은 많이들 보셨을 것 같은데요. 해당 자료는 엔지니어가 경력을 성장시키기 위해 자신이 현재 어떤 단계에 있고, 더 성장하기 위해서는 어떤 스킬들을 익혀야 하는지를 아주 잘 정리한 자료입니다. 자세한 내용은 아래와 같습니다. - 엔지니어의 경력을 성장시키기 위한 방법을 정리한 프레임 워크 - 승진 체크리스트가 아닌, 각 단계에서 어떤 모습일지 파악하는데 도움 되도록 설계 ㅤ→ 레벨 기대치 : 업무 범위, 협업 범위, 임팩트 레버 ㅤ→ 핵심 행동과 기술 책임 * 임팩트 : 엔지니어의 성공을 비즈니스 임팩트로 측정. "고객에게 더 나은 서비스를 ..

데이터 엔지니어링

그래서 어떤 데이터 엔지니어가 되고 싶은데?

회사에 들어가고 혼자서는 절대 해보지 못할 다양한 경험들을 해보았던 것 같습니다. 열심히 하기 위한 개인의 노력도 당연히 있었지만 아마 어디서도 만나지 못할 훌륭한 개발자 분들을 회사에서 만났기 때문에 더욱 더 다양한 일들을 수행할 수 있지 않았나 하는 생각이 듭니다. 이제 입사한지도 벌써 8개월이 되어 가고 있는데요. 초반에는 일에 치여 바쁘게 사느라 생각해보지 못한 것들이 요새는 자꾸만 생각나는 것 같습니다. 데이터 엔지니어를 꿈꾸고 이를 향해 달려온 지도 꽤나 많은 시간이 흘렀는데, 과연 나는 어떤 데이터 엔지니어가 되고 싶은지, 내 종착지는 어디인지에 대한 고민입니다. 생각해보면 지금까지는 훌륭한 데이터 엔지니어는 무엇이고, 그럼 그 훌륭한 엔지니어가 되기 위해서는 어떤 일들을 해야하는지에 대해 ..

오몰내알
'데이터 엔지니어링' 카테고리의 글 목록