이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
EKS 기능
작은 정보
시작하기: ACK 기능 생성 | Argo CD 기능 생성 | kro 기능 생성
Amazon EKS 기능은 개발자의 속도를 가속화하고 Kubernetes 플랫폼 빌드의 복잡성을 완화하는 데 도움이 되는 계층화된 완전관리형 클러스터 기능 세트입니다. EKS 기능은 선언적 연속 배포, AWS 리소스 관리, Kubernetes 리소스 작성 및 오케스트레이션을 위한 Kubernetes 네이티브 기능으로, 모두 AWS의 완전관리형 기능입니다. EKS 기능을 사용하면 워크로드 빌드 및 확장에 더 집중할 수 있으므로 이러한 기본 플랫폼 서비스의 운영 부담을 AWS로 오프로드할 수 있습니다. 이러한 기능은 클러스터가 아닌 EKS 내에서 실행되므로 워커 노드에 중요한 플랫폼 구성 요소를 설치 및 유지 관리하고 규모를 조정할 필요가 없습니다.
시작하기 위해 신규 또는 기존 EKS 클러스터에서 하나 이상의 EKS 기능을 생성할 수 있습니다. 이를 위해 AWS CLI, AWS Management Console, EKS API, eksctl 또는 선호하는 코드형 인프라 도구를 사용할 수 있습니다. EKS 기능은 함께 작동하도록 설계되었지만, 사용 사례 및 요구 사항에 따라 선택할 수 있는 독립된 클라우드 리소스입니다.
EKS에서 지원하는 모든 Kubernetes 버전은 EKS 기능에 대해 지원됩니다.
참고
Amazon EKS를 사용할 수 있는 모든 AWS 상용 리전에서 EKS 기능을 사용할 수 있습니다. 지원되는 리전 목록은 AWS 일반 참조의 Amazon EKS endpoints and quotas를 참조하세요.
사용 가능한 기능
AWS Controllers for Kubernetes(ACK)
ACK를 사용하면 Kubernetes API를 사용하여 AWS 리소스를 관리할 수 있으므로, 이를 통해 Kubernetes 사용자 지정 AWS 리소스를 사용하여 S3 버킷, RDS 데이터베이스, IAM 역할 및 기타 리소스를 생성하고 관리할 수 있습니다. ACK는 원하는 상태를 AWS의 실제 상태에 맞게 지속적으로 조정하여 시간 경과에 따른 드리프트를 수정함으로써 시스템을 정상으로 유지하고 리소스를 지정된 대로 구성합니다. S3, RDS, DynamoDB, Lambda 등 50개가 넘는 AWS 서비스를 지원하여 동일한 도구 및 워크플로를 사용해 Kubernetes 워크로드와 함께 AWS 리소스를 관리할 수 있습니다. ACK는 교차 계정 및 교차 리전 리소스 관리를 지원하여 복잡한 다중 계정, 다중 클러스터 시스템 관리 아키텍처를 지원합니다. ACK는 읽기 전용 리소스와 읽기 전용 채택을 지원하여 다른 코드형 인프라 도구에서 Kubernetes 기반 시스템으로 쉽게 마이그레이션할 수 있습니다.
Argo CD
Argo CD는 애플리케이션에 대한 GitOps 기반 지속적 배포를 구현하여 Git 리포지토리를 워크로드 및 시스템 상태의 정확한 소스로 사용합니다. Argo CD는 애플리케이션 리소스를 Git 리포지토리의 클러스터에 자동으로 동기화하여 드리프트를 감지하고 수정해 배포된 애플리케이션이 원하는 상태와 일치하는지 확인합니다. 변경 사항이 커밋될 때마다 Git 리포지토리에서 자동화된 배포를 통해 단일 Argo CD 인스턴스에서 여러 클러스터로 애플리케이션을 배포하고 관리할 수 있습니다. Argo CD와 ACK를 함께 사용하면 기본 GitOps 시스템을 제공하여 워크로드 종속성 관리를 단순화하고 클러스터 및 대규모 인프라 관리를 포함한 전체 시스템 설계를 지원할 수 있습니다. Argo CD는 인증 및 권한 부여를 위해 AWS Identity Center에 통합되며, 애플리케이션 상태 및 배포 상태를 시각화하기 위해 호스팅된 Argo UI를 제공합니다.
Kube Resource Orchestrator(kro)
kro를 사용하면 여러 리소스를 상위 수준 추상화로 구성하는 사용자 지정 Kubernetes API를 생성할 수 있으므로 플랫폼 팀이 일반적인 리소스 조합의 클라우드 구성 요소에 대해 재사용 가능한 패턴을 정의할 수 있습니다. kro를 사용하면 Kubernetes 및 AWS 리소스를 모두 통합화된 추상화로 구성하여 간단한 구문을 통해 동적 구성 및 조건부 로직을 활성화할 수 있니다. kro를 사용하면 플랫폼 팀이 적절한 가드레일을 통해 셀프 서비스 기능을 제공하여 개발자가 조직 표준 및 모범 사례를 유지하면서 간단한 목적별 API로 복잡한 인프라를 프로비저닝할 수 있습니다. kro 리소스는 Kubernetes 리소스이며, Git에 저장할 수 있는 Kubernetes 매니페스트에서 지정되거나 광범위한 조직 배포를 위해 Amazon ECR과 같은 OCI 호환 레지스트리로 푸시됩니다.
EKS 기능의 이점
EKS 기능은 AWS의 완전관리형 기능으로, 기본 클러스터 서비스의 설치, 유지 관리 및 조정이 필요하지 않습니다. AWS가 보안 패치, 업데이트 및 운영 관리를 처리하므로 팀은 클러스터 운영이 아닌 AWS에 기반한 빌드에 집중할 수 있습니다. 클러스터 리소스를 소비하는 기존 Kubernetes 추가 기능과 달리, 이 기능은 워커 노드가 아닌 EKS에서 실행됩니다. 이를 통해 클러스터 내 컨트롤러 및 기타 플랫폼 구성 요소 관리의 운영 부담을 최소화하면서 워크로드에 대한 클러스터 용량과 리소스를 확보합니다.
EKS 기능을 사용하면 kubectl과 같은 기본 Kubernetes API 및 도구를 사용하여 배포, AWS 리소스, 사용자 지정 Kubernetes 리소스 및 구성을 관리할 수 있습니다. 모든 기능은 클러스터의 컨텍스트에서 작동하여 애플리케이션 및 클라우드 인프라 리소스 모두에서 구성 드리프트를 자동으로 감지하고 수정합니다. 단일 제어 지점에서 다중 클러스터, AWS 계정 및 리전에 리소스를 배포하고 관리할 수 있으므로 복잡한 분산 환경에서 작업을 단순화할 수 있습니다.
EKS 기능은 GitOps 워크플로를 위해 설계되었으며 선언적이고 버전으로 제어되는 인프라 및 애플리케이션 관리를 제공합니다. 시스템을 통해 Git에서 흐름을 변경하여 기존 개발 사례에 통합되는 감사 추적, 롤백 기능 및 협업 워크플로를 제공합니다. 이러한 Kubernetes 네이티브 접근 방식은 여러 도구를 사용하거나 클러스터 외부의 코드형 인프라 시스템을 관리할 필요가 없으며, 신뢰할 수 있는 단일 소스를 참조합니다. 버전으로 제어된 Kubernetes의 선언적 구성에 정의된 원하는 상태는 환경 전체에 지속적으로 적용됩니다.
가격 책정
EKS 기능을 사용하면 선결제 약정이나 최소 수수료가 없습니다. Amazon EKS 클러스터에서 활성화된 동안 각 기능 리소스에 대해 시간당 요금이 청구됩니다. EKS 기능에서 관리하는 특정 Kubernetes 리소스도 시간당 요금으로 청구됩니다.
현재 요금 정보는 Amazon EMR 요금
작은 정보
AWS Cost Explorer와 비용 및 사용 보고서를 사용하여 다른 EKS 요금과 별도로 기능 비용을 추적할 수 있습니다. 비용 할당 목적으로 클러스터 이름, 기능 유형 및 기타 세부 정보를 사용해 기능에 태그를 지정할 수 있습니다.
EKS 기능 작동 방식
각 기능은 EKS 클러스터에서 사용자가 생성하는 AWS 리소스입니다. 생성되면 기능은 EKS에서 실행되고 AWS에 의해 완전하게 관리됩니다.
참고
지정된 클러스터에 대해 각 유형(Argo CD, ACK 및 kro)의 기능 리소스를 하나씩 생성할 수 있습니다. 동일한 클러스터에서 동일한 유형의 여러 기능 리소스를 생성할 수 없습니다.
표준 Kubernetes API 및 도구를 사용하여 클러스터에서 기능과 상호 작용합니다.
-
kubectl을 사용하여 Kubernetes 사용자 지정 리소스 적용 -
Git 리포지토리를 GitOps 워크플로의 신뢰할 수 있는 소스로 사용
일부 기능에서는 추가 도구가 지원됩니다. 예제:
-
Argo CD CLI를 사용하여 Argo CD 기능에서 리포지토리 및 클러스터 구성 및 관리
-
Argo CD UI를 사용하여 Argo CD 기능에 의해 관리되는 애플리케이션 시각화 및 관리
기능은 함께 작동하도록 설계되었지만 독립적이며 완전히 옵트인됩니다. 필요에 따라 1개, 2개 또는 3개 기능을 모두 활성화하고 요구 사항이 진화함에 따라 구성을 업데이트할 수 있습니다.
모든 EKS 컴퓨팅 유형은 EKS 기능과 함께 사용하도록 지원됩니다. 자세한 내용은 노드를 사용하여 컴퓨팅 리소스 관리 섹션을 참조하세요.
IAM 역할에 대한 보안 구성 및 세부 정보는 EKS 기능에 대한 보안 고려 사항 섹션을 참조하세요. 다중 클러스터 아키텍처 패턴은 EKS 기능 및 고려 사항 섹션을 참조하세요.
일반 사용 사례
애플리케이션 및 인프라를 위한 GitOps
Argo CD를 사용하여 애플리케이션 및 운영 구성 요소를 배포하고, ACK를 사용하여 Git 리포지토리에서 클러스터 구성을 관리하고 인프라를 프로비저닝합니다. 애플리케이션, 데이터베이스, 스토리지, 네트워킹과 같은 전체 스택은 코드로 정의되고 자동으로 배포됩니다.
예제: 개발 팀이 Git에 변경 사항을 푸시합니다. Argo CD는 업데이트된 애플리케이션을 배포하고, ACK는 올바른 구성으로 새 RDS 데이터베이스를 프로비저닝합니다. 모든 변경 사항은 감사 가능하고 되돌릴 수 있으며 여러 환경에서 일관됩니다.
셀프 서비스를 사용한 플랫폼 엔지니어링
kro를 사용하여 ACK 및 Kubernetes 리소스를 구성하는 사용자 지정 API를 생성합니다. 플랫폼 팀은 가드레일을 사용하여 승인된 패턴을 정의합니다. 애플리케이션 팀은 간단한 상위 수준 API를 사용하여 전체 스택을 프로비저닝합니다.
예제: 플랫폼 팀은 배포, 서비스, 수신 및 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는 이러한 구성을 새 계정 및 리전에 자동으로 배포하여 일관성을 보장하고 수동 설정 시간을 며칠에서 몇 분으로 단축합니다.