Amazon EC2 인스턴스 유형 선택 - Amazon EKS

Amazon EC2 인스턴스 유형 선택

Amazon EC2에서는 워커 노드에 대한 다양한 인스턴스 유형을 제공합니다. 인스턴스 유형마다 서로 다른 컴퓨팅, 메모리, 스토리지 및 네트워크 기능을 제공합니다. 또한 각 인스턴스는 이러한 기능에 따라 한 인스턴스 패밀리로 그룹화됩니다. 목록은 Linux 인스턴스용 Amazon EC2 사용 설명서사용 가능한 인스턴스 유형Windows 인스턴스용 Amazon EC2 사용 설명서사용 가능한 인스턴스 유형을 참조하세요. Amazon EKS에서는 Amazon EC2 AMI의 여러 변형을 출시하여 지원을 사용 설정합니다. 선택한 인스턴스 유형이 Amazon EKS와 호환되는지 확인하려면 다음 기준을 고려하세요.

  • 모든 Amazon EKS AMI에서는 현재 g5gmac 패밀리를 지원하지 않습니다.

  • Arm 및 가속화되지 않은 Amazon EKS AMI에서는 g3, g4, infp 패밀리를 지원하지 않습니다.

  • 가속화된 Amazon EKS AMI에서는 a, c, hpc, mt 패밀리를 지원하지 않습니다.

Amazon EKS에서 지원하는 인스턴스 유형 중에서 선택하는 경우 각 유형의 다음 기능을 고려하세요.

  • 노드 그룹의 인스턴스 수(Number of instances in a node group) - 특히 Daemonsets가 많은 경우 일반적으로 더 적고 더 큰 인스턴스가 더 좋습니다. 각 인스턴스에는 API 서버에 대한 API 호출이 필요하므로 인스턴스가 많을수록 API 서버에 더 많은 부하가 발생합니다.

  • 운영 체제(Operating system) - Linux, WindowsBottlerocket에 대해 지원되는 인스턴스 유형을 검토합니다. Windows 인스턴스를 생성하기 전에 Amazon EKS 클러스터에 대해 Windows 지원 사용 설정를 검토하세요.

  • 하드웨어 아키텍처(Hardware architecture) - x86 또는 Arm이 필요하신가요? Arm에 Linux만 배포할 수 있습니다. Arm 인스턴스를 배포하기 전에 Amazon EKS 최적화 Arm Amazon Linux AMI를 검토하세요. Nitro System(Linux 또는 Windows)에 구축된 인스턴스나 가속화된 기능이 있는 인스턴스가 필요하신가요? 가속화된 기능이 필요한 경우 Amazon EKS에서 Linux만 사용할 수 있습니다.

  • 최대 pods 수 - 각 pod에 고유한 IP 주소가 할당되므로 인스턴스 유형에서 지원하는 IP 주소 수는 인스턴스에서 실행할 수 있는 pods 수를 결정하는 요소입니다. 인스턴스 유형이 지원하는 pods의 수를 수동으로 확인하려면 각 Amazon EC2 인스턴스 유형의 Amazon EKS 권장 최대 pods 수 섹션을 참조하세요.

    참고

    Amazon EKS에 최적화된 v20220406 이상의 Amazon Linux 2 AMI를 사용하는 경우 최신 AMI로 업그레이드하지 않고도 새 인스턴스 유형을 사용할 수 있습니다. 이러한 AMI의 경우 AMI는 eni-max-pods.txt 파일에 나열되지 않으면 필요한 max-pods 값을 자동으로 계산합니다. 현재 미리 보기 중인 인스턴스 유형은 기본적으로 Amazon EKS에서 지원되지 않을 수 있습니다. 이러한 유형에 대한 max-pods의 값은 여전히 AMI의 eni-max-pods.txt에 추가되어야 합니다.

    AWS Nitro 시스템(Nitro System) 인스턴스 유형은 Nitro 시스템 이외의 인스턴스 유형보다 훨씬 많은 IP 주소를 선택적으로 지원합니다. 그러나 인스턴스에 할당된 일부 IP 주소만 pods에 사용할 수 있습니다. 훨씬 더 많은 수의 IP 주소를 인스턴스에 할당하려면 클러스터에 버전 1.9.0 이상의 Amazon VPC CNI 추가 기능이 설치되어 있고 적절하게 구성되어 있어야 합니다. 자세한 내용은 Amazon EC2 노드에 사용 가능한 IP 주소의 양 늘리기 섹션을 참조하세요. 인스턴스에 가장 많은 수의 IP 주소를 할당하려면 1.21 이상의 클러스터에 버전 1.10.1 이상의 Amazon VPC CNI 추가 기능이 설치되어 있어야 하고 IPv6 패밀리를 사용하여 클러스터를 배포해야 합니다.

  • IP 패밀리 - 클러스터가 pods 및 서비스에 프라이빗 IPv4 주소를 할당하도록 허용하는 클러스터에 대한 IPv4 패밀리를 사용하는 경우 지원되는 모든 인스턴스 유형을 사용할 수 있습니다. 하지만 클러스터에 대한 IPv6 패밀리를 사용하려는 경우 AWS Nitro 시스템(Nitro System) 인스턴스 유형 또는 베어 메탈 인스턴스 유형을 사용해야 합니다. Windows 인스턴스에는 IPv4만 지원됩니다. 클러스터는 Amazon VPC CNI 추가 기능 버전 1.10.1 이상을 실행하는 새 1.21 이상 클러스터여야 합니다. IPv6 사용에 관한 자세한 내용은 자습서: pods 및 services에 IPv6 주소 할당 섹션을 참조하세요.

  • 실행 중인 Amazon VPC CNI 추가 기능 버전(Version of the Amazon VPC CNI add-on that you're running) - 최신 버전의 Kubernetes용 Amazon VPC CNI 플러그 인이러한 인스턴스 유형을 지원합니다. 지원되는 최신 인스턴스 유형을 활용하려면 Amazon VPC CNI 추가 기능 버전을 업데이트해야 할 수 있습니다. 자세한 내용은 Amazon VPC CNI plugin for Kubernetes 자체 관리형 추가 기능 업데이트 섹션을 참조하세요. 최신 버전은 Amazon EKS에서 사용할 최신 기능을 지원합니다. 이전 버전에서는 일부 기능을 지원하지 않습니다. GitHub의 Changelog에 있는 다양한 버전에서 지원하는 기능을 볼 수 있습니다.

  • 노드를 생성하는 AWS 리전(that you're creating your nodes in) - 모든 AWS 리전에서 일부 인스턴스 유형은 사용할 수 없습니다.

  • pods에 대한 보안 그룹 사용 여부 – pods에 대한 보안 그룹을 사용하는 경우 특정 인스턴스 유형만 지원됩니다. 자세한 내용은 자습서: pods의 보안 그룹 섹션을 참조하세요.

각 Amazon EC2 인스턴스 유형의 Amazon EKS 권장 최대 pods 수

각 pod에 고유한 IP 주소가 할당되므로 인스턴스 유형에서 지원하는 IP 주소 수는 인스턴스에서 실행할 수 있는 pods 수를 결정하는 요소입니다. Amazon EKS는 각 인스턴스 유형에서 실행할 Amazon EKS 권장 최대 pods 수를 결정하기 위해 다운로드하여 실행할 수 있는 스크립트를 제공합니다. 스크립트는 각 인스턴스의 하드웨어 속성 및 구성 옵션을 사용하여 최대 pods 수를 결정합니다. 이 단계에서 반환된 수를 사용하여 인스턴스의 서브넷과 다른 서브넷의 pods에 IP 주소 할당인스턴스에 대한 IP 주소 수 크게 증가와 같은 기능을 활성화할 수 있습니다. 여러 인스턴스 유형을 통해 관리형 노드 그룹을 사용하는 경우 모든 인스턴스 유형에 작동하는 값을 사용합니다.

  1. 각 인스턴스 유형에 대한 최대 pods 수를 계산하는 데 사용할 수 있는 스크립트를 다운로드합니다.

    curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/files/max-pods-calculator.sh
  2. 컴퓨터에서 스크립트를 실행 파일로 표시합니다.

    chmod +x max-pods-calculator.sh
  3. 스크립트를 실행하여 m5.large를 배포하려는 인스턴스 유형으로 바꾸고 1.9.0-eksbuild.1을 Amazon VPC CNI 추가 기능 버전으로 바꿉니다. 추가 기능 버전을 확인하려면 Amazon VPC CNI plugin for Kubernetes 자체 관리형 추가 기능 업데이트의 업데이트 절차를 참조하세요.

    ./max-pods-calculator.sh --instance-type m5.large --cni-version 1.9.0-eksbuild.1

    출력 예는 다음과 같습니다.

    29

    스크립트에 다음 옵션을 추가하여 선택적 기능을 사용할 때 지원되는 최대 pods 수를 확인할 수 있습니다.

    • --cni-custom-networking-enabled - 인스턴스의 서브넷과 다른 서브넷의 IP 주소를 할당하려는 경우 이 옵션을 사용합니다. 자세한 내용은 자습서: 사용자 지정 네트워킹 섹션을 참조하세요. 동일한 예제 값을 사용하여 이전 스크립트에 이 옵션을 추가하면 20이 표시됩니다.

    • --cni-prefix-delegation-enabled - 각 탄력적 네트워크 인터페이스에 훨씬 더 많은 IP 주소를 할당하려는 경우 이 옵션을 사용합니다. 이 기능을 사용하려면 Nitro 시스템과 Amazon VPC CNI 추가 기능 버전 1.9.0 이상에서 실행되는 Amazon Linux 인스턴스가 필요합니다. 자세한 내용은 Amazon EC2 노드에 사용 가능한 IP 주소의 양 늘리기 섹션을 참조하세요. 동일한 예제 값을 사용하여 이전 스크립트에 이 옵션을 추가하면 110이 표시됩니다.

--help 옵션을 사용하여 스크립트를 실행하면 사용 가능한 모든 옵션을 볼 수 있습니다.