관리형 Kubernetes 클러스터

Amazon Elastic Kubernetes Service(EKS)는 AWS와 온프레미스에서 손쉽게 Kubernetes를 실행할 수 있는 관리형 Kubernetes 서비스입니다. Amazon EKS는 Kubernetes 인증 서비스이므로 업스트림 Kubernetes에서 실행되는 기존 애플리케이션과 호환됩니다.

Amazon EKS는 컨테이너 예약, 애플리케이션의 가용성 관리, 클러스터 데이터 저장 및 다른 주요 태스크를 담당하는 Kubernetes 제어 플레인의 가용성과 확장성을 관리합니다.

EKS를 사용하면 컨테이너를 위한 서버리스 컴퓨팅을 제공하는 Amazon EC2와 AWS Fargate 모두에서 Kubernetes 애플리케이션을 실행할 수 있습니다. Fargate는 컨테이너의 컴퓨팅 용량을 자동으로 프로비저닝하고 조정합니다. Fargate를 사용할 때는 애플리케이션을 실행하기 위해 요청한 리소스에 대한 요금만 지불하면 됩니다. Fargate에서 실행되는 각 Pod는 설계상 격리되므로 애플리케이션 보안이 강화됩니다.

Amazon EKS를 사용하면 AWS 인프라의 모든 성능, 규모, 안정성 및 가용성뿐만 아니라 AWS 네트워킹 및 보안 서비스(로드 분산을 위한 Application Load Balancer, Identity Access Manager(IAM)와 역할 기반 액세스 제어(RBAC) 통합, Pod 네트워킹을 위한 Virtual Private Cloud(VPC) 등)와의 통합에 따른 이점을 활용할 수 있습니다.

관리형 제어 플레인

Amazon EKS는 여러 AWS 가용 영역에서 실행되는, 확장 가능하고 가용성이 높은 Kubernetes 제어 플레인을 제공합니다. Amazon EKS는 각 클러스터의 etcd 지속성 계층과 Kubernetes API 서버의 가용성과 확장성을 자동으로 관리합니다. Amazon EKS는 높은 가용성을 보장하기 위해 3개 가용 영역에서 Kubernetes 제어 플레인을 실행하고 비정상적인 제어 플레인 노드를 자동으로 감지해 교체합니다.

서비스 통합

AWS Controllers for Kubernetes(ACK)를 사용하여 Kubernetes에서 직접 AWS 서비스를 관리할 수 있습니다. ACK를 사용하면 AWS 서비스를 활용하는, 확장 가능한 고가용성의 Kubernetes 애플리케이션을 간편하게 구축할 수 있습니다.

호스팅 Kubernetes 콘솔

EKS는 Kubernetes 클러스터에 대한 통합 콘솔을 제공합니다. 클러스터 운영자와 애플리케이션 개발자는 EKS를 단일 위치로 사용하여 Amazon EKS에서 실행되는 Kubernetes 애플리케이션을 구성하고 시각화하며 관련 문제를 해결할 수 있습니다. EKS 콘솔은 AWS를 통해 호스팅되며 모든 EKS 클러스터에 자동으로 제공됩니다.

EKS 추가 기능

EKS 추가 기능은 Kubernetes의 운영 기능을 확장하는 일반적인 운영 소프트웨어입니다. EKS를 사용하여 이 소프트웨어를 설치하고 최신 상태로 유지할 수 있습니다. Amazon EKS 클러스터를 시작할 때 가관측성, 네트워킹, 자동 확장 및 AWS 서비스 통합을 위한 Kubernetes 도구를 포함하여 클러스터에서 실행하려는 추가 기능을 선택할 수 있습니다.

관리형 노드 그룹

Amazon EKS를 사용하면 단일 명령으로 클러스터의 노드를 생성, 업데이트, 조정 및 종료할 수 있습니다. 이러한 노드에서 Amazon EC2 스팟 인스턴스를 활용하여 비용을 절감할 수도 있습니다. 관리형 노드 그룹은 AWS 계정의 최신 EKS 최적화 또는 사용자 지정 AMI를 사용하여 EC2 인스턴스를 실행하며, 업데이트 및 종료 시에는 노드를 정상적으로 드레이닝하여 애플리케이션 가용성을 유지합니다.

노드 시작 및 단일 위치 관리에 eksctl 사용

eksctl은 Amazon EKS를 몇 분 내에 구축 및 실행하는 오픈 소스 명령줄 도구입니다. eksctl create cluster를 실행하면 몇 분 내에 애플리케이션을 실행할 준비가 된 Amazon EKS 클러스터가 생성됩니다. eksctl을 사용하면 노드 및 추가 기능의 관리를 포함하여 클러스터의 관리 및 운영을 간소화할 수 있습니다.

Windows 지원

Amazon EKS가 Windows 노드를 작업자 노드로 추가하고 Windows 컨테이너를 예약하도록 지원합니다. EKS는 Linux 작업자 노드와 함께 Windows 작업자 노드의 실행을 지원합니다. 따라서 동일한 클러스터를 사용하여 이러한 운영 체제에서 애플리케이션을 관리할 수 있습니다.

ARM 지원

Arm 기반 EC2 인스턴스를 구동하는 AWS Graviton2 프로세서는 성능과 기능을 대폭 개선하는 동시에 비용을 크게 낮춰줍니다. 컨테이너를 실행하는 기본적인 목표는 애플리케이션의 비용 효율성을 개선하는 것입니다. 이 둘의 결합은 가격 대비 성능을 추가로 개선합니다. 예를 들어 워크로드 테스트에서 Graviton2 프로세서 기반의 인스턴스 유형은 상응하는 x86 기반 M5, C5 및 R5 패밀리에 비해 40% 더 높은 가격 대비 성능을 제공하는 것으로 밝혀졌습니다. AWS Graviton2 기반 Amazon EKS는 두 서비스가 모두 제공되는 리전에서 정식 출시되었습니다.

네트워킹 및 보안

Amazon EKS를 사용하면 AWS 서비스 및 기술 파트너 솔루션의 고급 기능 및 통합을 통해 Kubernetes 클러스터에 대한 보안을 손쉽게 제공할 수 있습니다. 예를 들어 IAM은 세분화된 액세스 제어를 제공하고 Amazon VPC는 사용자의 Kubernetes 클러스터를 다른 고객과 분리합니다.

서비스 검색

AWS Cloud Map은 클라우드 리소스 검색 서비스입니다. Cloud Map을 사용하면 애플리케이션 리소스의 사용자 지정 이름을 정의하고 이 동적으로 변경되는 리소스의 업데이트된 위치를 유지할 수 있습니다. 웹 서비스에서 항상 가장 최신 리소스 위치를 검색할 수 있으므로 애플리케이션 가용성이 향상됩니다. Cloud Map은 Kubernetes 서비스가 실행하며 종료 시 제거하는 내부 서비스 위치를 Cloud Map 서비스 레지스트리에 자동으로 전파하는 오픈 소스 Kubernetes 커넥터인 external-dns와 호환됩니다. Cloud Map를 통해 Kubernetes 기반 서비스를 검색할 수 있으므로 Cloud Map을 모든 컨테이너 워크로드에 대한 통합 서비스 레지스트리로 사용할 수 있습니다.

서비스 메시

서비스 메시를 사용하면 애플리케이션에 있는 모든 마이크로서비스가 통신하는 방법을 표준화하여 복잡한 마이크로서비스 애플리케이션을 쉽게 구축하고 실행할 수 있습니다. AWS App Mesh를 사용하면 완벽한 가시성과 고가용성을 제공하는 애플리케이션을 손쉽게 구성할 수 있습니다. Kubernetes용 AWS App Mesh 컨트롤러를 사용하여 메시에 연결된 새로운 서비스를 생성하고 트래픽 라우팅을 정의하며 암호화와 같은 보안 기능을 구성할 수 있습니다. 또한 Kubernetes Pod를 AWS Cloud Map에 자동으로 등록하여 서비스를 검색할 수 있습니다. App Mesh는 지표, 로그 및 트레이스를 제공된 Envoy 부트스트랩 구성 내에 지정된 엔드포인트로 내보냅니다. App Mesh는 메시가 지원되는 마이크로서비스 간에 트래픽 라우팅, 회로 차단, 재시도 및 기타 제어를 구성하기 위한 API를 제공합니다. App Mesh mTLS는 서비스 간의 모든 요청을 암호화하는 데 도움이 되며 프라이빗 네트워크에서도 사용할 수 있습니다. 또한 허용된 서비스 간의 통신만 허용하는 인증 제어를 추가할 수도 있습니다.

VPC 네이티브 네트워킹

Amazon VPC에서 실행되는 EKS 클러스터를 통해 자체 VPC 보안 그룹과 네트워크 ACL을 사용할 수 있습니다. 컴퓨팅 리소스는 다른 고객과 공유되지 않습니다. 높은 수준의 격리를 제공하며, Amazon EKS를 사용해 매우 안전하고 안정적인 애플리케이션을 구축하는 데 도움이 됩니다. EKS는 Amazon VPC CNI를 사용하여 Kubernetes 파드가 VPC에서 IP 주소를 수신하도록 허용합니다.

Amazon EKS는 Project Calico 네트워크 정책 엔진과 연동하여 Kubernetes 워크로드에 대한 세분화된 네트워킹 정책을 제공합니다. 따라서 Kubernetes 네트워크 정책 API를 사용하여 서비스별로 액세스를 제어할 수 있습니다.

AWS IAM Authenticator

Amazon EKS는 Kubernetes RBAC(Kubernetes의 기본 역할 기반 액세스 제어 시스템)와 AWS IAM를 통합합니다. RBAC 역할을 각 IAM 엔터티에 직접 할당하여 Kubernetes 제어 플레인 노드에 대한 액세스 권한을 세분화하여 제어할 수 있습니다.

서비스 계정에 대한 IAM

Amazon EKS에서 Kubernetes 서비스 계정에 IAM 권한을 할당할 수 있습니다. IAM 역할은 다른 컨테이너식 서비스, 데이터베이스 및 보안 정보 같은 클러스터 외부의 AWS 리소스 또는 AWS 외부에서 실행되는 타사 서비스 및 애플리케이션에 대한 액세스를 제어할 수 있습니다. 이를 통해 여러 코로케이션 서비스를 포함하는 클러스터를 실행할 때 미세한 팟 수준 액세스 제어를 제공하고, 클러스터에 대한 비용 및 가용성을 쉽게 최적화할 수 있습니다. 

규정 준수

Amazon EKS는 규제 대상 애플리케이션 및 민감한 애플리케이션을 위한 여러 규정 준수 프로그램에 의해 인증을 받았습니다. Amazon EKS는 SOC, PCI, ISO, FedRAMP-Moderate, IRAP, C5, K-ISMS, ENS High, OSPAR, HITRUST CSF를 준수하며 HIPAA 적격 서비스입니다.

로드 밸런싱

Amazon EKS는 Application Load Balancer(ALB), Network Load Balancer(NLB) 및 Classic Load Balancer를 포함한 Elastic Load Balancing의 사용을 지원합니다.

표준 Kubernetes 클러스터 로드 밸런싱 또는 Kubernetes를 지원하는 모든 수신 컨트롤러를 Amazon EKS 클러스터에서 실행할 수 있습니다.

서버리스 컴퓨팅

EKS는 AWS Fargate에서 서버리스 컴퓨팅을 사용하여 Kubernetes 애플리케이션을 실행하도록 지원합니다. Fargate에서는 서버를 프로비저닝하고 관리할 필요가 없어 애플리케이션별로 리소스를 지정하고 관련 비용을 지불할 수 있으며, 애플리케이션을 격리하도록 설계되어 보안 성능을 향상합니다.

하이브리드 배포

AWS Outposts에서 EKS를 사용하여 온프레미스 시스템에 대한 매우 짧은 지연 시간을 필요로 하는 컨테이너식 애플리케이션을 실행할 수 있습니다. AWS Outposts는 AWS 인프라, AWS 서비스, API 및 도구를 거의 모든 연결된 사이트로 확장하는 완전관리형 서비스입니다. Outposts 기반 EKS를 사용하여 클라우드에서 컨테이너를 관리하는 것처럼 쉽게 온프레미스에서도 컨테이너를 관리할 수 있습니다.

AWS Local Zones 또는 AWS Wavelength에서 실행되는 노드를 EKS에 연결하면 엣지에서 더 많은 AWS 관리형 인프라를 선택할 수 있습니다.

Amazon EKS Distro를 사용하면 AWS 기반 EKS에 사용된 오픈 소스 Kubernetes 소프트웨어 배포를 패키징하여 온프레미스의 자체 인프라에서 사용할 수 있습니다. EKS Distro 클러스터는 자체 도구 또는 Amazon EKS Anywhere(2021년 제공 예정)를 통해 관리될 수 있습니다.

Amazon EKS Anywhere(2021년 제공 예정)는 자체 가상 머신(VM)과 베어 메탈 서버를 포함한 온프레미스 인프라에서 Kubernetes 클러스터(Amazon EKS Distro의 소프트웨어를 사용하여 구축)를 손쉽게 생성하고 운영할 수 있는 기능을 제공합니다. EKS Anywhere를 사용하면 Kubernetes 클러스터 관리를 위한 자체 도구를 구축하고 지원해야 하는 복잡성이 줄어듭니다. EKS Anywhere는 베어 메탈, vSphere 및 클라우드 가상 머신과 같은 인프라에서 클러스터의 생성, 관리 및 운영을 간소화하는 자동화 도구를 제공합니다. 이러한 자동화 도구에는 로깅, 모니터링, 네트워킹 및 스토리지에 대한 기본 구성과 함께 Kubernetes를 프로덕션에서 실행하는 데 필요한 고유한 도구 및 추가 구성 요소(예: 클러스터 설치 및 수명 주기 관리, 가관측성, 클러스터 백업 및 정책 관리)가 포함되어 있습니다.

로깅

Amazon EKS를 AWS CloudTrail과 통합하면 EKS 관리 작업의 감사 기록을 볼 수 있습니다. CloudTrail을 사용하여 Amazon EKS API에 대한 API 호출 내역을 볼 수 있습니다. 또한 Amazon EKS에서 Kubernetes 제어 플레인 로그를 Amazon CloudWatch로 보내 분석, 디버깅 및 감사에 활용할 수도 있습니다.

호환성 인증

Amazon EKS는 업스트림 Kubernetes를 실행하고 공인 Kubernetes 인증 서비스이므로 Kubernetes 커뮤니티의 기존 플러그인과 도구를 모두 사용할 수 있습니다. 온프레미스 데이터 센터에서 실행 중인지 퍼블릭 클라우드에서 실행 중인지에 상관없이, Amazon EKS에서 실행 중인 애플리케이션은 표준 Kubernetes 환경에서 실행 중인 애플리케이션과 완벽하게 호환됩니다. 즉, 코드를 수정하지 않고 표준 Kubernetes 애플리케이션을 Amazon EKS로 쉽게 마이그레이션할 수 있습니다. 

관리형 클러스터 업데이트

Amazon EKS를 사용하면 업데이트 프로세스를 관리할 필요 없이, 실행 중인 클러스터를 최신 Kubernetes 버전으로 쉽게 업데이트할 수 있습니다. 새 클러스터를 생성하거나 애플리케이션을 새 클러스터로 마이그레이션할 필요 없이 Kubernetes 버전 업데이트가 바로 이루어집니다. 

새로운 Kubernetes 버전은 Amazon EKS와 함께 사용할 수 있도록 릴리스되고 검증되었으므로, 이 안정적인 Kubernetes 버전을 언제든지 업데이트 프로세스의 일부로 지원할 예정입니다. 새로운 버전의 설치를 시작하고 SDK, CLI 또는 AWS 콘솔을 통해 진행 중인 업데이트의 상태에 대한 세부 정보를 얻을 수 있습니다.

고급 워크로드 지원

Amazon EKS는 GPU 지원 P2P3 EC2 인스턴스용으로 구성된 NVIDIA 드라이버를 포함하는 최적화 Amazon 머신 이미지(AMI)를 제공합니다. 이는 쉽게 Amazon EKS를 사용하여 ML(기계 학습), Kubeflow, DL(딥 러닝) 컨테이너, 고성능 컴퓨팅(HPC), 금융 분석 및 비디오 트랜스코딩 등 고급 컴퓨팅을 필요로 하는 워크로드를 실행할 수 있게 해 줍니다.

오픈 소스 도구와 작동

Amazon EKS는 Kubernetes 커뮤니티 도구와 완벽하게 호환되며 인기 있는 Kubernetes 추가 기능을 지원합니다. 여기에는 클러스터용 DNS 서비스를 생성하는 CoreDNS와 Amazon EKS에서 클러스터에 액세스하고 관리하기 위한 Kubernetes Dashboard 웹 기반 UI 및 kubectl 명령줄 도구가 포함됩니다.

자세한 내용은 Kubernetes 커뮤니티 도구 GitHub 페이지를 참조하십시오.

구축할 준비가 되셨습니까?
Amazon EKS 시작하기
추가 질문이 있으십니까?
문의처