AWS 서비스를 활용한 Kubernetes 클러스터 구축
두줄요약
AWS 환경에서 gRPC 트래픽, Pod별 IAM, 로그·모니터링을 고려한 Kubernetes 구성 방식을 소개했습니다. NLB·NGINX와 Prometheus, Cluster Autoscaler의 선택 이유와 운영 주의점을 정리했습니다.
구조와 흐름
- NLB → NodePort → NGINX Ingress Controller → 내부 서비스 Pod의 외부 HTTP·gRPC 트래픽 경로
- fluentd DaemonSet의 컨테이너 로그 수집·CloudWatch Logs 전송, Prometheus·Grafana·Alertmanager 기반 지표 시각화·알림
- HPA의 Pod 확장과 Cluster Autoscaler의 EC2 오토스케일링 그룹 Desired Capacity 조정 연계
선택 이유
- gRPC 지원과 Ingress별 ALB 생성 비용을 고려한 NGINX Ingress Controller 선택
- 대량 연결 처리 시 웜업이 필요한 Classic ELB 대신 NLB 선택
- Pod별 IAM 역할을 위한 kube2iam, 컨테이너 단위 모니터링 비용을 고려한 Prometheus 선택
성능/운영 포인트
- NodePort 서비스와 오토스케일링 그룹 연결을 통한 NLB 직접 구성
- Spring Boot Actuator·Micrometer와 ServiceMonitor 기반 애플리케이션 지표 수집
- Cluster Autoscaler의 EC2 API 권한, 오토스케일링 그룹 자동 발견 태그 설정
주의할 점
- NLB TLS termination의 ALPN 설정 제약으로 NGINX 수준 TLS 암호화 처리
- 다중 AZ 오토스케일링 그룹의 예기치 않은 인스턴스 종료 방지를 위한 AZ별 그룹 분리





