#infra
노트 39개
Backend › Architecture
개발자 머피의 법칙: 백엔드 방어 체크리스트잘못될 수 있는 것은 결국 잘못된다. 클라이언트 값 불신, 서버 재계산, 인증과 권한 분리, 입력 범위 제한, 운영 권한 통제, 배치·로그·알림 분리, SPOF 제거처럼 감당할 수 없는 사고는 이미 일어난 것으로 보고 먼저 막는다.
Backend › Architecture
고가용성 이중화 구조와 장애 감지가용성을 나인(nines)으로 재는 법과 직렬·병렬 구성의 가용성 계산, 주-백업·주-보조·주-주·핫-핫·핫-웜·단일 리더·리더 없는 클러스터 같은 이중화 구조, 결함 허용 설계의 여섯 원칙, 하트비트로 노드 장애를 감지하는 방식, 페일오버 절차와 비동기 복제의 유실, 스플릿 브레인을 막는 정족수·에포크·펜싱·리스를 정리했다.
Backend › Architecture
로드 밸런서여러 서버 앞에서 트래픽을 나눠 주는 로드 밸런서. 하는 일(분산, 헬스 체크와 장애 우회, TLS 종료, 세션 고정, 수평 확장, 플랫폼·경로별 라우팅, 영역 간 분산), L4와 L7의 차이, 하드웨어·소프트웨어·클라우드·GSLB 같은 형태, 분산 알고리즘을 정리했다.
Backend › Architecture
캐시 클러스터 운영과 장애 대응트래픽 대부분을 캐시가 받는 서빙 계층에서는 캐시의 가용성이 곧 서비스의 가용성이다. 일부 노드 장애를 연결 단위로 빨리 감지하고, 동기화 중인 복제본은 트래픽에서 빼고, 응답 속도 기반 라우팅이 만드는 쏠림을 무작위 선택으로 풀고, 핫 키는 짧은 TTL의 로컬 캐시로 흡수하는 방법을 정리했다.
Backend › Architecture
API 게이트웨이클라이언트와 백엔드 서비스 사이의 단일 입구인 API 게이트웨이. 라우팅·인증·레이트 리밋·요청 변환·응답 조합·캐시 같은 기능, 요청 하나가 게이트웨이를 지나는 순서, 생태계·마켓플레이스·다중 플랫폼 같은 쓰임, 그리고 리버스 프록시·로드 밸런서·서비스 메시·공통 라이브러리와의 차이와 함께 쓰는 배치를 정리했다.
Computer Science › Network
네트워크 보안: 방화벽, VPN, 계층별 공격공용망의 위협은 가로막기·가로채기·변조·위조로 나뉘고 대칭키·공개키(RSA)·해시로 막는다. 방화벽은 정해 둔 규칙(포트·IP·프로토콜·연결 상태·애플리케이션)으로 트래픽을 걸러 내는 문지기이고, 패킷 필터에서 상태 추적·프록시·차세대 방화벽으로 발전했다. 방화벽을 통과한 공격은 IDS·IPS가 탐지·차단한다. VPN은 공용망 위에 암호화된 터널을 만들어 원격 사용자나 지점을 사설망처럼 잇는다. OSI 계층마다 노리는 공격이 달라 방어도 계층별로 겹겹이 쌓는다.
Computer Science › Network
프록시: 포워드 프록시와 리버스 프록시클라이언트와 서버 사이에서 요청을 대신 주고받는 프록시 서버. 누구를 대리하느냐에 따라 나뉘는 포워드 프록시와 리버스 프록시의 차이, 리버스 프록시가 맡는 일(TLS 종료·로드 밸런싱·캐시), VPN·NAT와의 관계, 원래 클라이언트 IP를 전달하는 헤더를 정리한다.
Computer Science › Operating System
데몬과 systemd터미널과 분리되어 백그라운드에서 도는 데몬의 개념, SysV 방식의 이중 fork 데몬화가 필요했던 이유, 그 일을 대신 해 주는 systemd의 유닛·서비스·타이머, cron을 대체하는 systemd 타이머와 journalctl 로그를 정리한다.
Computer Science › Operating System
리눅스 배포판과 패키지 관리리눅스 커널과 배포판의 관계, Debian·RHEL·Arch 계열의 차이와 패키지 관리자(apt·dnf·pacman), CentOS가 CentOS Stream으로 바뀐 과정과 Rocky Linux·AlmaLinux 같은 대안, 배포판·커널 버전 확인 방법을 정리한다.
DevOps
개발한 서비스를 안정적으로 빌드·배포·운영하기 위한 인프라와 자동화 지식 모음.
DevOps
고가용성과 재해 복구 설계데이터센터 하나가 통째로 사라져도 서비스를 이어 가기 위한 설계 원칙. RTO·RPO로 목표를 정하고, 백업·파일럿 라이트·웜 스탠바이·액티브-액티브 중 전략을 고르며, 데이터·플랫폼·운영 도구까지 모든 계층을 여러 데이터센터에 나누고, 전환을 정기 훈련으로 검증한다. 복구에 쓰는 운영 도구가 가장 자주 다중화에서 빠진다.
DevOps
관측 가능성: 로그, 트레이스, 메트릭관측 가능성의 세 기둥인 로그(개별 사건), 트레이스(요청 하나의 경로), 메트릭(집계 가능한 수치)의 차이와 수집 구조, OpenTelemetry로 한 표준에 모으는 방법, 메트릭 수집의 풀·푸시 모델과 서비스 디스커버리, 쓰기가 많고 읽기가 몰리는 메트릭에 범용 DB 대신 시계열 DB를 쓰는 이유를 정리한다.
DevOps
내구성 워크플로와 Temporal: 스케줄 배치를 코드로 짜고 상태를 복원하기Jenkins 류로 스케줄 배치를 운영할 때 생기는 디스크 포화·플러그인 충돌·알림 누락 문제를, 실행 상태를 DB에 저장해 재시작에도 이어 실행하는 내구성 워크플로 엔진 Temporal로 옮기는 방식을 정리했다. Workflow·Activity·서버·워커의 구조, cron·Jenkins와의 역할 차이, 중복 실행 방지와 노드 축소 대응 같은 운영 주의점까지 다룬다.
DevOps
배포 전략: 롤링, 블루-그린, 카나리, 섀도, 피처 토글새 버전을 운영에 올리는 방식을 다운타임·롤백 속도·비용·노출 범위로 비교한다. 한 번에 바꾸는 빅뱅(Recreate), 하나씩 바꾸는 롤링, 환경을 통째로 전환하는 블루-그린, 일부 사용자에게 먼저 여는 카나리, 트래픽 사본으로 검증하는 섀도, 배포와 출시를 떼어 내는 피처 토글과 A/B 테스트를 다룬다.
DevOps
서비스 운영 준비 체크리스트서버 애플리케이션을 프로덕션에 올리기 전에 확인할 최소 기준을 회복력, 수평 확장, 무중단 배포, 프로세스 감독, 로그, 알림과 헬스 체크, 지표, 고가용성, 부하·장애 테스트, 백업 복구, 보안, 법 열두 분야로 나누고 각 항목을 자세한 노트로 잇는다. 오래된 보안 헤더(X-XSS-Protection, HPKP)처럼 지금은 따르지 않는 항목도 정리한다.
DevOps
스타트업 인프라 선택 원칙작은 팀이 인프라를 고를 때의 판단 기준. 데이터 계층에는 관리형 서비스에 돈을 쓰고, 단순한 도구를 고르고, 관리형 편의 기능은 커스터마이즈 여지를 먼저 보고, 관측 표준(OpenTelemetry)·IdP·의존성 업데이트·비용 추적처럼 늦을수록 비싸지는 것은 처음부터 들인다. 가변 인프라·비대한 이미지·공유 DB 같은 클라우드 네이티브 안티패턴도 함께 정리한다.
DevOps
장애 대응과 포스트모템장애는 탐지 → 전파 → 해결 → 보고 → 회고의 다섯 단계로 다룬다. 해결은 확산을 막는 임시 조치(롤백·재기동·증설·기능 스위치)가 먼저고, 보고서와 비난 없는 포스트모템으로 재발 방지·탐지·처리 개선 과제를 검증 가능한 액션 아이템으로 남긴다.
DevOps
쿠버네티스 구조와 핵심 개념쿠버네티스는 원하는 상태를 선언하면 컨트롤 플레인이 노드의 컨테이너를 그 상태로 계속 맞추는 오케스트레이터다. 컨트롤 플레인(API 서버·etcd·스케줄러·컨트롤러 매니저)과 노드(kubelet·kube-proxy·런타임)의 역할, 파드와 워크로드 리소스, 서비스 네 가지 유형, 쿠버네티스 디자인 패턴, 자주 쓰는 kubectl 명령, 생태계 도구 지도를 정리한다.
DevOps
쿠버네티스 네트워킹: 서비스, DNS, Ingress, NetworkPolicy파드마다 IP를 주는 네트워크 모델과 CNI, 서비스의 가상 IP가 kube-proxy(iptables·nftables·IPVS) 규칙으로 파드에 닿는 원리, 서비스 유형별 세부 동작, CoreDNS와 이름 해석, 외부로 나가는 트래픽, Ingress·Gateway API, NetworkPolicy, 서비스 메시(Istio·Linkerd), 연결·DNS 문제 진단을 정리한다.
DevOps
쿠버네티스 보안: 인증, RBAC, 서비스 계정, 파드 보안쿠버네티스 API에 접근하는 주체를 확인하는 인증(X.509·토큰·OIDC)과 kubeconfig 구조, 권한을 주는 RBAC(Role·ClusterRole·바인딩, verb)와 최소 권한 적용법, 파드가 API를 부르는 서비스 계정과 토큰, 그리고 컨테이너 권한을 줄이는 Pod Security Standards·Pod Security Admission·securityContext를 정리한다.
DevOps
쿠버네티스 스케줄링과 자원 관리, 오토스케일링파드를 어느 노드에 둘지 정하는 nodeSelector·노드 어피니티·파드 (안티)어피니티·토폴로지 분산·테인트와 톨러레이션, CPU·메모리 requests와 limits의 의미와 초과 시 동작, QoS 클래스, LimitRange·ResourceQuota·PriorityClass, 그리고 HPA·VPA·Cluster Autoscaler의 동작 원리와 함께 쓸 때의 주의점을 정리한다.
DevOps
쿠버네티스 운영: Helm, 업그레이드, 관측, 장애 진단, 오퍼레이터, GitOps쿠버네티스 클러스터와 앱을 운영하는 데 필요한 것들: Helm 차트·릴리스·훅, 버전 업그레이드 순서와 etcd 백업·복구, cordon·drain과 PodDisruptionBudget, 로그 구조와 kubectl logs, metrics-server와 Prometheus 모니터링, CrashLoopBackOff·ImagePullBackOff 진단과 kubectl debug, CRD와 오퍼레이터 패턴, Argo CD·Flux GitOps, 멀티 클러스터 관리.
DevOps
쿠버네티스 워크로드와 파드 생명주기파드의 단계(Pending·Running·Succeeded·Failed·Unknown)와 컨테이너 상태, 재시작 정책, 사이드카·앰버서더·어댑터·초기화 컨테이너 패턴, liveness·readiness·startup 프로브, 그리고 Deployment·ReplicaSet·StatefulSet·DaemonSet·Job·CronJob이 파드를 관리하는 방식과 주요 설정(maxSurge·maxUnavailable, 순차 배포, completions·parallelism, concurrencyPolicy)을 정리한다.
DevOps
쿠버네티스 위 웹 서비스의 요청 경로와 구성 요소브라우저 요청이 로드 밸런서, 게이트웨이, 서비스 메시를 거쳐 파드의 컨테이너에 닿고, 그 트래픽이 Prometheus·Grafana로 관측되기까지의 경로와 각 구성 요소(Terraform, Kubernetes, Helm, Istio, API 게이트웨이)의 역할을 프론트엔드 개발자 관점에서 정리했다.
DevOps
쿠버네티스 저장소와 설정: PV·PVC, ConfigMap, Secret파드가 죽어도 남는 저장소를 요청하는 PV·PVC와 접근 모드·회수 정책, StorageClass의 동적 프로비저닝과 CSI, emptyDir·hostPath 같은 볼륨 유형, 그리고 설정과 비밀 값을 이미지 밖에서 넣는 ConfigMap·Secret의 주입 방식, Secret의 실제 보안 수준, 외부 비밀 저장소 연동, 변경이 파드에 반영되지 않는 이유와 해결법을 정리한다.
DevOps
클라우드 기초와 AWS: 서비스 모델, 인프라, 컴퓨팅, 보안 그룹온프레미스와 클라우드의 차이, NIST가 정의한 다섯 가지 특징과 배포 모델, 제공자가 어디까지 관리하느냐로 나뉘는 IaaS·PaaS·SaaS와 공동 책임 모델, 클라우드를 받치는 가상화·네트워크 가상화(SDN·NFV), 리전·가용 영역·엣지 로케이션으로 이루어진 AWS 글로벌 인프라, EC2의 인스턴스 유형과 요금 모델, 관리형 서비스(ECS·EKS·Lambda), 보안 그룹으로 RDS 접속을 여는 법과 배스천 SSH 터널, 콘솔·CLI·SDK와 코드형 인프라.
DevOps
클라우드 네이티브와 코드형 인프라클라우드 네이티브를 개발 프로세스·애플리케이션 구조·배포 단위·인프라의 네 축으로 정의하고, 가상화에서 IaaS·PaaS·컨테이너로 이어진 클라우드의 변천, 전환 로드맵(CNCF 랜드스케이프의 여섯 영역), 전통적 구성 관리와 코드형 인프라(IaC)·GitOps의 차이와 대표 도구를 정리했다.
DevOps
클라우드 비용 최적화와 숨은 비용클라우드 비용을 줄이는 여섯 가지 방법(사용량 줄이기, 유휴 자원 정리, 적정 크기, 비업무 시간 종료, 약정 할인과 스팟, 데이터 전송 최적화)과, 청구서에서 예상 밖으로 커지는 숨은 비용(무료 사용량 경계, 공인 IPv4, 유휴 로드 밸런서, 붙지 않은 디스크와 남은 스냅숏, 객체 스토리지 요청 요금, 미완료 멀티파트 업로드, 송신 데이터 전송)을 정리했다.
DevOps
클라우드 서비스 지도: AWS·Azure·GCP 대응표세 주요 클라우드의 서비스를 컴퓨팅·스토리지·데이터베이스·네트워크·메시징·보안·관측·IaC 범주로 나란히 놓은 대응표, 처음 익힐 AWS 핵심 서비스와 학습 순서, 계층·범위로 고르는 클라우드 로드 밸런서, 수집에서 시각화까지의 빅데이터 파이프라인 단계와 처리 엔진(Hadoop·Spark), 클라우드 모니터링이 갖춰야 할 기능을 정리했다.
DevOps
클라우드 SLA·계약과 규제: 품질 지표, 도입 판단, 계약, 클라우드컴퓨팅법클라우드 서비스의 품질을 가용성·응답성·확장성으로 재는 법과 SLA의 가용률·서비스 크레딧, 어떤 시스템을 먼저 클라우드로 옮길지 고르는 기준과 중요도 평가, 계약 전에 준비할 업무 연속성 계획·출구 전략·보안 통제, 계약서에 꼭 넣을 항목, 그리고 「클라우드컴퓨팅 발전 및 이용자 보호에 관한 법률」이 정한 이용자 권리(사고 통지, 저장 국가 공개, 반환·파기, 임치, 입증 책임 전환)와 공공·금융·의료·교육 분야의 클라우드 규정을 정리했다.
DevOps
플랫폼 엔지니어링: 내부 개발자 플랫폼과 골든 패스플랫폼 엔지니어링은 개발팀마다 반복되는 인프라·배포·보안 작업을 내부 개발자 플랫폼(IDP)이라는 내부 제품으로 묶어 셀프서비스로 제공하는 일이다. 개발자를 고객으로 보는 제품 관점, IDP의 다섯 구성 요소와 플랫폼 오케스트레이터, 포털과 플랫폼의 차이, 골든 패스(포장된 길)의 네 가지 성질과 설계법, 최소 실행 가능 플랫폼에서 시작해 키우는 방식을 정리한다.
DevOps
AWS Lambda의 내부 구조서버리스 함수 서비스 Lambda가 요청을 처리하는 과정을 동기·비동기 호출 경로, 실행 환경을 배정하는 Assignment 서비스와 Placement 서비스, 함수마다 격리하는 Firecracker 마이크로VM, 코드·이미지를 청크로 나눠 공유하는 저장 계층, 콜드 스타트를 줄이는 SnapStart로 나눠 정리했다.
DevOps
AWS VPC 네트워크 구성AWS에서 격리된 가상 네트워크인 VPC와 서브넷·라우팅 테이블을 바탕으로, 인터넷(인터넷 게이트웨이·NAT), 원격 근무자(Client VPN), 사내 데이터센터(Site-to-Site VPN·Direct Connect), 다른 VPC(피어링·Transit Gateway), AWS 서비스와 SaaS(게이트웨이·인터페이스 엔드포인트, PrivateLink)를 잇는 방법을 한 장의 구성도로 정리했다.
DevOps
DevOps, SRE, 플랫폼 엔지니어링, NoOps와 클라우드 거버넌스개발과 운영을 잇는 방식의 갈래를 비교한다. DevOps는 협업 문화와 자동화, SRE는 SLO·에러 버짓으로 신뢰성을 공학 문제로 다루는 실천, 플랫폼 엔지니어링은 개발자가 스스로 쓰는 내부 플랫폼을 제품으로 만드는 일, NoOps는 서버리스로 운영 작업을 클라우드에 넘기는 지향이다. 클라우드를 들인 조직의 운영 모델(중앙 집중·분산·공유 서비스·CCoE), 통제가 아니라 가드레일로서의 거버넌스와 문화 전환, 테스트가 개발자 몫으로 옮겨 간 흐름과 회사 규모별 배포·품질 도구의 변화도 함께 다룬다.
DevOps
Docker Compose: 여러 컨테이너 묶어 띄우기compose.yaml 하나로 웹 서버·애플리케이션·DB 컨테이너를 정의하고 함께 띄우는 Docker Compose의 최상위 구성, 서비스 주요 키, 환경 변수 관리(.env·environment·env_file 우선순위), depends_on과 healthcheck로 시작 순서 제어, 네트워크 분리, 볼륨 공유, 여러 파일 겹치기, 스케일링, secrets, 점검 명령.
DevOps
Dockerfile 작성과 컨테이너의 PID 1이미지와 컨테이너의 관계와 층 구조, Dockerfile 명령(RUN·CMD·ENTRYPOINT 조합, COPY·ADD, ARG·ENV, WORKDIR, USER, HEALTHCHECK), 베이스 이미지(Debian·Alpine·distroless·scratch) 고르기, 컨테이너가 바로 꺼지는 이유와 PID 1·좀비 프로세스 문제(tini·--init), 디버깅 요령, 멀티 스테이지 빌드·빌드 캐시·BuildKit, 태그 전략·레지스트리·댕글링 이미지·save·load 같은 이미지 관리.
DevOps
Packer와 머신 이미지 굽기Packer는 템플릿 하나로 AMI·GCE 이미지·VM·컨테이너 이미지를 자동으로 만드는 HashiCorp의 이미지 빌더다. 소스(빌더)로 임시 머신을 띄우고 프로비저너로 설정한 뒤 스냅숏을 떠서 후처리기로 넘기는 흐름, HCL2 템플릿과 packer init·build, Dockerfile과의 차이, 골든 이미지와 불변 인프라에서의 쓰임을 정리한다.
DevOps
Terraform: 코드로 클라우드 인프라 만들기Terraform은 원하는 인프라를 HCL 코드로 선언하면, 상태 파일과 비교한 계획(plan)을 보여 주고 승인 뒤 제공자 API를 호출해 실제 자원을 만든다(apply). write → init → plan → apply 흐름, HCL 파일 규칙과 데이터 소스, import·graph·destroy 명령, 상태 파일과 원격 백엔드·잠금, 모듈, 드리프트와 불변 인프라, CI에서의 운영 방식을 정리한다.
DevOps
VM과 컨테이너OS 전체를 가상화하는 VM과 애플리케이션 단위로 격리하는 Docker 컨테이너의 차이, Docker의 핵심 개념과 클라이언트·데몬·레지스트리 구조, dockerd·containerd·runc 런타임 계층과 OCI 표준, Docker와 쿠버네티스의 관계, 컨테이너가 많아질 때 필요한 오케스트레이션·오토 스케일링(Swarm·Kubernetes·ECS), MSA에서의 장단점을 다룬다.