안녕하세요, AI 서비스 & 솔루션 프로바이더 베스핀글로벌입니다.
AWS re:Invent 2025의 [Simplify your kubernetes journey with Amazon EKS Capabilities]을 확인해보시기 바랍니다.

☑️ Keynote

세션명 Simplify your kubernetes journey with Amazon EKS Capabilities
세션코드 CNS378
발표일자 2025.12.05
강연자 Jesse Butler, Sriram Ranganathan
키워드 1. Amazon EKS Capabilities
2. ArgoCD
3. ACK(AWS Controller for kubernetes)
4. Kro(Kube Resouces Orchestrator)
핵심 내용 및 요약 1. 신규 런칭된 AWS EKS Capabilities 기능을 소개합니다.
2. AWS EKS Capabilities는 Argocd, ACK, Kro와 같은 오픈 소스 기반의 플랫폼 기능을 AWS가 완전 관리하여 kubernetes 클러스터 구축 및 확장을 단순화하고 운영 부담을 줄여줍니다.

Simplify your kubernetes journey with Amazon EKS Capabilities

신규로 출시된 Amazon EKS Capabilities(Argo CD·ACK·KRO)를 활용하여 쿠버네티스 기반 플랫폼 엔지니어링과 GitOps 운영을 보다 쉽게 구축하고 확장하는 방법에 대해 소개합니다.

1. 배경

  • 기존 GitOps 환경: GitOps는 확장 가능하며, 고객은 Argo CD(쿠버네티스용), ACK/Crossplane(클라우드 리소스용) 등의 오픈소스 소프트웨어를 사용하여 자체 관리합니다.
  • 문제점: 자체 관리되는 분산형 GitOps 환경으로 확장될 경우, 결국 추상화 도구를 관리하는 데 시간을 소비하며 이전과 같은 관리 부담으로 회귀합니다.
  • EKS Capabilities의 역할: EKS Capabilities는 이러한 기초적인 맞춤형 복잡성을 AWS가 처리하여 더 효율적으로 확장할 수 있도록 돕는 것을 목표로 합니다.

2. Amazon EKS Capabilties 소개

몇 번의 버튼 클릭만으로 사용할 수 있으며, 사용자는 첫날부터 속도를 높이고 마찰을 제거하며, 리팩토링 과정에서 발생하는 문제를 해결하는 데 드는 노력을 줄일 수 있습니다.

  • 현재 출시된 3가지 Capabilities는 고객들이 많이 사용하거나 관심 있어 하는 기능으로, 모두 잘 알려진 오픈 소스 프로젝트를 기반으로 하는 사실상의 표준이며 AWS가 지원합니다.
  • ArgoCD는 대부분의 사용자가 Kubernetes에서 GitOps를 구현할 때 사용하는 사실상의 표준입니다.
  • ACK와 KRO는 인프라스트럭처 부분을 담당합니다.
  • 일반적인 Self-managed Platform에서는 고객 계정에 Argo CD, ACK, KRO를 설치하고, 해당 구성 요소들이 CRD를 사용하여 S3 버킷이나 RDS 인스턴스와 같은 리소스를 생성합니다.
  • EKS Capabilities를 적용하면 해당 Controller 및 종속성을 가진 컴포넌트를 AWS 서비스 계정 내의 클러스터 Control Plane에서 실행합니다.
  • 클러스터의 컴퓨팅 리소스를 차지하지 않으며, AWS가 기능의 생명주기, 패치, 확장성 및 가용성을 관리합니다.
  • CRD는 클러스터에 설치되므로 애플리케이션 및 사용자 정의 리소스에 대한 제어권은 유지됩니다.
  • 모든 Capability는 오픈 표준을 기반으로 합니다.
  • 표준화 계층을 제공하여 여러 환경에 배포할 때 이식성을 보장하는 Kubernetes 네이티브 경험을 제공합니다.
  • 기능은 항상 완전히 관리되며, 클러스터에 배포되는 추가 기능은 없습니다.
  • KRO와 같이 아직 GA가 아닌 새로운 혁신 기술도 EKS Capabilities를 통해 제공될 수 있습니다. (EKS Capabilities 자체는 GA입니다.)

2. EKS Capabilites 상세 기능 소개

2-1. ArogCD

  • GitOps 기반 CICD 도구 - Git 리포지토리를 진실 공급원(Source of Truth)으로 사용합니다.
  • Drift 감지 및 자동 조정: 명령형 변경 사항이 발생하면 자동으로 감지하여 원하는 상태로 되돌립니다. - 일반적으로 끄지 않는 것이 모범 사례입니다.
  • 중앙 Argo CD를 여러 클러스터에 연결하여 배포할 수 있습니다. (hub and spoke)
  • EKS Capability로 활성화된 중앙 클러스터의 Argocd가 다른 EKS 클러스터(동일/다른 계정, 리전 무관)로 배포 가능합니다.
  • CLI를 통해 Capability를 Argo CD로 선택하고 클러스터와 역할 지정하여 생성합니다.
  • AWS Identity Center와 통합하여 Argo UI 및 CLI에 대한 싱글 사인온(SSO)을 구성할 수 있습니다.
  • Console를 통해 Argo CD의 ARN, 생성시점, 현재 상태 등의 기본 정보를 확인할 수 있습니다.
  • 제공해주는 Endpoint URL 정보를 통해 ArgoCD UI 및 CLI에 접근할 수 있습니다.
  • Application 리소스: 소스 코드 위치와 대상 클러스터를 지정합니다.
  • Argo CD에서 클러스터를 등록하고 사용하려면 Kubernetes Secret을 생성하고 특정 레이블을 지정해야 합니다.
  • EKS 관리형 기능에서는 API 서버 URL 대신 ARN을 지정하여 사용할 수 있습니다.
  • 소스 리포지토리 등록: 클러스터와 마찬가지로 repository 타입의 Secret을 생성하여 GitHub, GitLab, Bitbucket에 연결할 수 있습니다.
  • Git 비밀 정보를 Secrets Manager에 저장하고 참조할 수 있으며, 런타임에만 인증되어 클러스터에 자격 증명이 저장되지 않습니다.
  • AppProject 내에 유효한 소스 리포지토리, 대상 클러스터, 배포 권한자(Argo RBAC)를 정의하여 보안 제약 조건을 적용합니다.
  • ECR 연동: OCI URL을 사용하여 ECR에서 Helm 차트를 가져올 때 Capability IAM 역할이 ECR에 자동으로 인증하여 자격 증명 관리가 필요 없습니다. (셀프 관리 시에는 리포지토리 Secret 필요합니다.)
  • CodeCommit 연동: CodeCommit URL만 지정하면 IAM 역할이 자동으로 인증합니다.
  • CodeConnections 통합: OAuth 핸드셰이크를 통해 개인 액세스 토큰이나 비밀번호 없이 GitHub, GitLab, Bitbucket에 연결할 수 있으며 인증은 자동으로 처리됩니다.
  • ArgoCD와 Secrets Manager, ECR, CodeCommit, CodeConnections 등의 AWS 서비스와 직접적인 통합을 통해 단순화시킬 수 있습니다.

2-2. ACK (AWS Controllers for Kubernetes)

  • ACK (AWS Controllers for Kubernetes): 쿠버네티스 사용자 정의 리소스(Custom Resources)를 사용하여 애플리케이션과 함께 AWS 리소스를 관리할 수 있게 합니다.
  • YAML 파일로 S3 버킷이나 RDS 데이터베이스 등의 AWS 리소스를 정의하면 ACK가 프로비저닝을 처리합니다.
  • ACK 역시 지속적인 차이 감지 및 조정을 통해 GitOps 원칙을 따릅니다.
  • ACK Capability 생성: Argo CD와 유사하게 CLI와 Console을 통해 Type, 클러스터, 이름, IAM 역할을 지정합니다.
  • ACK 샘플 - kind: Bucket과 같은 사용자 정의 리소스를 사용하여 S3 버킷을 생성하며, 이는 쿠버네티스 네이티브 API가 아닌 ACK 컨트롤러가 활성화한 CRD입니다.
  • 여러 IAM 역할을 다른 네임스페이스에 매핑할 수 있게 하며, 크로스 리전 리소스 관리, 팀 격리, 최소 권한 액세스를 지원합니다.
  • 지정된 IAM 역할은 일치하는 네임스페이스에서 적용됩니다. namespace selector를 제거하면 클러스터 전체에 적용합니다.
  • 리전에 대한 주석(Annotation)을 지정하면 해당 리전에 리소스가 자동으로 프로비저닝됩니다.
  • 단일 클러스터에서 여러 팀이 서로 다른 권한으로 리소스를 생성할 수 있도록 여러 IAMRole Selector를 정의하고 네임스페이스에 할당할 수 있습니다.
  • Argocd 및 ACK 요약: Argo CD가 애플리케이션 배포를 처리하고, ACK가 정교한 IAM 패턴을 사용하여 인프라 프로비저닝을 처리합니다.

2-3. KRO(Kube Resource Orchestrator)

  • 플랫폼 엔지니어링팀에서 기존 리소스를 조합(composing)하여 사용자 정의 쿠버네티스 API를 생성할 수 있게 합니다.
  • 웹 애플리케이션(배포, 서비스, 인그레스, S3, RDS 포함)을 하나의 엔티티로 결합하여 제공하면, 개발자는 기본 파라미터만 사용하여 인스턴스를 생성하여 관련 복잡성을 알 필요가 없게 합니다.
  • KRO Capability 생성: Argo CD, ACK와 동일하게 Type, IAM 역할만 지정하면 됩니다.
  • Resource Graph Definition(RGD): KRO 작동의 핵심이며 플랫폼팀에서 사용자 정의 API를 정의합니다.
  • Schema 섹션: 개발자가 구성할 수 있는 필드(앱 이름, 복제본 수, RDS 필요 여부)를 정의합니다.
  • Resources 섹션: 실제로 생성될 대상을 정의하며, 이 예시에서는 web application 리소스 유형을 생성합니다.
  • 개발자는 web application 타입의 사용자 정의 리소스를 생성하고 Replica 개수나 DB 필요 여부 등의 기본 파라미터만 제공하면 됩니다.
  • KRO는 모범 사례를 인코딩할 수 있게 합니다. 예를 들어, S3 버킷 생성 시 버전 관리 활성화, 비용 최적화를 위한 수명 주기 정책, 공개 액세스 차단, 암호화 활성화 등의 설정을 RGD에 내장할 수 있습니다.
  • 불변성: 개발자 관점에서 이러한 설정은 불변하며, 플랫폼 엔지니어링 팀이 RGD를 업데이트하면 모든 하위 리소스가 자동으로 업데이트됩니다(개발자에게는 불투명합니다).
  • 버전 관리: 플랫폼 팀이 추상화를 발전시킬 때 하위 호환성을 유지할 수 있습니다.
  • CEL Expression을 사용하여 RGD에 로직을 구성할 수 있습니다. 환경에 따라 프로덕션 환경에서는 DB 인스턴스 크기를 크게 하고 백업 보존 기간을 30일로 설정하고, 비프로덕션 환경에서는 백업 보존 기간을 7일로 작게 설정하는 구성의 로직을 만들 수 있습니다.
  • 독립적인 CRD로 구성 시에는 리소스의 생성 순서와 그들 사이의 설정을 생각해야 하는 것과 달리, KRO를 사용하면 리소스 생성 순서를 제어할 수 있습니다(예: VPC 및 IAM 생성 후 EKS 클러스터 생성 등).
  • 소개한 세 가지 기능은 함께 작동하여 완전한 플랫폼 엔지니어링 솔루션을 제공합니다.
  • KRO는 조합 가능한 추상화 계층을 제공하며 ACK는 AWS 리소스 프로비저닝을 처리하고, Argo CD는 GitOps 배포를 처리합니다. IAM Role Selector는 적절한 권한을 보장합니다.
  • EKS Capabilities는 Self-managed 솔루션보다 AWS 인프라 관리에 최적화된 심층적인 AWS 통합 및 정교한 IAM 패턴을 제공합니다.

3. EKS Capabilities 사용 시 고려 사항 및 결론

  • 작업 전 고려해야 할 사항: 선택할 Capability, 워크로드 요구사항, 거버넌스 및 운영 모델, 멀티 클러스터 시스템 설계 및 멀티 테넌시 고려 사항, 권한 관리 및 최소 권한 원칙 계획, 셀프 관리 오픈소스 구성 요소 사용 vs Capabilities 사용 등을 고려합니다.
  • EKS Capabilitity는 상호 운용되도록 설계되었지만 상호 운용이 필수는 아니며(예: Argo CD만 사용 가능), 모든 컴퓨팅 유형(Hybrid Nodes, Auto Mode, Self-managed Nodes)을 지원합니다.
  • 운영 모델: 자동화 수준을 높일 때 가장 중요하게 고려해야 할 사항입니다.
  • 중앙 집중식 관리(Centralized Management): 플랫폼 엔지니어링 팀이 중앙 관리 클러스터에서 워크로드 및 AWS 리소스를 오케스트레이션하며, 운영 단순화에 도움이 되지만 플랫폼 엔지니어링에 대한 투자가 필요합니다.
  • 분산형(Decentralized): 초기에는 속도가 빠를 수 있으나, 각 클러스터와 팀의 자율성에 따라 규정 준수 및 감사가 어려워질 수 있습니다. GitOps는 모든 것이 Git에 있어 검증 가능하고 불변하므로 장점이 있습니다.
  • 멀티 클러스터 시스템 설계: 현대 플랫폼 엔지니어링의 핵심입니다.
  • Hub and Spoke: 대규모 플랫폼 엔지니어링 팀을 보유한 확장성 높은 고객이 선호하며, 운영과 비용 등의 구성 요소 관리를 중앙 집중화합니다.
  • Local Cluster: 플랫폼 엔지니어링 작업의 확장성이 더 뛰어납니다. 여러 비즈니스 단위가 독립적으로 작업할 때 더 많이 보입니다.
  • 규모 확장 시 운영 부담을 분산된 팀이 감당할 수 있는 수준을 넘어서지 않도록 고려합니다.
  • IAM: Capability Role을 통해 AWS 서비스에 대한 권한을 부여합니다.
  • RBAC: 클러스터 내에서 누가 무엇을 할 수 있는지 제어합니다(쿠버네티스 리소스 생성 제어).
  • Argo CD 애플리케이션이 KRO 사양을 정의하고 ACK 리소스를 생성하는 경우, 클러스터 내에서 해당 리소스를 생성할 수 있는 권한(RBAC)이 AWS 계정의 AWS 리소스를 생성할 권한(IAM)으로 이어집니다.
    이는 Terraform이나 Ansible 등 IaC와 같이 '왕국의 열쇠'를 키보드에 두는 것과 같으므로, RBAC를 통해 방어 계층을 추가해야 합니다.
  • Push-button GitOps와 규범적 리소스 사용으로 운영을 단순화하는 방법을 제공합니다. EKS Capabilities가 기초 구성 요소를 경감하여 더 많은 차별화된 가치 구축에 집중할 수 있도록 도울 수 있습니다. EKS Capabilities는 더 빠르고 안전하게 구축하고 배포할 수 있도록 도와줍니다. AWS는 고객이 차별화된 가치에 집중할 수 있도록 차별화되지 않은 무거운 작업을 대신 처리할 것입니다.