EKS Capabilities

EKS Capabilities

팁

시작하기: ACK capability 생성 | Argo CD capability 생성 | kro capability 생성

Amazon EKS Capabilities는 개발자 생산성을 높이고 Kubernetes로 빌드하고 스케일링하는 복잡성을 덜어주는 완전 관리형 클러스터 기능의 계층화된 집합입니다. EKS Capabilities는 선언적 지속 배포, AWS 리소스 관리, Kubernetes 리소스 작성 및 오케스트레이션을 위한 Kubernetes 네이티브 기능으로, 모두 AWS가 완전히 관리합니다.

EKS Capabilities를 사용하면 기본 플랫폼 서비스의 운영 부담을 AWS에 맡기고 워크로드 빌드와 스케일링에 더 집중할 수 있습니다. 이러한 기능은 클러스터 내부가 아니라 EKS 안에서 실행되므로 워커 노드에 중요한 플랫폼 구성 요소를 설치, 유지 관리, 스케일링할 필요가 없습니다.

시작하려면 새 EKS 클러스터나 기존 EKS 클러스터에서 하나 이상의 EKS Capabilities를 만들 수 있습니다. 이렇게 하려면 AWS CLI, AWS Management Console, EKS APIs, eksctl 또는 선호하는 infrastructure-as-code 도구를 사용할 수 있습니다. EKS Capabilities는 함께 작동하도록 설계되었지만 독립적인 클라우드 리소스이므로 사용 사례와 요구 사항에 따라 선택할 수 있습니다.

EKS가 지원하는 모든 Kubernetes 버전이 EKS Capabilities에서 지원됩니다.

참고

EKS Capabilities는 Amazon EKS를 사용할 수 있는 모든 AWS 상용 리전에서 사용할 수 있습니다. 지원되는 리전 목록은 AWS General Reference의 Amazon EKS endpoints and quotas를 참조하세요.

출처: 문서

본문

사용 가능한 기능

AWS Controllers for Kubernetes (ACK)

ACK는 Kubernetes API를 사용해 AWS 리소스를 관리할 수 있게 해주며, Kubernetes 사용자 지정 리소스로 S3 버킷, RDS 데이터베이스, IAM 역할 및 기타 AWS 리소스를 만들고 관리할 수 있습니다. ACK는 원하는 상태를 AWS의 실제 상태와 지속적으로 재조정(reconcile)하여 시간이 지나도 드리프트를 교정함으로써 시스템을 정상으로 유지하고 리소스를 지정된 대로 구성합니다.

Kubernetes 워크로드와 함께 같은 도구와 워크플로를 사용해 AWS 리소스를 관리할 수 있으며, S3, RDS, DynamoDB, Lambda를 포함한 50개 이상의 AWS 서비스를 지원합니다. ACK는 교차 계정 및 교차 리전 리소스 관리를 지원하여 복잡한 다중 계정, 다중 클러스터 시스템 관리 아키텍처를 가능하게 합니다. ACK는 읽기 전용 리소스와 읽기 전용 채택을 지원하므로 다른 infrastructure as code 도구에서 Kubernetes 기반 시스템으로의 마이그레이션을 용이하게 합니다.

ACK에 대해 자세히 알아보기

Argo CD

Argo CD는 애플리케이션에 GitOps 기반 지속 배포를 구현하며, Git 저장소를 워크로드와 시스템 상태의 진실의 원천(source of truth)으로 사용합니다. Argo CD는 Git 저장소에서 클러스터로 애플리케이션 리소스를 자동으로 동기화하여 드리프트를 감지하고 교정함으로써 배포된 애플리케이션이 원하는 상태와 일치하도록 보장합니다.

단일 Argo CD 인스턴스에서 여러 클러스터에 걸쳐 애플리케이션을 배포하고 관리할 수 있으며, 변경 사항이 커밋될 때마다 Git 저장소에서 자동으로 배포됩니다. Argo CD와 ACK를 함께 사용하면 기본 GitOps 시스템을 제공하여 워크로드 종속성 관리를 단순화하고 클러스터 및 인프라 관리를 포함한 전체 시스템 설계를 대규모로 지원합니다.

Argo CD는 인증 및 권한 부여를 위해 AWS Identity Center와 통합하며, 애플리케이션 상태와 배포 상태를 시각화하기 위한 호스팅 Argo UI를 제공합니다.

Argo CD에 대해 자세히 알아보기

kro (Kube Resource Orchestrator)

kro를 사용하면 여러 리소스를 더 높은 수준의 추상화로 구성하는 사용자 지정 Kubernetes API를 만들 수 있어, 플랫폼 팀이 일반적인 리소스 조합(클라우드 빌딩 블록)에 대한 재사용 가능한 패턴을 정의할 수 있습니다. kro로 Kubernetes 리소스와 AWS 리소스를 모두 통합 추상화로 구성할 수 있으며, 간단한 구문으로 동적 구성을 가능하게 하고 조건부 로직을 지원합니다.

kro는 플랫폼 팀이 적절한 가드레일과 함께 셀프 서비스 기능을 제공할 수 있게 하여, 개발자가 조직 표준과 모범 사례를 유지하면서 간단하고 목적에 맞게 만들어진 API로 복잡한 인프라를 프로비저닝할 수 있게 합니다. kro 리소스는 단순히 Kubernetes 리소스이며 Kubernetes 매니페스트로 지정되고, Git에 저장하거나 Amazon ECR 같은 OCI 호환 레지스트리에 푸시하여 조직 전체에 광범위하게 배포할 수 있습니다.

kro에 대해 자세히 알아보기

EKS Capabilities의 이점

  • EKS Capabilities는 AWS가 완전히 관리하므로 기본 클러스터 서비스의 설치, 유지 관리, 스케일링이 필요 없습니다. AWS가 보안 패칭, 업데이트, 운영 관리를 처리하므로 팀은 클러스터 운영보다 AWS로 빌드하는 데 집중할 수 있습니다.
  • 클러스터 리소스를 소비하는 전통적인 Kubernetes 추가 기능과 달리 기능은 워커 노드가 아닌 EKS에서 실행됩니다. 이는 클러스터 용량과 리소스를 워크로드에 확보해 주면서 클러스터 내부 컨트롤러 및 기타 플랫폼 구성 요소를 관리하는 운영 부담을 최소화합니다.
  • EKS Capabilities를 사용하면 네이티브 Kubernetes API와 kubectl 같은 도구로 배포, AWS 리소스, 사용자 지정 Kubernetes 리소스, 구성을 관리할 수 있습니다. 모든 기능은 클러스터의 맥락에서 작동하며 애플리케이션과 클라우드 인프라 리소스 모두에서 구성 드리프트를 자동으로 감지하고 교정합니다.
  • 단일 제어 지점에서 여러 클러스터, AWS 계정, 리전에 걸쳐 리소스를 배포하고 관리할 수 있어 복잡하고 분산된 환경의 운영을 단순화합니다.
  • EKS Capabilities는 GitOps 워크플로를 위해 설계되어 선언적이고 버전 관리되는 인프라 및 애플리케이션 관리를 제공합니다. 변경 사항은 Git에서 시스템을 통해 흐르며 감사 추적, 롤백 기능, 기존 개발 방식과 통합되는 협업 워크플로를 제공합니다.
  • 이 Kubernetes 네이티브 접근 방식은 여러 도구를 사용하거나 클러스터 외부의 infrastructure-as-code 시스템을 관리할 필요가 없다는 것을 의미하며, 참조할 단일 진실의 원천이 있습니다. 버전 관리되는 Kubernetes 선언적 구성에 정의된 원하는 상태가 환경 전반에 지속적으로 적용됩니다.

요금

EKS Capabilities에는 선불 약정이나 최소 요금이 없습니다. Amazon EKS 클러스터에서 각 기능 리소스가 활성 상태인 시간마다 요금이 부과됩니다. EKS Capabilities가 관리하는 특정 Kubernetes 리소스도 시간당 요금으로 청구됩니다.

현재 요금 정보는 Amazon EKS 요금 페이지를 참조하세요.

팁

AWS Cost Explorer와 Cost and Usage Reports를 사용해 EKS Capabilities 비용을 다른 EKS 요금과 별도로 추적할 수 있습니다. 기능에 클러스터 이름, 기능 유형 및 기타 세부 정보로 태그를 지정해 비용 할당에 사용할 수 있습니다.

EKS capabilities가 작동하는 방식

각 기능은 EKS 클러스터에서 만드는 AWS 리소스입니다. 생성되면 기능은 EKS에서 실행되고 AWS가 완전히 관리합니다.

참고

주어진 클러스터에 각 유형(Argo CD, ACK, kro)의 기능 리소스를 하나 만들 수 있습니다. 같은 클러스터에 같은 유형의 기능 리소스를 여러 개 만들 수는 없습니다.

클러스터에서 표준 Kubernetes API와 도구를 사용해 기능과 상호 작용합니다.

  • kubectl을 사용해 Kubernetes 사용자 지정 리소스를 적용합니다.
  • GitOps 워크플로의 진실의 원천으로 Git 저장소를 사용합니다.

일부 기능에는 추가 지원 도구가 있습니다. 예를 들어:

  • Argo CD CLI를 사용해 Argo CD 기능에서 저장소와 클러스터를 구성하고 관리합니다.
  • Argo CD UI를 사용해 Argo CD 기능이 관리하는 애플리케이션을 시각화하고 관리합니다.

기능은 함께 작동하도록 설계되었지만 독립적이고 완전히 옵트인(opt-in) 방식입니다. 필요에 따라 하나, 둘 또는 세 가지 기능을 모두 활성화할 수 있으며 요구 사항이 발전함에 따라 구성을 업데이트할 수 있습니다.

모든 EKS Compute 유형이 EKS Capabilities와 함께 사용하도록 지원됩니다. 자세한 내용은 노드로 컴퓨팅 리소스 관리를 참조하세요.

보안 구성과 IAM 역할에 대한 세부 정보는 EKS Capabilities 보안 고려 사항을 참조하세요. 멀티 클러스터 아키텍처 패턴은 EKS Capabilities 고려 사항을 참조하세요.

일반적인 사용 사례

애플리케이션 및 인프라용 GitOps – Argo CD를 사용해 애플리케이션과 운영 구성 요소를 배포하고 ACK를 사용해 클러스터 구성을 관리하고 인프라를 프로비저닝하며, 둘 다 Git 저장소에서 수행합니다. 애플리케이션, 데이터베이스, 스토리지, 네트워킹을 포함한 전체 스택이 코드로 정의되고 자동으로 배포됩니다.

예시: 개발 팀이 Git에 변경 사항을 푸시합니다. Argo CD가 업데이트된 애플리케이션을 배포하고 ACK가 올바른 구성으로 새 RDS 데이터베이스를 프로비저닝합니다. 모든 변경 사항은 감사 가능하고 되돌릴 수 있으며 환경 전반에서 일관됩니다.

셀프 서비스를 갖춘 플랫폼 엔지니어링 – kro를 사용해 ACK와 Kubernetes 리소스를 구성하는 사용자 지정 API를 만듭니다. 플랫폼 팀이 가드레일이 있는 승인된 패턴을 정의합니다. 애플리케이션 팀이 간단하고 높은 수준의 API를 사용해 완전한 스택을 프로비저닝합니다.

예시: 플랫폼 팀이 Deployment, Service, Ingress, S3 버킷을 프로비저닝하는 "WebApplication" API를 만듭니다. 개발자는 기본 복잡성이나 AWS 권한을 이해할 필요 없이 이 API를 사용합니다.

멀티 클러스터 애플리케이션 관리 – Argo CD를 사용해 서로 다른 리전이나 계정의 여러 EKS 클러스터에 애플리케이션을 배포합니다. 일관된 정책과 워크플로로 단일 Argo CD 인스턴스에서 모든 배포를 관리합니다.

예시: 여러 리전에 걸쳐 개발, 스테이징, 프로덕션 클러스터에 같은 애플리케이션을 배포합니다. Argo CD가 각 환경이 해당 Git 브랜치와 동기화되도록 보장합니다.

멀티 클러스터 관리 – ACK를 사용해 EKS 클러스터를 정의하고 프로비저닝하며, kro를 사용해 조직 표준으로 클러스터 구성을 사용자 지정하고, Argo CD를 사용해 클러스터 수명 주기와 구성을 관리합니다. 이는 생성부터 지속적인 운영까지 종단 간 클러스터 관리를 제공합니다.

예시: ACK와 kro를 사용해 EKS 클러스터를 정의하고 클러스터 인프라를 프로비저닝·관리하며 네트워킹, 보안 정책, 추가 기능 및 기타 구성에 대한 조직 표준을 정의합니다. Argo CD를 사용해 일관된 표준과 자동화된 수명 주기 관리를 활용해 플릿 전반에서 클러스터, 구성, Kubernetes 버전 업데이트를 만들고 지속적으로 관리합니다.

마이그레이션 및 현대화 – 네이티브 클라우드 리소스 프로비저닝과 GitOps 워크플로로 EKS 마이그레이션을 단순화합니다. ACK를 사용해 리소스를 다시 만들지 않고 기존 AWS 리소스를 채택하고 Argo CD를 사용해 Git에서 워크로드 배포를 운영화합니다.

예시: EC2에서 EKS로 마이그레이션하는 팀이 ACK를 사용해 기존 RDS 데이터베이스와 S3 버킷을 채택한 뒤 Argo CD를 사용해 Git에서 컨테이너화된 애플리케이션을 배포합니다. 마이그레이션 경로가 명확하고 운영이 첫날부터 표준화됩니다.

계정 및 리전 부트스트래핑 – Argo CD와 ACK를 함께 사용해 계정과 리전에 걸쳐 인프라 롤아웃을 자동화합니다. 인프라를 Git에 코드로 정의하고 기능이 배포와 관리를 처리하도록 합니다.

예시: 플랫폼 팀이 표준 계정 구성(VPC, IAM 역할, RDS 인스턴스, 모니터링 스택)을 정의하는 Git 저장소를 유지 관리합니다. Argo CD가 새 계정과 리전에 이러한 구성을 자동으로 배포해 일관성을 보장하고 수동 설정 시간을 며칠에서 몇 분으로 줄입니다.

더 알아보기 (Learn more)