#인프라

301 편의 글

AWS 고급 #2 ECR: 이미지 레지스트리
8 분 소요

AWS 고급 #2 ECR: 이미지 레지스트리

Amazon ECR private / public, IAM 인증, docker push / pull, 이미지 스캔, 라이프사이클 정책, 멀티 아키텍처(linux/amd64 + arm64)까지. ECS와 Lambda가 가져갈 이미지를 어디에 보관하는지 정리합니다.

K8s 중급 #5 Health check — liveness / readiness / startup probe
21 분 소요

K8s 중급 #5 Health check — liveness / readiness / startup probe

[#4](/ko/posts/k8s-intermediate-4)까지 Pod의 자원 모델을 정리했다면, 이번 글은 K8s가 컨테이너의 "살아 있음"과 "트래픽을 받을 준비됨"을 어떻게 판단하는가의 모델입니다. 세 종류의 probe — liveness, readiness, startup — 이 각자 다른 역할을 맡고, 잘못 설정하면 무한 재시작 루프,트래픽 미스,기동 실패 같은 운영 사고로 직결됩니다. `httpGet` / `tcpSocket` / `exec` 세 검사 방식, `initialDelaySeconds` / `periodSeconds` / `failureThreshold` 같은 공통 매개변수, liveness에 외부 의존성을 넣었을 때의 cascading failure, `terminationGracePeriodSeconds`와 PreStop 훅이 그리는 graceful shutdown까지 한 사이클로 정리하겠습니다.

RHEL 고급 #1 부팅 프로세스 — GRUB2, dracut, 복구 모드
10 분 소요

RHEL 고급 #1 부팅 프로세스 — GRUB2, dracut, 복구 모드

RHEL 머신이 전원이 들어와서 로그인 프롬프트가 뜨기까지의 전체 흐름을 단계별로 정리합니다. UEFI/BIOS, GRUB2 설정과 grub2-mkconfig, initramfs와 dracut 재생성, systemd target과 default.target, rescue/emergency 모드, GRUB 편집을 거쳐 root 비밀번호를 복구하는 절차까지 한 사이클로 다루겠습니다.

도커 실전 강좌 #2 Django + PostgreSQL compose — 두 컨테이너 한 묶음
9 분 소요

도커 실전 강좌 #2 Django + PostgreSQL compose — 두 컨테이너 한 묶음

Django 앱과 PostgreSQL을 docker compose 한 파일에 묶어보겠습니다. 마이그레이션 entrypoint, depends_on과 healthcheck의 연결, 데이터 볼륨, .env 분리, collectstatic까지 compose가 풀어주는 작업을 운영 형태로 정리합니다.

AWS 고급 #1 ECS와 Fargate: 컨테이너 배포
11 분 소요

AWS 고급 #1 ECS와 Fargate: 컨테이너 배포

ECS의 동작 방식(vs EKS), Cluster / Service / Task / Task Definition의 4가지 구성 요소, EC2 launch type vs Fargate, ALB / VPC와의 연결, 첫 컨테이너 배포까지. AWS 위에 컨테이너를 어떻게 올리는지 한 번에 정리합니다.

K8s 중급 #4 resources.requests / limits — Pod의 자원 요청과 상한
17 분 소요

K8s 중급 #4 resources.requests / limits — Pod의 자원 요청과 상한

[#3](/ko/posts/k8s-intermediate-3)까지 외부 트래픽이 클러스터 안으로 들어오는 길을 정리했습니다. 이번 글의 시점은 다시 Pod 안으로 들어옵니다 — 컨테이너가 CPU와 메모리를 어떻게 요청하고 어떻게 제한받는가의 모델입니다. `resources.requests`는 스케줄러가 노드를 고를 때 보는 값이고, `resources.limits`는 kubelet이 런타임에 강제하는 상한입니다. 이 둘의 분리, QoS 클래스(Guaranteed / Burstable / BestEffort), CPU throttling과 OOMKilled의 차이, JVM,Go 런타임의 cgroup 인식, `LimitRange`로 네임스페이스 기본값을 거는 패턴까지 한 사이클로 정리하겠습니다.

RHEL 중급 #7 컨테이너 입문 — Podman/Buildah/Skopeo
9 분 소요

RHEL 중급 #7 컨테이너 입문 — Podman/Buildah/Skopeo

RHEL 9의 컨테이너 표준은 Podman입니다. Docker와 거의 같은 명령어를 쓰면서도 데몬이 없고, rootless로 돌고, systemd와 긴밀하게 통합되는 구조를 운영 관점에서 살핍니다. Buildah로 이미지를 빌드하고 Skopeo로 레지스트리 사이를 옮기는 흐름까지 한 사이클로 정리합니다.

도커 실전 강좌 #1 FastAPI 컨테이너화 — uv,멀티스테이지,non-root
9 분 소요

도커 실전 강좌 #1 FastAPI 컨테이너화 — uv,멀티스테이지,non-root

실전 시리즈의 첫 글입니다. 가장 흔한 시나리오인 FastAPI 앱을 컨테이너로 묶어보겠습니다. uv 기반 슬림 베이스, 멀티스테이지로 빌드 의존성과 런타임 의존성 분리, non-root 사용자, HEALTHCHECK까지 운영에 바로 올릴 수 있는 형태로 정리합니다.

AWS 중급 #7 CloudFront로 정적 사이트 배포
8 분 소요

AWS 중급 #7 CloudFront로 정적 사이트 배포

AWS의 글로벌 CDN, CloudFront. Origin / Behavior / Cache Policy의 흐름, S3 + CloudFront 정적 호스팅 패턴, OAC로 S3를 안전하게 가리는 법, 그리고 무효화(invalidation)의 운영 흐름까지 정리합니다.

K8s 중급 #3 Ingress와 Ingress Controller — 외부 진입점
18 분 소요

K8s 중급 #3 Ingress와 Ingress Controller — 외부 진입점

[K8s 기초 #5](/ko/posts/k8s-basics-5)의 LoadBalancer는 외부 진입의 표준이지만, 외부 노출이 필요한 Service가 수십 개라면 Service마다 클라우드 LoadBalancer를 한 개씩 띄우는 비용,관리 부담이 빠르게 커집니다. 도메인이나 경로별로 트래픽을 갈라야 하는 요구도 LoadBalancer 한 단으로는 풀리지 않습니다. 이번 글은 그 부담을 한곳에 모으는 객체 `Ingress`와, 그 매니페스트를 실제 트래픽으로 풀어 주는 **Ingress Controller**(nginx / Traefik / GKE Ingress / AWS ALB Controller 등)의 두 층 모델, 호스트,경로 기반 라우팅, `pathType`, TLS 종단, `IngressClass`까지 한 사이클로 정리하겠습니다.

도커 고급 강좌 #6 프로덕션 운영 — graceful shutdown, healthcheck, restart
8 분 소요

도커 고급 강좌 #6 프로덕션 운영 — graceful shutdown, healthcheck, restart

PID 1의 신호 처리, SIGTERM 그레이스풀 종료의 정확한 흐름, init과 dumb-init의 쓰임, restart 정책 깊이, liveness vs readiness 개념을 다룹니다. 한 컨테이너를 프로덕션에서 안정적으로 운영할 때 필요한 잔주름을 한곳에 모으겠습니다. 도커 고급 시리즈를 마무리합니다.

AWS 중급 #6 ALB / NLB와 ACM (HTTPS)
8 분 소요

AWS 중급 #6 ALB / NLB와 ACM (HTTPS)

AWS의 매니지드 로드 밸런서 ALB / NLB / GWLB의 차이, Listener / Target Group / Health Check의 흐름, 그리고 ACM으로 인증서를 발급받아 HTTPS를 한 번에 다는 운영 흐름까지 정리합니다.