pile·
인프라 / DevOps·코인원코인원·

AWS EKS에서 ALB Ingress Controller 활용기

코인원 플랫폼 엔지니어가 EKS 한국 리전 오픈 후 핵심 서비스를 옮기며 Ingress Controller로 NGINX 대신 AWS ALB Ingress Controller를 고른 이유와, 구성 과정에서 만난 이슈·활용 팁을 정리한 글이다. 선택 기준은 실서비스에서 문제없이 도는지, 기존 LB 구성을 그대로 쓸 수 있는지, 구성 가이드와 예제 자료가 충분한지 세 가지였다. ALB의 호스트·경로 기반 라우팅이 결정적이었지만 당시에는 정식 버전이 된 지 얼마 안 돼 프로덕션 안정성을 장담할 수 없었다.

핵심 포인트
  • Ingress Controller는 API 서버의 ingress 이벤트를 감시하다가 ALB, Target Group, Listener, Rule을 차례로 AWS에 만든다
  • traffic mode는 NodePort로 받는 instance mode와 컨테이너 포트로 직접 꽂는 IP mode 두 가지이고 annotation으로 명시 지정한다
  • 서비스별 ingress 대신 internal·external 두 개만 만들고 호스트 라우팅을 붙였으며 target-type은 instance로 뒀다
  • namespace 제약이 있어 ALB로 접근해야 하는 서비스는 namespace마다 ingress를 만들어야 한다
  • ingress가 늘면 worker node에 임의 security group이 계속 생겨 EC2 인스턴스의 security group 한도에 걸린다
  • 운영 중 Controller에서 에러가 나면서 pod 메모리 사용량이 계속 증가하는 문제를 겪었다
상세 정리
  • 배포 준비: IAM Role에 iam-policy.json을 적용해 EKS worker node에 붙이고 kubernetes RBAC role을 apply한다
  • 설치: helm chart로 kube-system 네임스페이스에 설치하며 awsRegion, awsVpcID, clusterName을 넘긴다
  • WAF 미사용 시: extraArgs로 feature-gates에 waf=false 옵션을 추가해야 한다
  • instance mode 동작: 외부 트래픽이 ALB를 거쳐 서비스용으로 열린 NodePort에 도달하므로 애플리케이션 서비스 타입을 NodePort로 지정해야 한다
  • IP mode 조건: 클러스터 네트워킹 플러그인이 ENI의 보조 IP 주소를 쓸 수 있어야 한다
  • health check 함정: ALB와 target group은 만들어져도 서비스에 healthcheck-path annotation이 없으면 worker node의 target port가 unhealthy로 남는다
  • security group 대책: 공통 security group을 만들어 ingress annotation에 지정해 불필요한 생성을 막는다
  • TLS 지정: ACM을 쓴다면 listen-ports와 certificate-arn, ssl-policy annotation으로 인증서를 붙인다
  • 리다이렉션: actions 계열 annotation에 RedirectConfig를 JSON으로 넣고 host rule의 backend servicePort를 use-annotation으로 둔다
  • https 강제: 같은 방식으로 ssl-redirect action을 만들어 HTTP_301로 443 포트에 보낸다
  • 선택 근거: AWS 환경에서 security group·health check·인증서 지정 같은 옵션과 로드밸런싱 알고리즘 지정, EKS Fargate mode IP 지원 같은 신규 기능을 함께 얻는다고 본다
  • 유보 사항: third party project에서 정식 버전으로 넘어온 지 얼마 안 된 시점이라 안정성 검증은 직접 감당해야 했다
왜 읽나EKS에서 NGINX Ingress 대신 ALB를 고를 때 실제로 걸리는 지점들을 annotation 단위로 확인할 수 있다.
코인원
코인원 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 인프라 / DevOps·AWS KoreaAWS Korea Tech·

    엔터프라이즈 보안 요구사항을 충족하는 프라이빗 Amazon Bedrock AgentCore 구축하기

    Amazon Bedrock AgentCore의 VPC egress 기능(2026년 4월 추가)을 활용해 온프레미스 LLM·사내 IdP·사내 MCP 서버에 인터넷 노출 없이 연결하는 방법을 다룬다. 규제 산업 엔터프라이즈가 기존 사내 자산을 그대로 유지하면서 Bedrock AgentCore를 안전하게 구축하기 위한 구성 가이드다.

    요약 이어보기
    #mcp#amazon-bedrock#vpc+2
  2. 인프라 / DevOps·gitlab-engGitLab Blog·

    OpenTofu와 Argo CD로 구성하는 GitLab 기반 AWS 제어 플레인

    GitLab을 단일 제어 플레인으로 삼아 OpenTofu로 AWS 인프라를 프로비저닝하고, Argo CD로 GitOps 기반 애플리케이션 배포까지 자동화하는 엔드투엔드 튜토리얼이다. VPC·EKS 클러스터 구성부터 Helm 기반 툴 설치, 샘플 앱 배포까지 모든 과정이 GitLab CI/CD 파이프라인으로 연결된다.

    요약 이어보기
    #kubernetes#aws-eks#gitops+2
  3. 인프라 / DevOps·AWS KoreaAWS Korea Tech·

    Amazon Bedrock 기반 사내 LLM, 키 발급부터 비용 차단까지: F&F의 LiteLLM 게이트웨이 운영 사례

    패션 기업 F&F가 Amazon Bedrock과 LiteLLM 프록시를 결합해 구축한 사내 LLM 플랫폼 운영 사례다. API 키 셀프서비스 발급, 모델별 접근 승인 워크플로, 사용자·프로젝트별 예산 자동 차단까지 전 과정을 직접 구현한 아키텍처 결정과 운영 교훈을 공유한다.

    요약 이어보기
    #kubernetes#amazon-bedrock#litellm+2