일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- vuejs
- codingtest
- DFS와BFS
- 코드품앗이
- 알고리즘
- 안드로이드스튜디오
- Python
- cos
- k8s
- C++
- android
- DFS
- 파이썬
- 분할정복
- BAEKJOON
- 백준
- Flutter
- cos pro
- django
- issue
- cos pro 1급
- 개발
- 코딩테스트
- 동적계획법과최단거리역추적
- 코테
- 안드로이드
- AndroidStudio
- Algorithm
- DART
- 동적계획법
- Today
- Total
목록Research/Devops (22)
Development Artist
서론쿠버네티스(Kubernetes)는 단지 컨테이너 오케스트레이션 시스템이 아니다. 그것은 복잡한 분산 시스템의 ‘논리적 질서(logical order)’를 추구하는 운영 체계이자 철학이다. 이 철학의 핵심에는 다음 세 가지 리소스가 있다: 네임스페이스(Namespace), 컨피그맵(ConfigMap), 그리고 시크릿(Secret). 이 글에서는 해당 세 리소스가 어떻게 쿠버네티스의 구조적 복잡성을 통제하고, 실제 운영 환경에서 어떤 가치를 제공하는지 학문적으로 탐구하고자 한다.1. Namespace: 멀티테넌시와 격리의 시작점1.1 정의Kubernetes에서 Namespace는 리소스를 논리적으로 분리하는 단위이다. 리눅스에서의 chroot나 가상 메모리 공간처럼, 네임스페이스는 쿠버네티스 클러스터 내..
“In theory, there is no difference between theory and practice. In practice, there is.”– Jan L. A. van de Snepscheut서론현대의 분산 시스템에서 마이크로서비스 아키텍처(MSA)는 서비스 간의 유기적인 연결을 전제로 한다. 그러나 컨테이너 기반의 인프라에서 컨테이너는 생성과 소멸이 자유로운 반면, 그들 간의 네트워크 주소는 영속적이지 않다. 이때 등장하는 개념이 바로 쿠버네티스 서비스(Kubernetes Service)이다.쿠버네티스 서비스는 동적으로 변하는 파드(Pod) 들에 대해 안정적인 네트워크 접근점을 제공한다. 본 칼럼에서는 쿠버네티스 서비스의 개념적 정의부터 동작 원리, 유형별 특성, 그리고 실무에서의 응용..
서론쿠버네티스(Kubernetes)는 클러스터 기반의 애플리케이션 운영을 표준화하는 강력한 오픈소스 플랫폼이다. 하지만 설치와 운영은 여전히 복잡하고, 사용 목적이나 인프라 환경에 따라 다양한 설치 도구를 선택해야 한다. 이번 글에서는 세 가지 대표적인 설치 도구인 Kubespray, kubeadm, kops의 특징과 장단점을 비교하여, 상황에 따라 어떤 도구가 적절할지 살펴보자.1. KubesprayKubespray는 Ansible을 기반으로 하는 프로덕션 수준의 쿠버네티스 설치 자동화 도구이다. 다양한 클라우드 및 온프레미스 환경에 대응할 수 있으며, 고가용성(HA) 구성도 지원한다.주요 특징Ansible 기반의 선언적 인프라 관리다양한 클라우드 및 베어메탈 지원고가용성 클러스터 구성 지원커스터마이징..
서론서비스 하나를 띄운다는 건 생각보다 많은 일을 수반합니다.백엔드 서버 하나만 있어도 DB가 필요하고, 캐시가 필요하고, 때로는 메시지 큐나 외부 API 목업 서버까지 붙어야 하죠. 그때마다 우리는 명령어를 반복합니다.docker run ...docker run ...docker run ...처음엔 재밌을 수 있지만, 곧 지칠겁니다."이 많은 걸 왜 매번 따로 띄워야 하지?""내가 띄운 환경을 다른 팀원도 그대로 재현하려면 어떻게 하지?" 이런 반복적인 부분 뿐만이 아닙니다.팀원들의 다양한 요구사항을 관리하기에는 쉽지 않았기 때문입니다."내 애플리케이션은 DB 없이는 작동하지 않아요.""Redis도 필요하고, Celery도 있어야 해요.""그러면 그걸 다 띄우는 스크립트라도 줘야 하나요?" Docker..
서론DevOps 엔지니어로 일하다 보면 도커(Docker)는 매일 사용하는 필수 도구다.컨테이너를 활용하면 애플리케이션을 빠르게 배포하고, 개발과 운영 환경을 동일하게 맞출 수 있어서 협업이 훨씬 수월해진다. ‘시작하세요! 도커/쿠버네티스’ 책을 읽으면서 도커에 대해 다시 한 번 정리하고 싶은 내용들을 이렇게 기록하고자 한다.도커 엔진도커 엔진에서 가장 핵심이 되는 구성 요소는 이미지(Image)와 컨테이너(Container)다.이미지는 여러 계층(layer)으로 구성된 읽기 전용 파일이다. 애플리케이션 실행에 필요한 모든 파일과 설정이 포함되어 있다.컨테이너는 이 이미지를 실행한 결과물로, 독립된 프로세스 공간에서 동작하는 일종의 가상 환경이다.컨테이너를 실행하면 도커는 해당 이미지 기반으로 컨테이너 ..

서론회사에서 DWG 파일을 GLTF로 변환하는 기능을 구현해야 하는 과제가 생겼다. 여러 가지 방법을 검토한 끝에, 변환 과정에서 Blender 엔진을 사용하고, 서버리스(Serverless) 환경에서 배포하는 방향으로 결정했다. 이러한 요구 사항을 충족하기 위해 AWS Lambda를 컨테이너 기반으로 실행하는 방법을 선택했다.이번 글에서는 컨테이너 기반 Lambda의 개념과 이를 도입하는 과정에서 겪은 우여곡절을 공유하려고 한다.LambdaAWS Lambda는 서버를 관리할 필요 없이 코드 실행을 자동으로 처리하는 서버리스 컴퓨팅 서비스다. 사용자는 트리거 이벤트를 기반으로 코드를 실행할 수 있으며, 인프라를 직접 설정할 필요 없이 AWS가 자동으로 리소스를 할당하고 관리한다.Lambda를 활용하는 방..
🔥 개요FastAPI와 RabbitMQ를 활용하여 비동기 메시지 소비 시스템을 구축하는 방법을 설명한다. RabbitMQ는 메시지 큐를 제공하여 애플리케이션 간의 비동기 통신을 가능하게 한다. 이를 FastAPI와 결합하면 고성능의 비동기 메시지 처리 서비스를 구현할 수 있다.이번 포스팅에서는 FastAPI 서버와 RabbitMQ를 연결하는 방법, 메시지를 소비하는 방식, 비동기적으로 외부 프로세스를 실행하는 방법을 간략하게 기술한다.📌 RabbitMQ란?RabbitMQ는 AMQP(Advanced Message Queuing Protocol) 기반의 메시지 브로커로, 메시지를 큐에 저장하고 비동기적으로 분산 시스템 간 데이터를 전달하는 역할을 한다.RabbitMQ를 사용하면 다음과 같은 이점이 있다:..
들어가며 Helm을 처음 사용할 때, 쿠버네티스 리소스를 쉽게 배포하고 관리할 수 있다는 점에서 정말 편리하다고 느꼈다.특히, 공개된 Helm Chart 저장소에는 이미 수많은 검증된 템플릿이 존재하기 때문에, 이를 활용하면 애플리케이션을 빠르게 배포할 수 있다. 하지만 실제 운영 환경에서는 기본 제공되는 Helm Chart를 그대로 사용하는 경우가 많지 않다.운영 정책이나 인프라 환경에 따라 리소스, 볼륨, 보안 설정을 조정해야 할 때가 많다. 이번 글에서는 Loki의 Ingester StatefulSet Helm Chart 템플릿을 분석하고, 이를 커스텀하는 방법을 설명해보겠다.또한, Helm 템플릿에서 자주 사용하는 문법도 정리하여 실전에서 바로 적용할 수 있도록 하겠다.Helm Chart 템플릿 ..
GlusterFS란? GlusterFS는 Red Hat이 개발한 오픈 소스 분산 파일 시스템으로, 여러 서버의 스토리지를 하나로 묶어 고가용성과 확장성을 제공하는 스토리지 솔루션이다.데이터가 여러 서버에 걸쳐 복제되므로, 단일 장애 지점(SPOF, Single Point of Failure)이 발생하지 않으며, 읽기 및 쓰기 성능을 확장할 수 있는 특징이 있다.📌 GlusterFS의 주요 특징✅ 확장성: 서버를 추가함으로써 용량과 성능을 쉽게 확장 가능✅ 고가용성(HA): 복제(Replication) 기능을 통해 서버 장애에도 데이터 유지✅ Self-Healing(자동 복구): 장애 발생 시 데이터 무결성을 유지하며 자동 복구✅ 분산(Distributed) 아키텍처: 중앙 컨트롤러가 없고, 분산된 구..
더보기해당 포스트는 '쿠버네티스 시작하기 3/e' 내용 일부를 발췌하여 작성하였습니다.시작하기오늘은 쿠버네티스를 왜? 사용하는가에 대한 의문으로 글을 적어보려합니다. 여러가지 이유가 있겠지만, 5가지의 이유로 쿠버네티스를 사용하는 것 같습니다. - 개발 속도- 확장성- 인프라 추상화- 효율성- 클라우드 네이티브 에코시스템 지금부터 하나씩 살펴보도록 합시다.개발 속도불변성 (Immutability)애플리케이션이나 그 환경을 배포한 후, 그 상태를 직접 변경하지 않고, 필요한 변경 사항이 있다면 새로 이미지를 생성하여 배포하는 방식입니다. 이는 시스템의 일관성 유지와 디버깅을 더 쉽게 해줍니다.컨테이너 이미지의 불변성컨테이너 이미지는 배포 이후에는 변경되지 않습니다. 변경이 필요하다면 새로운 버전의 이미지를..