AWS Outposts의 Amazon EKS 클러스터용 VPC 및 서브넷 생성하기
AWS Outposts의 Amazon EKS 클러스터용 VPC 및 서브넷 생성하기
로컬 클러스터를 생성할 때 Outposts에서 실행되는 VPC와 프라이빗 서브넷을 하나 이상 지정해요. 이 주제에서는 로컬 클러스터의 VPC 및 서브넷 요구 사항과 고려 사항을 개략적으로 설명합니다.
출처: 문서
본문
VPC 요구 사항 및 고려 사항
로컬 클러스터를 생성할 때 지정하는 VPC는 다음 요구 사항과 고려 사항을 충족해야 합니다.
- 로컬 클러스터, 모든 노드, 그리고 생성하려는 기타 Kubernetes 리소스에 충분한 IP 주소가 VPC에 있는지 확인하세요. 사용하려는 VPC에 IP 주소가 충분하지 않다면 사용 가능한 IP 주소 수를 늘립니다. VPC에 추가 Classless Inter-Domain Routing(CIDR) 블록을 연결해 이 작업을 할 수 있어요. 프라이빗(RFC 1918) 및 퍼블릭(비 RFC 1918) CIDR 블록을 클러스터 생성 전이나 후에 VPC에 연결할 수 있습니다. VPC에 연결한 CIDR 블록이 인식되는 데 클러스터에서 최대 5시간이 걸릴 수 있어요.
- VPC에는 할당된 IP 접두사 또는 IPv6 CIDR 블록이 있을 수 없습니다. 이러한 제약 때문에 접두사로 Amazon EKS 노드에 더 많은 IP 주소 할당과 클러스터, Pod, 서비스의 IPv6 주소 알아보기에 포함된 내용은 VPC에 적용되지 않습니다.
- VPC에는 DNS 호스트 이름과 DNS 확인이 활성화되어 있어야 해요. 이러한 기능이 없으면 로컬 클러스터 생성이 실패하며 기능을 활성화한 후 클러스터를 다시 생성해야 합니다. 자세한 내용은 Amazon VPC 사용 설명서의 VPC용 DNS 속성을 참고하세요.
- 로컬 네트워크에서 로컬 클러스터에 액세스하려면 VPC가 Outpost의 로컬 게이트웨이 라우팅 테이블과 연결되어야 합니다. 자세한 내용은 AWS Outposts 사용 설명서의 VPC 연결을 참고하세요.
서브넷 요구 사항 및 고려 사항
클러스터를 생성할 때 프라이빗 서브넷을 하나 이상 지정합니다. 여러 서브넷을 지정하면 Kubernetes 제어 플레인 인스턴스가 서브넷 전체에 고르게 분산됩니다. 서브넷을 둘 이상 지정하면 서브넷이 같은 Outpost에 있어야 해요. 또한 서브넷은 서로 통신하기 위한 적절한 경로와 보안 그룹 권한이 있어야 합니다. 로컬 클러스터를 생성할 때 지정하는 서브넷은 다음 요구 사항을 충족해야 해요.
- 서브넷이 모두 동일한 논리적 Outpost에 있습니다.
- 서브넷 전체에 Kubernetes 제어 플레인 인스턴스용 사용 가능한 IP 주소가 최소 3개 있습니다. 서브넷을 3개 지정했다면 각 서브넷에 사용 가능한 IP 주소가 하나 이상 있어야 해요. 서브넷을 2개 지정했다면 각 서브넷에 사용 가능한 IP 주소가 2개 이상 있어야 합니다. 서브넷을 1개 지정했다면 서브넷에 사용 가능한 IP 주소가 3개 이상 있어야 해요.
- 서브넷은 로컬 네트워크를 통해 Kubernetes API 서버에 액세스할 수 있도록 Outpost 랙의 로컬 게이트웨이로 가는 경로가 있어야 합니다. 서브넷에 Outpost 랙의 로컬 게이트웨이로 가는 경로가 없다면 VPC 내에서 Kubernetes API 서버와 통신해야 해요.
- 서브넷은 IP 주소 기반 명명을 사용해야 합니다. Amazon EC2 리소스 기반 명명은 Amazon EKS에서 지원되지 않습니다.
AWS 서비스에 대한 서브넷 액세스
Outposts의 로컬 클러스터 프라이빗 서브넷은 리전 AWS 서비스와 통신할 수 있어야 해요. 아웃바운드 인터넷 액세스용 NAT 게이트웨이를 사용하거나, 모든 트래픽을 VPC 내부에서 프라이빗으로 유지하려면 인터페이스 VPC 엔드포인트를 사용해 이를 달성할 수 있어요.
NAT 게이트웨이 사용
Outposts의 로컬 클러스터 프라이빗 서브넷은 Outpost의 상위 가용 영역에 있는 퍼블릭 서브넷의 NAT 게이트웨이로 가는 경로가 있는 연결된 라우팅 테이블이 있어야 해요. 퍼블릭 서브넷에는 인터넷 게이트웨이로 가는 경로가 있어야 합니다. NAT 게이트웨이는 아웃바운드 인터넷 액세스를 활성화하고 인터넷에서 Outpost의 인스턴스로 들어오는 원치 않는 인바운드 연결을 방지해요.
인터페이스 VPC 엔드포인트 사용
Outposts의 로컬 클러스터 프라이빗 서브넷에 아웃바운드 인터넷 연결이 없거나 모든 트래픽을 VPC 내부에서 프라이빗으로 유지하려면 클러스터를 생성하기 전에 리전 서브넷에 다음 인터페이스 VPC 엔드포인트와 게이트웨이 엔드포인트를 생성해야 해요.
| 엔드포인트 | 엔드포인트 유형 |
|---|---|
com.amazonaws.region-code.ssm |
인터페이스 |
com.amazonaws.region-code.ssmmessages |
인터페이스 |
com.amazonaws.region-code.ec2messages |
인터페이스 |
com.amazonaws.region-code.ec2 |
인터페이스 |
com.amazonaws.region-code.secretsmanager |
인터페이스 |
com.amazonaws.region-code.logs |
인터페이스 |
com.amazonaws.region-code.sts |
인터페이스 |
com.amazonaws.region-code.ecr.api |
인터페이스 |
com.amazonaws.region-code.ecr.dkr |
인터페이스 |
com.amazonaws.region-code.s3 |
게이트웨이 |
엔드포인트는 다음 요구 사항을 충족해야 합니다.
- Outpost의 상위 가용 영역에 있는 프라이빗 서브넷에 생성됩니다.
- 프라이빗 DNS 이름이 활성화되어 있어야 합니다.
- 프라이빗 아웃포스트 서브넷의 CIDR 범위에서 인바운드 HTTPS 트래픽을 허용하는 보안 그룹이 연결되어 있어야 합니다.
엔드포인트를 생성하면 요금이 부과됩니다. 자세한 내용은 AWS PrivateLink 요금을 참고하세요. Pod가 다른 AWS 서비스에 액세스해야 한다면 추가 엔드포인트를 생성해야 해요. 포괄적인 엔드포인트 목록은 AWS PrivateLink와 통합되는 AWS 서비스를 참고하세요.
VPC 생성
다음 AWS CloudFormation 템플릿 중 하나를 사용해 이전 요구 사항을 충족하는 VPC를 생성할 수 있어요.
- 템플릿 1 – 이 템플릿은 Outpost에 프라이빗 서브넷 하나와 AWS 리전에 퍼블릭 서브넷 하나가 있는 VPC를 생성합니다. 프라이빗 서브넷은 AWS 리전의 퍼블릭 서브넷에 있는 NAT 게이트웨이를 통해 인터넷으로 가는 경로가 있습니다. 이 템플릿은 이그레스 인터넷 액세스가 있는 서브넷에서 로컬 클러스터를 생성하는 데 사용할 수 있어요.
- 템플릿 2 – 이 템플릿은 Outpost에 프라이빗 서브넷 하나와 인그레스 또는 이그레스 인터넷 액세스가 없는(즉 프라이빗) 서브넷에서 로컬 클러스터를 생성하는 데 필요한 최소한의 VPC 엔드포인트 집합이 있는 VPC를 생성합니다.