20장 ALB Ingress로 외부 traffic을 연결한다
EKS Auto Mode의 최신 ALB 경로는 기존 AWS Load Balancer Controller 예제와 API가 다르다. IngressClassParams는 eks.amazonaws.com/v1, controller는 eks.amazonaws.com/alb를 사용한다. 오래된 블로그의 kubernetes.io/ingress.class: alb를 그대로 섞지 않는다.
kubectl apply -f examples/k8s/30-ingress.yaml
kubectl -n flownote get ingress flownote --watch
hostname이 생기면 확인한다.
ALB=$(kubectl -n flownote get ingress flownote
-o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
curl --fail "http://$ALB/health/ready"
ALB 생성이 늦으면 Ingress event, subnet tag, cluster role permission, target health를 순서대로 본다. EKS Auto Mode cluster를 eksctl로 새로 만들었다면 subnet discovery tag가 준비되지만, 기존 VPC를 가져오면 public/private tag를 직접 확인한다.
실무 HTTPS에서는 ACM certificate, Route 53 alias, 443 listener, HTTP→HTTPS redirect, security policy를 설계한다. certificate ARN은 environment별 설정이며 공개 repository의 범용 manifest에 production 값을 고정하지 않는다. DNS cutover 전 ALB hostname과 Host header로 smoke test하고 TTL·rollback을 준비한다.