Hye Jin Ryoo

[Terraform 운영] Day 2: Module 설계 - 복사 대신 안정된 계약 만들기

서론: 오늘의 문제 좋은 Terraform module은 리소스를 숨기는 상자가 아니라 조직의 인프라 결정을 재사용 가능한 계약으로 표현한다. 입력, 출력, 버전과 책임 범위를 작게 유지한다. 1. 추상화의 단위 provider 리소스 한 개를 그대로 감싼 module은 가치가 작다. 네트워크가 포함된 서비스 실행 환경처럼 함께 변경되고 같은 정...

[Terraform 운영] Day 1: State와 소유권 - 실제 인프라를 잇는 장부

서론: 오늘의 문제 Terraform state는 캐시 파일이 아니라 선언한 주소와 실제 자원을 연결하는 운영 장부다. 저장 위치, 잠금, 접근 권한과 복구 절차를 먼저 설계해야 협업이 안전해진다. 1. State가 저장하는 것 state는 리소스 주소와 원격 객체 식별자를 연결하고 의존성 계산에 필요한 메타데이터를 보관한다. 실제 인프라를 다시...

[OpenTelemetry 실전] Day 5: 도입과 거버넌스 - 관측성을 제품처럼 운영하기

서론: 오늘의 문제 계측 라이브러리를 설치했다고 관측성이 완성되지는 않는다. 공통 의미 규칙, 비용 예산, 품질 검사와 단계적 전환으로 팀이 신뢰하는 플랫폼을 만든다. 1. 관측 질문에서 시작하기 먼저 사용자가 실패하는 지점, 지연의 원인, 용량 한계를 어떤 질문으로 찾을지 정한다. 신호 수집량이 아니라 답할 수 있는 운영 질문의 수를 성과로 본...

[OpenTelemetry 실전] Day 4: Collector 파이프라인 - 수집과 처리의 경계 만들기

서론: 오늘의 문제 애플리케이션이 관측 백엔드마다 다른 exporter를 직접 관리하면 교체와 정책 통제가 어렵다. Collector의 receiver, processor, exporter를 데이터 파이프라인으로 설계한다. 1. Agent와 Gateway 토폴로지 노드 가까이에서 수집해야 하는 파일 로그와 중앙에서 처리할 trace를 구분한다. ...

[OpenTelemetry 실전] Day 3: Log 상관관계 - 검색 가능한 사건으로 바꾸기

서론: 오늘의 문제 로그는 사람이 읽는 문장만이 아니라 trace와 metric을 연결하는 구조화된 사건이다. 기존 로깅 라이브러리를 유지하면서 공통 필드와 민감 정보 정책을 정한다. 1. 구조화 로그의 최소 필드 timestamp, severity, service, environment, event name을 안정된 필드로 둔다. 메시지 문구가...

[OpenTelemetry 실전] Day 2: Metric과 카디널리티 - 집계 가능한 신호 설계

서론: 오늘의 문제 메트릭은 값 하나보다 이름, 단위, 속성 집합이 만든 시계열 계약이 중요하다. counter, gauge, histogram을 올바르게 선택하고 카디널리티 예산을 운영한다. 1. 계측기 선택 누적 사건은 counter, 오르내리는 현재 상태는 gauge 계열, 분포는 histogram으로 표현한다. 같은 현상을 여러 타입으로 ...

[OpenTelemetry 실전] Day 1: Trace와 Context 전파 - 요청의 경로를 잇는 법

서론: 오늘의 문제 분산 요청은 서비스마다 남은 로그 조각만으로 이해하기 어렵다. trace, span, context propagation의 역할을 구분하고 비동기 경계까지 하나의 인과 관계로 연결한다. 1. Trace와 Span의 모델 trace는 한 작업의 전체 경로이고 span은 그 안의 단일 작업 구간이다. span 이름은 구현 메서드보...

[Kubernetes 프로덕션] Day 5: 가용성과 운영 - 업그레이드 가능한 클러스터 만들기

서론: 오늘의 문제 정상 상태에서 실행되는 것만으로 프로덕션 준비가 끝나지 않는다. 노드 교체, 존 장애, 버전 업그레이드와 운영자 실수를 견딜 수 있도록 중단 예산과 관측, 복구 절차를 준비한다. 1. PodDisruptionBudget의 범위 PDB는 노드 드레인 같은 자발적 중단에서 동시에 사라질 수 있는 복제본 수를 제한한다. 애플리케이션...

[Kubernetes 프로덕션] Day 4: 네트워크·설정·보안 - 기본 허용을 줄이는 경계 설계

서론: 오늘의 문제 클러스터 내부 통신이라고 자동으로 신뢰할 수 있는 것은 아니다. Service 발견, 설정 전달, 서비스 계정과 네트워크 정책을 결합해 워크로드가 필요한 권한과 연결만 갖게 한다. 1. Service와 DNS 계약 Pod IP는 수명과 함께 바뀌므로 클라이언트는 Service 이름과 포트를 계약으로 사용한다. DNS TTL과 ...