EKS cluster에서 ingress를 생성하면, LB 컨트롤러에 의해 ELB가 자동으로 배포됩니다.
이 때, ELB를 external로 만들 지, internal로 만들 지 모드를 선택해야 하는데, external로 만들면 ELB에 public sunet이 매핑되고
internal로 만들면 private subnet이 매핑됩니다.
external로 배포한 inress를 internal로 변경한 경우 어떤 결과가 나오는지 살펴 보겠습니다.
ingress를 internal로 만들기 위해선 ALB의 scheme을 'internet-facing'으로 작성해야 합니다.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ing-nginx
namespace: hs
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
그 결과 ALB가 Public 서브넷에 매핑되고 'internet-facing' Scheme으로 생성됩니다.

ingress를 internal로 만들기 위해선 ALB의 scheme을 'internal'로 작성해야 합니다.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ing-nginx
namespace: hs
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internal
annotation 내용이 변경되어 수정된 yaml을 kubectl apply 명령으로 배포하면,
ingress 리소스는 그대로지만, ingress의 address가 다른 값으로 다시 할당됩니다.

ELB 콘솔에서도 기존 ALB가 삭제되고, internal용 신규 ALB가 생성됐음을 확인할 수 있습니다.

따라서 기존 ALB를 참조하는 구성이 있다면, 신규 ALB 정보로 치환해 주는 작업이 별도로 필요합니다.