AEWS 4기 1주차(3) - EKS Access Endpoint 변경
2026. 3. 14. 23:10ㆍAWS 4기
본 글은 공식 문서 및 서종호(가시다)님의 AWS EKS 워크샵 내용을 기반으로 참고하여 학습 목적으로 작성하였습니다.
주관적인 해석이 포함되어 있어 사실과 다르거나 오류가 있을 수 있으니 참고용으로만 읽어주시기 바랍니다.
주관적인 해석이 포함되어 있어 사실과 다르거나 오류가 있을 수 있으니 참고용으로만 읽어주시기 바랍니다.
EKS Endpoint 액세스 포인트 변경(Public → Private)
현재 적용되어 있는 EKS 클러스터 서버에 접속은 public 환경에서 접근은 가능하지만, private 환경에서는 접근이 불가능하다. 다만, public 환경으로 운영하기에는 보안상으로 좋지 않아 private 환경으로 운영하고 있는 경우가 많을 것이라고 판단되어 Private으로 액세스 포인트를 변경하는 방법을 다뤄보려고 합니다.
현재, 설정은 아래와 같습니다.

워커 노드 → EKS API(server) 통신확인
# 통신 확인(노드 > EKS API)
for i in $NODE1 $NODE2; do echo ">> node $i <<"; ssh ec2-user@$i sudo ss -tnp | grep -v ssh; echo; done


현재 Peer Address는 EKS API 서버의 공인 IP 3.37.148.40으로 되어있으며, 공인 IP로 통신이 되고 있습니다.

EKS API → 노드 kubelet(server) 요청 시 통신 확인
# 파드 1개 bash 접속 해두기!
kubectl exec -it -n kube-system deploy/kube-ops-view -- bash
# 확인 : exec 실행으로 추가된 연결 정보의 Peer Address는 어딘인가요? + AWS 네트워크 인터페이스 ENI에서 해당 IP 정보 확인
for i in $NODE1 $NODE2; do echo ">> node $i <<"; ssh ec2-user@$i sudo ss -tnp | grep -v ssh; echo; done


AWS 콘솔 및 통신 상태를 확인해보면 192.168.1.7 IP를 사용 중인 IP가 워커 노드(192.168.2.116)과 통신하는 것을 확인할 수 있습니다. 다만, AWS 콘솔에서는 해당 IP를 사용 중인 것이 확인되지 않지만, 보안 그룹이 적용된 항목을 확인 시 EKS Cluster입니다. EKS API 서버에서 워커 노드로 통신은 사설 IP로 통신된다는 것입니다.
[ 퍼블릭 엔드포인트에서 통신 방향 ]
워커 노드 > EKS API 서버 - 공인 통신
EKS API 서버 > 워커 노드 - 사설 통신
[ 퍼블릭 엔드포인트에서 통신 방향 ]
워커 노드 > EKS API 서버 - 공인 통신
EKS API 서버 > 워커 노드 - 사설 통신
Terraform 코드를 수정하여 Public Endpoint Access를 Private Endpoint Access로 변경하여 통신 방법에 대해서 더 알아보았습니다.
Terraform 코드 수정
endpoint_public_access = true
endpoint_private_access = true
endpoint_public_access_cidrs = [
var.ssh_access_cidr
]

terraform plan 명령어를 확인 시 private_endpoint_access가 활성화 되고 public_endpoint_access에 대해서는 any 설정이 제외되고 121.x.x.x/32 IP에 대해서만 허용이 되는걸 확인할 수 있습니다.


통신 상태 확인
# terraform apply
terraform apply -auto-approve
# 상태 모니터링
while true; do ssh ec2-user@$NODE1 dig +short $APIDNS ; date ; echo "-----" ; sleep 1 ; done
watch -d kubectl get node


다만, 위에서는 private ip로 통신을 하고 있지만, 워커 노드에서 peer address를 확인 시 여전히 공인 ip 상태로 남아있다.

원인 : 워커 노드에서는 kubelet, kube-proxy, aws-node 등은 API Server DNS를 한 번 조회해서 socket 연결을 맺고 유지되어
이때 Public Endpoint IP가 DNS를 통해 조회되어 내부 캐시로 사용될 확률이 높습니다. 그렇기에 kubelet, aws-node, kube-proxy를 재기동하여 소켓 연결이 변경되는지 확인해 보았습니다.
kubectl rollout restart ds/kube-proxy -n kube-system
kube-proxy에 rollout을 진행한 이후 peer address가 eks api에 private ip로 변경되었다.

ssh ec2-user@$NODE1
sudo su -
systemctl restart kubelet

# aws-node 재시작
kubectl rollout restart ds/aws-node -n kube-system

'AWS 4기' 카테고리의 다른 글
| AEWS 4기 2주차(2) - K8s 서비스와 Loadbalancer Controller (0) | 2026.03.23 |
|---|---|
| AEWS 4기 2주차(1) - AWS VPC CNI(feat. K8s Networking) (0) | 2026.03.20 |
| AEWS 4기 1주차(4) - Fully Private Cluster (0) | 2026.03.15 |
| AEWS 4기 1주차(2) - 워커 노드 설정 확인(ssh 접속, time sync, containerd, kubelet, cni) (0) | 2026.03.14 |
| AEWS 4기 1주차(1) - EKS 생성 및 동작 방식 (1) | 2026.03.14 |