이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
EKS 기능 및 고려 사항
이 주제에서는 액세스 제어 설계, EKS 기능과 자체 관리형 솔루션 중 선택, 다중 클러스터 배포에 대한 아키텍처 패턴, 운영 모범 사례 등 EKS 기능 사용에 대한 중요한 고려 사항을 다룹니다.
기능 IAM 역할 및 Kubernetes RBAC
각 EKS 기능 리소스에는 구성된 기능 IAM 역할이 있습니다. 기능 역할은 EKS 기능이 사용자를 대신하여 작동할 수 있도록 AWS 서비스 권한을 부여하는 데 사용됩니다. 예를 들어 ACK의 EKS 기능을 사용하여 Amazon S3 버킷을 관리하려면 기능에 S3 버킷 관리 권한을 부여하여 버킷을 생성 및 관리할 수 있도록 합니다.
기능이 구성되면 클러스터의 Kubernetes 사용자 지정 리소스를 사용하여 AWS에서 S3 리소스를 생성 및 관리할 수 있습니다. Kubernetes RBAC는 이러한 사용자 지정 리소스를 생성 및 관리할 수 있는 사용자 및 그룹을 결정하기 위한 클러스터 내 액세스 제어 메커니즘입니다. 예를 들어 특정 Kubernetes RBAC 사용자 및 그룹에 선택한 네임스페이스에서 Bucket 리소스를 생성 및 관리할 권한을 부여합니다.
이러한 방식으로 IAM 및 Kubernetes RBAC는 EKS 기능 및 리소스와 관련된 권한을 관리하는 포괄적인 액세스 제어 시스템의 두 부분입니다. 사용 사례에 맞게 IAM 권한과 RBAC 액세스 정책의 올바른 조합을 설계하는 것이 중요합니다.
기능 IAM 역할 및 Kubernetes 권한에 대한 자세한 내용은 EKS 기능에 대한 보안 고려 사항 섹션을 참조하세요.
다중 클러스터 아키텍처 패턴
여러 클러스터에 기능을 배포할 때는 다음과 같은 일반적인 아키텍처 패턴을 고려합니다.
중앙 집중식 관리를 통한 허브 및 스포크
중앙 관리형 클러스터에서 세 가지 기능을 모두 실행하여 워크로드를 오케스트레이션하고 여러 워크로드 클러스터에서 클라우드 인프라를 관리합니다.
-
관리 클러스터에서 Argo CD는 서로 다른 리전 또는 계정의 워크로드 클러스터에 애플리케이션을 배포함
-
관리 클러스터에서 ACK는 모든 클러스터에 대해 AWS 리소스(RDS, S3, IAM)를 프로비저닝함
-
관리 클러스터에서 kro는 모든 클러스터에서 작동하는 이동식 플랫폼 추상화를 생성함
이 패턴은 워크로드 및 클라우드 인프라 관리를 중앙 집중화하고 여러 클러스터를 관리하는 조직의 운영을 단순화할 수 있습니다.
분산된 GitOps
워크로드 및 클라우드 인프라는 워크로드가 실행되는 동일한 클러스터의 기능에 의해 관리됩니다.
-
Argo CD는 로컬 클러스터에서 애플리케이션 리소스를 관리합니다.
-
ACK 리소스는 클러스터 및 워크로드 요구 사항에 사용됩니다.
-
kro 플랫폼 추상화가 설치되고 로컬 리소스를 오케스트레이션합니다.
이 패턴은 하나 이상의 클러스터에서 자체 전용 플랫폼 서비스를 관리하는 팀을 통해 운영을 분산합니다.
하이브리드 ACK 배포를 사용하는 허브 및 스포크
범위 및 소유권을 기반으로 중앙 집중식 애플리케이션 배포 및 리소스 관리와 중앙 집중식 및 분산 모델을 결합합니다.
-
허브 클러스터:
-
Argo CD는 로컬 클러스터 및 모든 원격 워크로드 클러스터에 대한 GitOps 배포를 관리함
-
ACK는 관리자 범위 리소스(프로덕션 데이터베이스, IAM 역할, VPC)에 대해 관리 클러스터에서 사용됨
-
kro는 재사용 가능한 플랫폼 추상화를 위해 관리 클러스터에서 사용됨
-
-
Spoke 클러스터:
-
워크로드는 중앙 집중식 허브 클러스터에서 Argo CD를 통해 관리됨
-
ACK는 워크로드 범위 리소스(S3 버킷, ElastiCache 인스턴스, SQS 대기열)에 대해 로컬로 사용됨
-
kro는 리소스 구성 및 구성 요소 패턴에 대해 로컬로 사용됨
-
이 패턴은 문제를 구분합니다. 플랫폼 팀은 선택적으로 워크로드 클러스터를 포함하여 관리 클러스터에서 중요한 인프라를 중앙에서 관리하는 반면, 애플리케이션 팀은 워크로드와 함께 클라우드 리소스를 지정 및 관리합니다.
패턴 선택
아키텍처를 선택할 때 다음 요소를 고려합니다.
-
조직 구조: 중앙 집중식 플랫폼 팀은 허브 패턴을 선호하고, 분산 팀은 클러스터별 기능을 선호할 수 있음
-
리소스 범위: 관리자 범위 리소스(데이터베이스, IAM)는 중앙 관리에서 종종 더 유리하며, 워크로드 리소스(버킷, 대기열)는 로컬에서 관리할 수 있음
-
셀프 서비스: 중앙 집중식 플랫폼 팀은 규범적 사용자 지정 리소스를 작성하고 배포하여 일반적인 워크로드 요구 사항에 맞게 클라우드 리소스를 안전하게 셀프 서비스로 제공할 수 있음
-
클러스터 플릿 관리: 중앙 집중식 관리 클러스터는 다른 관리자 범위 리소스와 함께 EKS 클러스터 플릿 관리에 대한 고객 소유 컨트롤 플레인을 제공함
-
규정 준수 요구 사항: 일부 조직에서는 감사 및 거버넌스를 위한 중앙 집중식 제어가 필요함
-
운영 복잡성: 매우 소수의 기능 인스턴스가 작업을 단순화하지만 병목 현상을 생성할 수 있음
참고
하나의 패턴으로 시작하여 플랫폼이 성숙해지면 다른 패턴으로 진화할 수 있습니다. 기능은 독립적입니다. 필요에 따라 여러 클러스터에서 서로 다르게 배포할 수 있습니다.
EKS 기능과 자체 관리형 솔루션 비교
EKS 기능은 EKS에서 실행되는 인기 Kubernetes 도구 및 컨트롤러에 대한 완전관리형 경험을 제공합니다. 이는 클러스터에 설치 및 운영하는 자체 관리형 솔루션과 다릅니다.
주요 차이
배포 및 관리
AWS는 구성 요소 소프트웨어를 설치, 구성 또는 유지 관리하지 않고도 EKS 기능을 완벽하게 관리합니다. AWS는 클러스터에 필요한 모든 Kubernetes 사용자 지정 리소스 정의(CRD)를 자동으로 설치 및 관리합니다.
자체 관리형 솔루션을 사용하여 헬름 차트, kubectl 또는 기타 연산자를 사용하여 클러스터 소프트웨어를 설치하고 구성합니다. 자체 관리형 솔루션의 소프트웨어 수명 주기 및 런타임 구성을 완벽하게 제어하여 솔루션의 모든 계층에서 사용자 지정을 제공합니다.
작업 및 유지 관리
AWS는 자동 업데이트 및 보안 패치를 통해 EKS 기능의 패치 및 기타 소프트웨어 수명 주기 작업을 관리합니다. EKS 기능은 간소화된 구성을 위해 AWS 기능과 통합되고 기본 제공 고가용성 및 내결함성을 제공하며 컨트롤러 워크로드의 클러스터 내 문제 해결을 제거합니다.
자체 관리형 솔루션을 사용하려면 구성 요소 상태 및 로그를 모니터링하고, 보안 패치 및 버전 업데이트를 적용하며, 여러 복제본 및 포드 중단 예산으로 고가용성을 구성하고, 컨트롤러 워크로드 문제를 해결하며, 릴리스 및 버전을 관리해야 합니다. 배포를 완전히 제어할 수 있지만, 프라이빗 클러스터 액세스 및 기타 통합을 위한 맞춤 솔루션이 필요한 경우가 많습니다. 이때 이러한 솔루션은 조직 표준 및 보안 규정 준수 요구 사항에 부합해야 합니다.
리소스 소비
EKS 기능은 EKS 내부 및 클러스터 외부에서 실행되므로 노드 리소스와 클러스터 리소스를 확보할 수 있습니다. 기능은 클러스터 워크로드 리소스를 사용하지 않고, 워커 노드에서 CPU 또는 메모리를 사용하지 않으며, 자동으로 조정되고, 클러스터 용량 계획에 미치는 영향을 최소화합니다.
자체 관리형 솔루션은 워커 노드에서 컨트롤러 및 기타 구성 요소를 실행하여 워커 노드 리소스, 클러스터 IP 및 기타 클러스터 리소스를 직접 사용합니다. 클러스터 서비스를 관리하려면 워크로드에 대한 용량 계획이 필요하며, 조정 및 고가용성 요구 사항을 관리하기 위해 리소스 요청 및 제한을 계획하고 구성해야 합니다.
기능 지원
완전관리형 서비스 기능인 EKS 기능은 자체 관리형 솔루션과 비교하여 본질적으로 견고합니다. 이 기능은 대부분의 기능 및 사용 사례를 지원하지만 자체 관리형 솔루션과 비교했을 때 적용 범위에 차이가 있습니다.
자체 관리형 솔루션을 사용하면 소프트웨어의 구성, 선택적 기능 및 기타 기능 측면을 완벽하게 제어할 수 있습니다. 자체 사용자 지정 이미지를 실행하고 구성의 모든 측면을 사용자 지정하며 자체 관리형 솔루션 기능을 완전히 제어하도록 선택할 수 있습니다.
비용 고려 사항
각 EKS 기능 리소스에는 관련된 시간당 비용이 있으며, 이는 기능 유형에 따라 다릅니다. 기능에서 관리하는 클러스터 리소스에는 자체 요금이 적용되는 관련된 시간당 비용도 있습니다. 자세한 내용은 Amazon EKS 요금
자체 관리형 솔루션에는 AWS 요금과 관련된 직접 비용이 없지만, 컨트롤러 및 관련 워크로드에서 사용하는 클러스터 컴퓨팅 리소스에 대한 비용이 청구됩니다. 노드 및 클러스터 리소스 사용 외에도 자체 관리형 솔루션을 사용할 때 전체 소유권 비용에는 운영 오버헤드 그리고 유지 관리, 문제 해결 및 지원과 관련된 비용이 포함됩니다.
EKS 기능과 자체 관리형 솔루션 중에서 선택
EKS 기능 기본 요구 사항에 대한 클러스터 플랫폼 작업 대신, 운영 오버헤드를 줄이고 소프트웨어 및 시스템의 차별화된 가치에 집중하려는 경우 이 선택을 고려합니다. 보안 패치 및 소프트웨어 수명 주기 관리에 관한 운영 부담을 최소화하고, 애플리케이션 워크로드에 대한 노드 및 클러스터 리소스를 확보하며, 구성 및 보안 관리를 단순화하고, AWS 지원 범위를 활용하려는 경우 EKS 기능을 사용합니다. EKS 기능은 대부분의 프로덕션 사용 사례에 적합이며 새 배포에 권장되는 접근 방식입니다.
자체 관리형 솔루션 특정 Kubernetes 리소스 API 버전, 사용자 지정 컨트롤러 빌드가 필요하거나 자체 관리형 배포에서 기존 자동화 및 도구를 빌드하거나 컨트롤러 런타임 구성을 심층적으로 사용자 지정해야 하는 경우 이 선택을 고려합니다. 자체 관리형 솔루션은 특수한 사용 사례에 대한 유연성을 제공하며 배포 및 런타임 구성을 완벽하게 제어할 수 있습니다.
참고
EKS 기능은 자체 관리형 솔루션과 클러스터에 공존할 수 있으며, 단계별 마이그레이션을 수행할 수 있습니다.
기능별 비교
기능별 특성, 업스트림 차이 및 마이그레이션 경로를 포함한 자세한 비교는 다음을 참조하세요.