전체 글123 ECS Capacity Provider - Task와 EC2를 함께 오토스케일하기 ECS를 EC2 유형으로 운영하면 오토스케일링이 두 겹입니다. Task가 늘어도 인스턴스가 부족하면 Task는 뜨지 못하고, 반대로 Task가 줄어도 인스턴스가 그대로면 불필요한 비용이 나갑니다. 이 둘 사이를 조절해주는 것이 Capacity Provider(용량 공급자)입니다. 구성부터 부하 테스트 검증까지 직접 해보며 정리한 내용입니다.Capacity Provider가 클러스터(EC2) 오토스케일링과 서비스(Task) 오토스케일링 사이를 조절한다두 겹의 오토스케일링클러스터 오토스케일링 — 서비스가 실행될 인프라(EC2)의 스케일링서비스 오토스케일링 — 정의된 Task 컨테이너 수의 스케일링Capacity Provider는 이 사이의 연결 고리입니다. 서비스 오토스케일러가 Task 수를 조절하면, 연결.. 2026. 9. 17. 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. VM 네트워크 어댑터를 E1000에서 VMXNET3로 바꾸기 가상 머신을 만들 때 아무 생각 없이 기본값으로 뒀다가 나중에 E1000으로 만들어진 걸 발견하는 일이 있습니다. 성능을 제대로 내려면 VMXNET3로 바꿔야 하는데, 어댑터 유형은 드롭다운 하나로 바꿀 수 있는 항목이 아닙니다. 기존 어댑터를 제거하고 새로 추가해야 하고, 이 과정에서 순서를 틀리면 게스트 OS 안에 유령 어댑터가 남아 같은 IP를 다시 넣을 수 없게 됩니다.이 글은 vSphere Client(C# 클라이언트) + Windows 게스트 기준으로 작성했습니다. 화면 구성은 버전마다 다르지만 작업 순서와 주의점은 지금도 그대로 유효합니다.E1000과 VMXNET3는 무엇이 다른가E1000은 인텔 82545EM 기가비트 NIC를 에뮬레이션한 어댑터입니다. 실제 하드웨어를 흉내 내는 방식이라 .. 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. 이전 1 2 3 4 ··· 13 다음