Amazon EKS 클러스터에 대한 서브넷을 구성하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 10월 4일

Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터에 사용할 서브넷을 구성하려고 합니다.

간략한 설명

다음 구성 옵션 중 하나를 선택합니다.

  • 작업자 노드에서 아웃바운드 및 인바운드 인터넷 액세스를 사용하려면 퍼블릭 서브넷 구성 섹션의 단계를 완료합니다.
  • 작업자 노드에서 아웃바운드 인터넷 액세스만 사용하려면 아웃바운드 인터넷 액세스로 프라이빗 서브넷 구성 섹션의 단계를 완료합니다.
  • 작업자 노드에서 아웃바운드 및 인바운드 인터넷 액세스를 모두 제한하려면 인터넷에 액세스할 수 없는 프라이빗 서브넷 구성 섹션의 단계를 완료합니다. 예를 들어 프라이빗 Amazon EKS 클러스터에 대해 이 해결 방법을 선택합니다.

해결 방법

퍼블릭 서브넷 구성

Amazon EKS 클러스터용 서브넷을 생성할 때는 다음 사항을 고려하세요.

1.    인터넷 게이트웨이를 통해 트래픽을 0.0.0.0/0 대상으로 라우팅하도록 구성된 라우팅 테이블에 서브넷을 연결합니다. 예: igw-xxxxxxxx

2.    서브넷에 대해 [퍼블릭 IPV4 주소 자동 할당(auto-assign public IPV4 address)] 속성을 사용하도록 설정합니다.

3.    서브넷 태깅을 사용하여 로드 밸런서의 배포 제한 섹션의 단계를 완료합니다.

아웃바운드 인터넷 액세스로 프라이빗 서브넷 구성

Amazon EKS 클러스터용 서브넷을 생성할 때는 다음 사항을 고려하세요.

1.    트래픽을 NAT 게이트웨이로 라우팅하여 인터넷에 대한 아웃바운드 연결만 허용하도록 구성된 라우팅 테이블에 서브넷을 연결합니다.

2.    서브넷에 대해 [퍼블릭 IPV4 주소 자동 할당(auto-assign public IPV4 address)]이 사용되지 않는지 확인합니다.

3.    서브넷 태깅을 사용하여 로드 밸런서의 배포 제한 섹션의 단계를 완료합니다.

인터넷에 액세스할 수 없는 프라이빗 서브넷 구성

1.    작업자 노드에 대한 인터넷 액세스를 차단하려면 서브넷이 라우팅 테이블에 연결되어 있지 않은지 확인합니다. 즉, 트래픽을 NAT 게이트웨이 또는 인터넷 게이트웨이로 라우팅하도록 구성된 라우팅 테이블을 의미합니다.

2.    [퍼블릭 IPV4 주소 자동 할당(auto-assign public IPV4 address)]이 사용되지 않는지 확인합니다.

3.    VPC에 대한 Amazon Virtual Private Cloud(Amazon VPC) 엔드포인트를 생성합니다. 작업자 노드에서 Amazon EKS 클러스터에 조인하려면 다음 VPC 엔드포인트가 필요합니다.

com.amazonaws.your_region.ec2
com.amazonaws.your_region.ecr.api
com.amazonaws.your_region.ecr.dkr
com.amazonaws.your_region.s3

참고: your_region을 해당하는 AWS 리전으로 바꿉니다.

4.    (필요한 경우) 애플리케이션 요구 사항에 따라 추가 VPC 엔드포인트를 생성합니다. 다음 예제를 참조하세요.

Amazon CloudWatch Logs의 경우:

com.amazonaws.your_region.logs

Kubernetes Cluster Autoscaler 또는 서비스 계정에 대한 AWS Identity and Access Management(IAM) 역할의 경우:

com.amazonaws.your_region.sts

Application Load Balancer의 경우:

com.amazonaws.your_region.elasticloadbalancing

Kubernetes Cluster Autoscaler의 경우:

com.amazonaws.your_region.autoscaling

AWS App Mesh의 경우:

com.amazonaws.your_region.appmesh-envoy-management

AWS X-Ray의 경우:

com.amazonaws.your_region.xray

참고: your_region을 해당하는 AWS 리전으로 바꿉니다.

5.    서브넷 태깅을 사용하여 로드 밸런서의 배포 제한 섹션의 단계를 완료합니다.

서브넷 태깅을 사용하여 로드 밸런서의 배포 제한

서브넷 태깅은 AWS Load Balancer 컨트롤러에 외부 또는 내부 로드 밸런서를 생성하는 데 사용할 수 있는 서브넷을 알려줍니다.

퍼블릭 서브넷의 경우:

VPC의 특정 퍼블릭 서브넷에서 AWS Load Balancer 컨트롤러를 사용하여 외부 로드 밸런서의 배포를 제한하려면 해당 서브넷을 다음과 같이 태깅합니다.

Key - kubernetes.io/role/elb
Value - 1

프라이빗 서브넷의 경우:

특정 프라이빗 서브넷에서 AWS Load Balancer 컨트롤러를 사용하여 내부 로드 밸런서의 배포를 제한하려면 해당 서브넷을 다음과 같이 태깅합니다.

Key - kubernetes.io/role/internal-elb
Value - 1

참고: 서브넷에서 실행할 수 있는 포드의 수는 서브넷에서 사용 가능한 IP 주소의 수에 따라 달라집니다. 클러스터 생성 중에 지정하는 서브넷에 Amazon EKS에 의해 생성된 네트워크 인터페이스에 사용할 수 있는 IP 주소가 충분한지 확인합니다. Amazon EKS에 의해 생성된 네트워크 인터페이스 전용의 소규모(즉, /28) 서브넷을 생성하는 것이 모범 사례입니다. 그런 다음 클러스터를 생성할 때 이러한 서브넷만 지정해야 합니다. 클러스터 생성 중에 지정한 서브넷과 다른 별개의 서브넷에서 노드 및 로드 밸런서와 같은 다른 리소스를 시작합니다.