 |
|
안녕하세요, 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는 고객이 차별화된 가치에 집중할 수 있도록 차별화되지 않은 무거운 작업을 대신 처리할 것입니다.
|
|
|