Updated:

5 minute read

개요

  • https://aws.amazon.com/ko/eks/
  • AWS와 온프레미스에서 손쉽게 Kubernetes를 실행할 수 있는 관리형 Kubernetes 서비스
  • 컨테이너식 어플리케이션의 배포, 확장 및 관리를 자동화하기 위한 오픈 소스 시스템
  • 컨테이너 예약, 어플리케이션 가용성 관리, 클러스터 데이터 저장 및 다른 주요 태스크를 담당하는 Kubernetes 제어 영역의 가용성과 확장성을 관리
  • Amazon EC2(Elastic Compute Cloud), AWS Fargate에서 Kubernetes 어플리케이션을 실행 가능
  • AWS 인프라의 모든 성능, 규모, 안정성 및 가용성뿐만 아니라 AWS 네트워킹 및 보안 서비스와의 통합에 따른 이점을 활용
    • ALB(Application Load Balancer)
    • IAM(Identity and Access Management)
    • RBAC
    • VPC(Virtual Private Cloud)


기능

  • https://aws.amazon.com/ko/eks/features/
  • 관리형 Kubernetes 클러스터
    • 관리형 제어 영역
      • 여러 AWS 가용 영역(AZ)에서 실행되는, 확장 가능하고 가용성이 높은 Kubernetes 제어 영역을 제공
      • etcd 지속성 계층과 Kubernetes API 서버의 가용성 및 확장성을 자동으로 관리
      • 높은 가용성을 보장하기 위해 3개의 AZ에서 Kubernetes 제어 영역을 실행하
      • 비정상적인 제어 영역 노드를 자동으로 감지해 교체
    • 서비스 통합
      • ACK(AWS Controllers for Kubernetes)를 사용하면 Kubernetes 환경 내에서 직접 AWS 서비스를 관리하고 제어
      • AWS 서비스를 활용하는, 확장 가능한 고가용성의 Kubernetes 어플리케이션을 간편하게 구축
    • 호스트형 Kubernetes 콘솔
      • Kubernetes 클러스터에 대한 통합 콘솔을 제공
      • 클러스터 운영자와 어플리케이션 개발자는 EKS를 단일 위치로 사용하여 Kubernetes 어플리케이션을 구성하고 시각화하며 관련 문제를 해결
    • EKS 추가 기능
      • Kubernetes의 운영 기능을 확장하는 일반적인 운영 소프트웨어
      • 가관측성, 네트워킹, 자동 크기 조정 및 AWS 서비스 통합을 위한 Kubernetes 도구를 포함하여 클러스터에서 실행하려는 추가 기능을 선택
    • 관리형 노드 그룹
      • 단일 명령으로 클러스터의 노드를 생성, 업데이트, 조정 및 종료
      • 노드에서 Amazon EC2 스팟 인스턴스를 활용하여 비용을 절감
      • Amazon EC2 스팟 인스턴스
      • AWS 계정의 최신 EKS 최적화 또는 사용자 지정 AMI(Amazon Machine Image)를 사용하여 Amazon EC2 인스턴스를 실행
      • 업데이트 및 종료 시에는 노드를 정상적으로 드레이닝하여 어플리케이션 가용성을 유지
  • 노드 시작 및 단일 위치 관리에 eksctl 사용
    • eksctl
      • eksctl 명령줄 도구를 사용하여 Amazon EKS 가동 및 실행을 몇 분 안에 시작
      • eksctl create cluster 명령을 실행하기만 하면 EKS 클러스터가 생성
      • 노드 및 추가 기능의 관리를 포함하여 클러스터 관리 및 운영을 간소화
    • Windows 지원
      • Windows 작업자 노드 및 Windows 컨테이너 예약을 지원
      • Linux 작업자 노드와 함께 Windows 작업자 노드의 실행을 지원
      • 동일한 클러스터를 사용하여 이러한 운영 체제에서 어플리케이션을 관리
    • ARM 지원
      • Arm 기반 EC2 인스턴스를 구동하는 AWS Graviton2 프로세서는 성능과 기능을 대폭 개선하는 동시에 비용을 크게 감소
  • 네트워킹과 보안
    • IPv6 지원
    • 서비스 검색
      • AWS Cloud Map
        • https://aws.amazon.com/ko/cloud-map/
        • 클라우드 리소스 검색 서비스
        • 어플리케이션 리소스의 사용자 지정 이름을 정의
        • 동적으로 변화하는 이러한 리소스의 업데이트된 위치를 유지 관리
        • 웹 서비스가 항상 가장 최신 리소스 위치를 검색할 수 있어 어플리케이션 가용성이 향상
      • Cloud Map을 통해 Kubernetes 기반 서비스를 검색할 수 있으므로 Cloud Map을 모든 컨테이너 워크로드에 대한 통합 서비스 레지스트리로 사용
    • 서비스 메시
      • 어플리케이션에 있는 모든 마이크로서비스의 통신 방법을 표준화하여 복잡한 마이크로서비스 어플리케이션을 손쉽게 구축하고 실행
      • AWS App Mesh
      • https://aws.amazon.com/ko/app-mesh/
      • 어플리케이션 수준의 네트워킹을 통해 서비스에서 여러 유형의 컴퓨팅 인프라와 원활하게 통신할 수 있도록 하는 서비스 메시
    • VPC 네이티브 네트워킹
      • Amazon VPC에서 실행되는 EKS 클러스터를 통해 자체 VPC 보안 그룹과 네트워크 액세스 제어 목록(ACL)을 사용
      • 컴퓨팅 리소스는 다른 고객과 공유되지 않으므로 높은 수준의 격리
      • Amazon VPC 컨테이너 네트워크 인터페이스(CNI)를 사용하여 Kubernetes 포드가 VPC에서 IP 주소를 수신하도록 허용
      • Project Calico 네트워크 정책 엔진과 연동하여 Kubernetes 워크로드에 대한 세분화된 네트워킹 정책을 제공
      • Kubernetes 네트워크 정책 API를 사용하여 서비스별로 액세스를 제어
    • AWS IAM Authenticator
      • Kubernetes RBAC와 AWS IAM를 통합
      • RBAC 역할을 각 IAM 엔터티에 직접 할당하여 Kubernetes 제어 영역 노드에 대한 액세스 권한을 세분화하여 제어
    • 서비스 계정에 대한 IAM
      • Kubernetes 서비스 계정에 IAM 권한을 할당
      • IAM 역할은 다른 컨테이너식 서비스, 데이터베이스 및 보안 정보 같은 클러스터 외부의 AWS 리소스 또는 AWS 외부에서 실행되는 서드 파티 서비스 및 어플리케이션에 대한 액세스를 제어하는 데 사용
      • 여러 콜로케이션 서비스를 포함하는 클러스터를 실행할 때 포드 수준에서 액세스를 세분화하여 제어하는 동시에 클러스터 가용성 및 비용 최적화를 간소화
    • 규정 준수
      • SOC, PCI, ISO, FedRAMP-Moderate, IRAP, C5, K-ISMS, ENS High, OSPAR, HITRUST CSF를 준수
      • HIPAA 적격 서비스
  • 로드 밸런싱
    • ALB(Application Load Balancer), NLB(Network Load Balancer), Classic Load Balancer를 포함한 Elastic Load Balancing의 사용을 지원
    • 표준 Kubernetes 클러스터 로드 밸런싱 또는 Kubernetes를 지원하는 모든 수신 컨트롤러를 Amazon EKS 클러스터에서 실행 가능
  • 서버리스 컴퓨팅
    • AWS Fargate에서 서버리스 컴퓨팅을 사용하여 Kubernetes 어플리케이션을 실행하도록 지원
    • AWS Fargate
      • https://aws.amazon.com/ko/fargate/
      • 서버를 관리하지 않고도 어플리케이션 구축에 초점을 맞출 수 있도록 지원하는 종량제 서버리스 컴퓨팅 엔진
  • 하이브리드 배포
    • AWS Outposts에서 EKS를 사용하여 온프레미스 시스템에 대한 매우 짧은 대기 시간을 필요로 하는 컨테이너식 어플리케이션 실행 가능
    • AWS Outposts
      • https://aws.amazon.com/ko/outposts/
      • 진정으로 일관된 하이브리드 환경을 위해 거의 모든 온프레미스 또는 엣지 로케이션에 AWS 인프라 및 서비스를 제공하는 완전관리형 솔루션
    • AWS Local Zones 또는 AWS Wavelength에서 실행되는 노드를 EKS에 연결하면 엣지에서 더 많은 AWS 관리형 인프라를 선택
      • AWS Local Zones
        • https://aws.amazon.com/ko/about-aws/global-infrastructure/localzones/
        • 컴퓨팅, 스토리지, 데이터베이스 및 기타 엄선된 AWS 서비스를 대규모 모집단, 산업 센터와 더 가까운 위치에 배치하는 유형의 인프라 배포
      • AWS Wavelength
        • https://aws.amazon.com/ko/wavelength/
        • 5G 네트워크에서 AWS 컴퓨팅 및 스토리지 서비스를 포함하여 매우 낮은 대기 시간의 어플리케이션을 개발하고 배포하며 확장하기 위한 모바일 엣지 컴퓨팅 인프라를 제공
    • Amazon EKS Distro를 사용하면 AWS 기반 Amazon EKS에 사용된 오픈 소스 Kubernetes 소프트웨어 배포를 패키징하여 자체 온프레미스 인프라에서 사용 가능
    • 자체 도구 또는 Amazon EKS Anywhere를 통해 EKS Distro 클러스터 생성 및 운영 가능
      • Amazon EKS Anywhere
        • https://aws.amazon.com/ko/eks/eks-anywhere/
        • 고객이 AWS에서 지원하는 고객 관리형 인프라(VMware vSphere, 베어 메탈, …)에서 Kubernetes 클러스터를 생성 및 운영하도록 지원하는 Amazon EKS의 새 배포 옵션
    • EKS Anywhere를 사용하면 Kubernetes 클러스터 관리를 위한 자체 도구를 구축하고 지원해야 하는 복잡성 감소
    • EKS Anywhere는 클러스터 생성, 인프라 관리 및 운영을 간소화하는 자동화 도구를 제공
  • 로깅
    • AWS CloudTrail과 통합하면 감사 기록을 포함하여 EKS 관리 작업 출력 가능
    • Kubernetes 제어 영역 로그를 Amazon CloudWatch로 보내 분석, 디버깅 및 감사에 활용
      • Amazon CloudWatch
        • Amazon CloudWatch를 통해 컨테이너와 클러스터를 모니터링하는 기능을 제공
        • https://aws.amazon.com/ko/cloudwatch/
        • DevOps 엔지니어, 개발자, 사이트 안정성 엔지니어(SRE), IT 관리자 및 제품 소유자를 위해 구축된 모니터링 및 관찰 서비스
        • 실행 중인 태스크의 평균 및 전체 CPU 사용률과 메모리 사용률을 태스크 정의, 서비스 또는 클러스터별로 그룹화하여 모니터링
        • CloudWatch 경보를 설정하여 컨테이너 또는 클러스터를 확장하거나 축소해야 할 때 알림을 수신
  • 호환성 인증
    • 업스트림 Kubernetes를 실행하고 공인 Kubernetes 인증 서비스이므로 Kubernetes 커뮤니티의 기존 플러그 인과 도구를 모두 사용 가능
    • 온프레미스 데이터 센터에서 실행 중인지 퍼블릭 클라우드에서 실행 중인지에 상관없이, Amazon EKS에서 실행 중인 어플리케이션은 표준 Kubernetes 환경에서 실행 중인 어플리케이션과 완벽하게 호환
    • 표준 Kubernetes 어플리케이션을 Amazon EKS로 쉽게 마이그레이션 가능
  • 관리형 클러스터 업데이트
    • 업데이트 프로세스를 관리할 필요 없이, 실행 중인 클러스터를 최신 Kubernetes 버전으로 쉽게 업데이트 가능
    • 새 클러스터를 생성하거나 어플리케이션을 새 클러스터로 마이그레이션할 필요 없이 Kubernetes 버전 업데이트
    • SDK, CLI 또는 AWS 콘솔을 통해 새 버전 설치를 시작하고 진행 중인 업데이트 상태를 검토
  • 고급 워크로드 지원
    • GPU 사용 P2 및 P3 Amazon EC2 인스턴스용으로 구성된 NVIDIA 드라이버를 포함하는 최적화된 AMI(Amazon Machine Image)를 제공
    • 기계 학습(ML), Kubeflow, 딥 러닝(DL) 컨테이너, 고성능 컴퓨팅(HPC), 금융 분석 및 비디오 트랜스코딩 등 고급 컴퓨팅을 필요로 하는 워크로드를 실행
  • 오픈 소스 호환성
    • Kubernetes 커뮤니티 도구와 완벽하게 호환성
    • Kubernetes 추가 기능을 지원
    • CoreDNS, kubectl, …
  • EKS 커넥터
    • 호환 Kubernetes 클러스터를 AWS에 연결하고 이를 Amazon EKS 콘솔에서 시각화 가능
    • Amazon EKS Anywhere 클러스터, Amazon EC2의 자체 관리형 클러스터 기타 AWS 외부에서 실행되는 Kubernetes 클러스터를 포함해 어떤 호환 Kubernetes 클러스터도 연결 가능
    • 클러스터가 실행되는 위치와 상관없이, Amazon EKS 콘솔을 사용하여 모든 연결된 클러스터와 해당 클러스터에서 실행되는 Kubernetes 리소스 조회 가능