전체 글121 ALB LCU 예약 제대로 쓰기 - Prewarm 요청은 이제 필요 없다 게임 오픈처럼 트래픽이 순간 급증하는 이벤트를 앞두면 예전에는 AWS에 ELB Prewarm(사전 확장)을 요청하는 절차가 있었습니다. 지금은 그 자리를 LCU 예약(capacity unit reservation)이 대신합니다 — 지원 티켓 없이 설정 하나로 됩니다. 부하테스트 실측을 근거로 예약값을 정하고 실제 운영에 적용하면서 겪은 내용을 정리합니다.LCU와 용량 단위 예약LCU(Load balancer Capacity Unit) 는 ELB의 처리 용량 단위입니다. ALB는 ① 신규 연결 수/초 ② 활성 연결 수 ③ 처리 바이트 ④ 규칙 평가 수 중 가장 큰 차원으로 LCU를 소비합니다 (예: 신규 연결 25/s = 1 LCU)ALB는 트래픽에 따라 자동 확장되지만 확장에 수 분이 걸립니다 — 오픈·.. 2026. 9. 16. Windows Server 장애조치 클러스터 구성하기 - 기능 설치부터 디스크 등록까지 앞선 글에서 RDM 공유 디스크 준비를 마쳤다면, 이제 Windows 쪽에서 실제 클러스터를 만들 차례입니다. 장애조치 클러스터링(Failover Clustering) 기능 설치부터 유효성 검사, 클러스터 생성, 공유 디스크 등록까지의 과정을 정리합니다.vSphere 가상 머신 기준으로 작성했지만, 물리 서버에서도 Windows 쪽 절차는 동일합니다. 화면은 Windows Server 2012 R2 기준입니다.준비물 - 서버 3대MSCS는 Failover / Failback으로 고가용성을 만드는 구성입니다. 최소 3대가 필요합니다.역할설명AD (도메인 컨트롤러)클러스터 노드들이 같은 도메인에 속해야 하고, 클러스터 객체(CNO)가 AD에 생성됨Active 노드평상시 서비스를 담당Standby 노드장애 시.. 2026. 9. 10. EKS 노드가 안 늘어날 때 의심할 것 (3) - NodePool taint 불일치 이 글은1편 (vCPU 서비스 쿼터), 2편 (서브넷 IP 고갈)에 이어, 노드가 안 늘어나는 세 번째 범인 — NodePool taint와 파드 toleration의 불일치를 다룹니다신규 환경 구축 중 실제로 겪은 사건 기준입니다: 게임 서버 파드 6개가 30분 넘게 Pending인데, 전용 NodePool은 멀쩡히 존재하고 노드만 0대인 상태증상ArgoCD 앱 Degraded — 게임 서버 계열 파드 6개가 Pending 지속스케줄러 이벤트는 흔한 모습이었습니다0/33 nodes are available: 26 node(s) had untolerated taint(s),7 node(s) didn't match Pod's node affinity/selector그런데 Karpenter provision.. 2026. 8. 31. Karpenter가 예고 없이 노드를 교체할 때 - Drift 동작과 NodeClass 사고 2건 Karpenter를 운영하면서 실제로 겪은 사고 2건을 정리합니다. 하나는 아무도 배포하지 않았는데 새벽에 노드가 전부 순차 교체된 사건이고, 다른 하나는 노드가 재시작된 뒤 신규 노드가 아예 생성되지 않던 사건입니다. 둘 다 원인은 Karpenter의 정상 동작 원리 안에 있었습니다.사건 1 - 새벽에 노드가 전부 순차 교체됨증상배포도, 스케일 이벤트도 없었는데 워커 노드들이 하나씩 삭제되고 새 노드로 교체됨서비스 순단은 없었지만 노드 이름과 인스턴스가 전부 바뀌어 있었음로그 확인Karpenter 로그를 보면 교체 사유가 명시되어 있습니다 — "reason":"drifted"{"level":"INFO","message":"disrupting nodeclaim(s) via replace, terminat.. 2026. 8. 26. NAT Gateway 비용 절감 실전 - 일 150TB 트래픽을 100GB로 줄인 3단계 라이브 게임 서비스의 AWS 청구서에서 NAT Gateway 데이터 처리 비용이 비정상적으로 커진 것을 발견하고,트래픽 경로를 3단계로 손봐서 일 $9,000 수준이던 NAT 전송 비용을 $10 미만으로 줄인 기록입니다.AS-IS / TO-BE 트래픽 경로와 비용 변화NAT Gateway 요금 구조NAT Gateway는 두 가지 축으로 과금됩니다 (요금표)시간당 요금 — 떠 있기만 해도 나감 (도쿄 기준 $0.062/h)데이터 처리 요금 — NAT를 통과하는 트래픽 GB당 과금 (도쿄 기준 $0.062/GB)시간당 요금은 예측 가능하지만, 데이터 처리 요금은 경로 설계에 따라 폭발합니다GB당 $0.062 × 일 150TB ≒ 일 $9,300 — 실제로 벌어진 일입니다여기에 NAT Gateway가 다른 가.. 2026. 8. 16. EKS DNS 안정화 - NodeLocal DNSCache 도입 검증기 배경 — 왜 DNS를 건드렸나게임 런칭을 앞둔 EKS 클러스터에서 DNS를 사전 튜닝하기로 했습니다. CoreDNS가 Fargate 위에 떠 있는 구성이었는데, 이 구조에는 세 가지 잠재 리스크가 있습니다네트워크 지연 — 모든 DNS 질의가 네트워크를 건너 Fargate 상의 CoreDNS까지 가야 함conntrack 경합 — 짧은 시간에 몰리는 DNS UDP 패킷이 노드의 conntrack 테이블 입력 과정에서 경합(race)을 일으켜 패킷 드랍 발생 가능. 애플리케이션에서 간헐적으로 보이는 "DNS 5초 지연"의 주범입니다 — 드랍된 UDP 질의는 resolver 타임아웃(기본 5초)만큼 기다렸다가 재시도되기 때문부하 집중 — 클러스터 전체 질의가 소수의 CoreDNS 파드에 몰려, CoreDNS 장.. 2026. 8. 16. Claude Code 서브에이전트 설계 패턴 5가지 서브에이전트가 왜 필요한가Claude Code의 서브에이전트는 독립된 컨텍스트에서 실행되는 보조 에이전트입니다 (공식 문서)메인 세션에서 전부 처리하지 않고 위임하는 이유는 세 가지컨텍스트 분리 — 파일 수십 개를 읽는 작업을 위임하면 그 내용이 메인 대화를 채우지 않고, 결과 요약만 돌아옵니다병렬성 — 독립적인 작업 여러 개를 동시에 돌릴 수 있음권한 최소화 — 에이전트마다 쓸 수 있는 도구를 제한 가능. 리뷰어에게는 읽기 도구만 주는 식작성자와 검증자를 분리할 수 있다는 것이 실무에서 가장 큰 가치입니다 — 코드를 쓴 컨텍스트가 그 코드를 검증하면 같은 맹점을 공유하게 됩니다정의 파일 해부서브에이전트는 마크다운 파일 하나로 정의합니다. 프로젝트용은 .claude/agents/, 개인 전역용은 ~/.c.. 2026. 8. 16. 헤드리스 모드로 CI/CD에 Claude Code 넣기 헤드리스 모드란Claude Code는 대화형 터미널 도구지만, -p(--print) 플래그를 붙이면 비대화형으로 한 번 실행하고 종료합니다 (공식 문서)성공 시 exit code 0, 실패 시 non-zero — 스크립트에서 분기 가능stdin으로 파이프 입력을 받고 stdout으로 결과를 내보내므로, 일반 CLI 도구처럼 파이프라인에 끼워 넣을 수 있습니다# 빌드 로그를 파이프로 넣고 원인 분석을 파일로 받기cat build-error.txt | claude -p '이 빌드 에러의 근본 원인을 간결하게 설명해줘' > output.txtCI에서는 --bare를 함께 쓰는 것을 권장합니다 — 훅·플러그인·MCP 서버·CLAUDE.md 자동 로딩을 건너뛰어 어느 러너에서 돌려도 같은 결과가 나옵니다 (시작 .. 2026. 8. 16. CLAUDE.md 설계 - 팀 컨텍스트를 코드처럼 관리하기 CLAUDE.md가 해결하는 것Claude Code는 세션마다 컨텍스트가 초기화됩니다 — 어제 설명한 빌드 명령, 코딩 컨벤션, 아키텍처를 오늘 또 설명해야 하는 구조CLAUDE.md는 세션 시작 시 자동으로 로드되는 지속 지침 파일입니다 (공식 문서)넣어야 할 것의 기준이 명확합니다Claude가 같은 실수를 두 번째 했을 때지난 세션에 타이핑했던 정정을 이번 세션에 또 타이핑하고 있을 때새 팀원이 생산성을 내는 데 필요한 그 설명메모리 계층과 로드 순서CLAUDE.md는 위치에 따라 스코프가 다르고, 넓은 스코프부터 순서대로 로드됩니다스코프위치용도관리 정책/Library/Application Support/ClaudeCode/CLAUDE.md (macOS) 등조직 전체 강제 — 개인 설정으로 제외 불가.. 2026. 8. 16. Claude Code 훅(Hooks)으로 가드레일 만들기 - 위험 명령과 시크릿 차단 프롬프트 지시만으로는 부족하다"rm -rf 쓰지 마", "시크릿은 커밋하지 마" 같은 규칙을 CLAUDE.md에 적어두는 것만으로는 안심할 수 없습니다프롬프트 지시는 모델이 따르기를 기대하는 것이고, 긴 세션에서 컨텍스트가 밀리면 잊힐 수 있습니다훅(Hooks)은 다릅니다 — 도구 실행 전후에 끼어드는 코드 레벨 강제 장치라서, 모델이 뭐라고 판단하든 조건에 걸리면 무조건 차단됩니다 (공식 문서)실제로 AWS 액세스 키·Bearer 토큰 패턴이 파일에 쓰이기 전에 차단하는 훅을 팀에서 운영해봤는데, "규칙을 지켜달라"와 "지킬 수밖에 없다"의 차이는 큽니다PreToolUse 훅의 개입 지점 - 통과와 차단 두 갈래훅 이벤트 한눈에이벤트가 많지만 가드레일 용도로는 이 정도만 알면 됩니다이벤트발화 시점가드레.. 2026. 8. 16. 이전 1 2 3 4 ··· 13 다음