네트워크와 IP 주소
·
[CS] - Network
개요네트워크는 두 대 이상의 컴퓨터(혹은 디바이스, 논리적 구성요소)로 구성된 통신망으로 정의할 수 있다. 디바이스는 주변에서 흔히 볼 수 있는 전자 기기가 될 수도 있고, 네트워크 장비(e.g. 공유기, 라우터, 스위치 ..)가 될 수도 있다. 우리가 알고 있는 인터넷은 전세계에 공유되고 있는 네트워크로, ISP(Internet Service Provider)에 의해 제공된다. 한국에서 ISP는 대표적으로 3사 통신사가 있겠다. (현 시점에서 일론 머스크 행님의 스타링크가 위협할 수 있는 시장이 열릴수도 있겠지만..) IP 주소란 무엇일까?디바이스간 통신은 물리적 인터페이스(하드웨어 - e.g. 어댑터, 케이블 등..)을 통해 이루어질 수도 있고, 소프트웨어 및 개념 모델이 적용된 논리적 네트워크를 통..
2025-05-27 회고록
·
회고록
티스토리 블로그에 개인적인 글을 정말 오랜만에 적어보는 것 같다. 이번 직장을 다니면서 거의 티스토리는 방치되다시피 관리했는데, 오랜만에 들어와서 예전에 싸지른 글들을 보니 정말 성의도 없고 논리나 일관성이 없어보였다. 요즘은 그냥 이 부끄러운 글들을 다시 정돈하고 지울건 지우고 있다. (일종의 리팩터링) 다시 예전 글들을 되짚어보면서, 이번 회고록은 근 2년간 있었던 일들을 되돌아보려고 한다. 2023년 중순에 인공지능 음악 생성 스타트업에 NLP 리서처로 입사를 하게되었다. 음악 회사에 왠 NLP 인가 싶겠지만, 자연어 처리 모델을 통해 음악의 시퀀스 데이터를 생성하는 방식이라 가능했다. 하지만, 이미 각 리서처들은 자신의 담당 모델이 있었고, 음악 문외한인 나는 도메인에 잘 적응하지 못했다. 최대한..
Harbor 레지스트리 구성하기 (feat. Helm Chart 연동)
·
[DevOps] - Kubernetes
개요클라우드 혹은 퍼블릭 이미지 레지스트리로의 도커 이미지 형상 관리는 네트워크 비용(혹은 기타 이미지 저장 비용)이 청구되기 때문에 프라이빗 레지스트리를 운영하는 사례가 있다. 물론 반드시 비용뿐만 아니라 보안을 위해서라도 온프레미스 환경에서 관리하기 위한 경우도 포함이다. (필자는 저번에 구현한 라즈베리 파이 쿠버네티스 클러스터에서 운영중..) 본 포스팅에서는 OCI (Open Container Initiative) 레지스트리인 Harbor의 배포 및 도커 레지스트리로써의 사용법을 공유한다. 기본적으로 OCI 프로토콜을 따르기 때문에 Helm Chart 레지스트리로써도 활용 가능하다. Harbor Helm Chart 구성 과정# Bitnami Helm Chart Repository 등록$ helm..
SSL/TLS 인증서
·
[CS] - Network
개요이전에 구현한 라즈베리 파이 클러스터에서 Harbor를 배포하는 과정중에 인증서 관련 이슈가 있었다.. Harbor Helm Chart를 배포하고나면 (로드밸런서 장비가 없기 때문에 MetalLB로 Private IP 대역중 하나의 주소를 LoadBalancer의 External IP로 할당해주고 있는데) Nginx의 LoadBalancer 타입의 Service로 브라우저에서 접속은 가능하나, docker 명령어를 통해 로그인 및 이미지를 푸시하는 과정에서 인증서 이슈가 발생했다..사실 솔직하게 얘기하면 HTTPS나 TLS에 관련된 내용을 대강 통신중에 암호화하는 정도로만 이해를 했지, 실제로 딥다이브를 해본적이 없어서 정리해보려고 한다. 쿠버네티스에서 인증체계 관련 내용도 볼때 인증기관(CA), X..
Istio 톺아보기 #2 - 트래픽 관리 관련 CRD
·
[DevOps] - Kubernetes
https://dev-ryuon.tistory.com/122 Istio 톺아보기 #1 - 개요서비스 메쉬란?서비스 메쉬는 MSA(마이크로 서비스 아키텍처)환경에서 서비스 간의 통신을 제어하고 관리할 수 있는 인프라 계층을 의미한다. 즉, 서비스 내의 애플리케이션 혹은 비즈니스 로직dev-ryuon.tistory.comIstio나 서비스 메쉬가 처음이신 분은 이전 게시글을 읽고오시면 이해하기 쉬울거에요! 개요Istio는 트래픽 라우팅 규칙을 통해 서비스 간의 트래픽 흐름을 쉽게 제어할 수 있다. 제어할 수 있는 기능으로는 아래와 같은 것들이 있다.Circuit Breaker : 서킷브레이커(회로 차단기)는 서비스 장애 전파와 과부하를 방지하기 위한 패턴이다. DestinationRule CRD에서 설정할 ..
Istio 톺아보기 #1 - 개요
·
[DevOps] - Kubernetes
서비스 메쉬란?서비스 메쉬는 MSA(마이크로 서비스 아키텍처)환경에서 서비스 간의 통신을 제어하고 관리할 수 있는 인프라 계층을 의미한다. 즉, 서비스 내의 애플리케이션 혹은 비즈니스 로직을 수정하지 않고도 트래픽을 컨트롤할 수 있다.트래픽을 제어할 수 있는 기능으로는 Service Discovery, Load Balacning, Failure Recovery, Monitoring, Security 등을 지원한다.각 서비스마다 사이드카 컨테이너로 경량 프록시(e.g. Envoy)가 주입되어 프록시간 통신을 이루도록 메쉬 네트워크가 구성된다. 그리고, 이러한 메쉬 네트워크의 구성요소인 데이터 플레인을 관려하는 컨트롤 플레인도 존재한다. (분산 애플리케이션의 특징이다.) Istio란?Istio는 쿠버네티스..
라즈베리 파이로 홈 쿠버네티스 클러스터 구축 매뉴얼
·
[DevOps] - Kubernetes
목차1. 준비물2. 운영체제 설치3. 홈 네트워크 세팅4. 라즈베리 파이에 고정 IP 할당5. 외부 접속 세팅 (SSH + VPN)6. 쿠버네티스 클러스터 구축7. 스토리지 세팅 1. 준비물Computing : 라즈베리파이 5 Raspberry pi 5 Model 8GB * 4EASwitch : 넷기어 GS108PP 8포트 기가비트 POE 스위칭 허브 (123W)SSD : 삼성전자 870 EVO SSD, MZ-77E1T0, 1TBMicro SD : 삼성전자 MicroSD 카드 PRO PLUS 128GB MB-MD 128SA/KR * 4EASSD SATA 케이블 : 엠비에프 SATA to USB 컨버터Micro SD 리더기 : 블레이즈 마이크로 SD 카드리더기(중요) 어댑터 : 라즈베리파이5 전용 어답터 ..
AWS SageMaker HyperPod (w. EKS) 도입기
·
[DevOps] - AWS
도입 배경딥러닝 모델을 학습하는 과정을 온프레미스 환경에서 수행하고 있었다. (온프레미스 환경의 GPU 워크로드는 쿠버네티스로 연동되어 있는 상태)모델의 크기 및 데이터 볼륨이 증가함에 따라 FSDP, DDP와 같은 분산 학습 기법을 활용했음.멀티 노드 분산 학습과정을 위해 Kubeflow의 Training Operator를 활용했지만, 인프라 관리 비용과 네트워크 병목이 발생했다.Kustomize, Istio와 같은 스택들을 관리하는 데에서 오는 부담감InfiniBand가 아닌 일반 이더넷 기반에서 NCCL 백엔드의 TCP 소켓 통신에 대한 대역폭 병목적합한 서비스를 찾던 와중, Slurm과 같은 HPC 플랫폼과 Kubernetes를 오케스트레이터로 지원하는 SageMaker의 HyperPod를 발견했..
쿠버네티스 환경의 서비스 디스커버리
·
[DevOps] - Kubernetes
서비스의 규모가 커질수록 모놀리식 아키텍처로 관리하는 것은 점점 한계가 존재한다. 도메인 혹은 기능간의 의존성이 생기고 이를 서버 혹은 컨테이너 단위로 분리해야 의존성을 제거할 수 있다. 이러한 형태를 MSA(Micro Service Architecture)라고 한다. 그러나, MSA는 사실 이상적인 형태로써, DDD(Domain-Driven Development)가 제대로 수행되어야 실질적으로 서비스 간의 의존성을 깨끗하게 정리할 수 있다. 그리고, 아무리 MSA라 하더라도, 다양한 요소로 인해 전반적인 아키텍처는 훨씬 복잡해질 수 있다. 예를 들면, 로드 밸런싱(Load Balancing)의 문제이다. 만약 단일 서버 혹은 컨테이너가 비동기적으로 오는 클라이언트의 무수한 요청을 받기 위해 노력하고 있..
옵시디언 (Obsidian) 마이그레이션
·
생산성
오늘은 옵시디언이라는 워크스페이스에 대해서 간단하게 알아보고, 노션에서 마이그레이션하는 방법에 대해 알아보겠습니다. ㅎㅎ 사실 많은 고민을 했습니다. 굳이 노션을 잘 사용하고 있는데, 옵시디언으로 갈아타야 하나..? 라는 생각이 들 때, 다음과 같은 내용이 저를 확 끌어당긴 것 같아요. 바로 옵시디언의 꽃인 그래프 뷰(Graph View)인데요. 저 같은 경우에는 노션에 방대한 양의 페이지가 쌓이면서 나름 hierarchy하게 구조를 가져간다고 생각했지만, 실제로는 해당 페이지의 depth까지 타고 들어가야 파악할 수 있다는 단점이 있었어요. 그래서 처음엔 대충 사람들이 하라는대로 마이그레이션 하면 되겠지~ 라는 안일한 마인드로 하다가 여러 삽질 끝에 성공적으로 마이그레이션한 케이스를 공유하고자 합니다..