예제로 Amazon EKS 배우기
예제로 Amazon EKS 배우기
개요
이 Amazon EKS 사용자 가이드에는 명령줄 또는 AWS Management Console에서 첫 EKS 클러스터를 만들기 위한 범용 절차와 모든 주요 Amazon EKS 구성 요소에 대한 견고한 참조가 포함되어 있습니다. 하지만 Amazon EKS 클러스터 관리자나 개발자라면 이 가이드 외부의 사이트에 있는 학습 경로를 따라 Amazon EKS에 대한 더 깊은 이해를 얻을 수 있어요. 이 사이트들은 다음에 도움을 줍니다.
- 특정 유형의 클러스터를 설정합니다. 특정 클러스터 유형은 워크로드 유형이나 보안 요구에 기반할 수 있어요. 예를 들어 배치, 머신 러닝, 컴퓨트 집약 워크로드를 실행하도록 클러스터를 조정하고 싶을 수 있습니다.
- 클러스터를 강화합니다. 관측성, 유연한 스토리지, 자동 확장, 특화 클러스터 네트워킹 같은 고급 기능을 클러스터에 추가할 수 있어요.
- 업데이트를 자동화합니다. GitOps 같은 기능을 사용해 Git 저장소의 구성 요소 변경에 따라 클러스터 인프라와 워크로드를 자동으로 프로비저닝하도록 설정할 수 있습니다.
- 고급 클러스터 설정 도구를 사용합니다.
eksctl이 클러스터를 빠르게 만드는 방법을 제공하지만, 더 복잡한 클러스터의 구성·업그레이드를 쉽게 해 주는 Terraform·CloudFormation 같은 다른 도구들도 있어요.
Amazon EKS 학습 경로를 시작하려면 이 페이지에 설명된 사이트 몇 곳을 방문하는 것을 권장합니다. 도중에 문제가 생기면 이를 해결하는 데 도움이 되는 리소스도 있어요. 예를 들어 Re:post Knowledge Center에서 Amazon EKS 관련 지원 문제를 지원 데이터베이스에서 검색할 수 있고, Amazon EKS Best Practices Guide는 프로덕션급 클러스터를 설정하는 최선의 방법에 대한 팁을 제공합니다.
출처: 문서
본문
Amazon EKS Workshop
Kubernetes와 컨테이너에 대한 기본 이해에서 시작해, Amazon EKS 워크숍은 클러스터 관리자를 Amazon EKS의 중요한 기능으로 안내하는 학습 플랫폼입니다. Amazon EKS 워크숍에 참여하는 방법은 다음과 같아요.
- Amazon EKS Basics: Introduction 페이지의 비디오를 시청해 Amazon EKS가 AWS 클라우드에서 Kubernetes 기능을 어떻게 구현하는지 배우세요. Kubernetes에 대한 더 기본적인 이해가 필요하다면 What is Kubernetes 비디오를 시청하세요.
- Amazon EKS Setup: AWS 계정이 있다면 Setup 섹션이 클러스터 생성용 CloudShell 환경을 설정하도록 도와줍니다. Amazon EKS 클러스터 생성에는 eksctl(간단한 클러스터 생성 명령줄)과 Terraform(더 infrastructure-as-code적인 접근) 중에서 선택할 수 있어요.
- Amazon EKS Getting started: Sample application 섹션에서 간단한 웹 스토어를 체험해 보세요. 다른 연습에서도 이를 계속 사용할 수 있어요. 이 섹션에서는 컨테이너 이미지 패키징과 Kubernetes Pods, Deployments, Services, StatefulSets, Namespaces로 마이크로서비스를 관리하는 방법도 배울 수 있습니다. 그리고 Kustomize를 사용해 Kubernetes 매니페스트 변경을 배포해 보세요.
- Amazon EKS Fundamentals: AWS Load Balancer Controller 같은 AWS 기능을 사용해 애플리케이션을 외부 세계에 노출하는 방법을 보여 줍니다. 스토리지의 경우 Amazon EBS를 블록 스토리지로, Amazon EFS를 파일 시스템 스토리지로, Amazon FSx for NetApp ONTAP을 사용해 AWS에서 ONTAP 파일 시스템을 관리하는 방법을 소개합니다. 노드 관리의 경우 Managed Node Groups 설정을 도와줍니다.
- Amazon EKS advanced features: Amazon EKS 워크숍에서 제공하는 더 고급 기능 실습에는 다음 설정이 포함됩니다.
- Autoscaling(자동 확장): 노드 자동 확장(Cluster Autoscaler 또는 Karpenter 사용)과 워크로드 자동 확장(Horizontal Pod Autoscaler와 Cluster Proportional Autoscaler 사용)을 포함합니다.
- Observability(관측성): Observability 실습 세트에서 Logging, OpenSearch, Container Insights on Amazon EKS, Kubecost를 사용한 Cost Visibility를 배웁니다.
- Security(보안): Security 실습 세트에서 Secrets Management, Amazon GuardDuty, Pod Security Standards, Kyverno 정책 관리를 탐구합니다.
- Networking(네트워킹): Amazon VPC CNI(네트워크 플러그인 지원)와 Amazon VPC Lattice(VPC·사용자 계정 간 클러스터 구성)를 포함한 Networking 실습에서 Amazon EKS 네트워킹 기능을 배웁니다.
- Automation(자동화): Automation 실습에서 GitOps 방식으로 클러스터를 관리하고, AWS Controllers for Kubernetes와 Crossplane 같은 프로젝트로 Amazon EKS 컨트롤 플레인을 관리하는 방법을 단계별로 배웁니다.
Amazon EKS 실습 클러스터 설정 튜토리얼
AWS Community 사이트의 Amazon EKS Cluster Setup 튜토리얼 세트는 특수 목적 Amazon EKS 클러스터를 만들고 다양한 방식으로 강화하는 데 도움을 줍니다. 튜토리얼은 세 가지 유형으로 나뉩니다.
클러스터 구축
이 튜토리얼들은 특수 용도로 사용할 클러스터를 구축하는 데 도움을 줍니다. 특수 용도에는 다음 실행 능력이 포함됩니다.
- IPv6 기반 전 세계적으로 확장 가능한 애플리케이션
- 비동기 배치 작업
- 트래픽이 많은 마이크로서비스
- Fargate에서 Karpenter로 자동 확장
- 금융 워크로드
- Windows Managed Node Groups
클러스터 강화
기존 클러스터가 있으면 특수 워크로드를 실행하고 클러스터를 강화하도록 확장·개선할 수 있어요. 이 튜토리얼에는 다음 방법이 있습니다.
- EFS CSI로 스토리지 솔루션 제공
- EBS CSI로 동적 데이터베이스 스토리지 제공
- AWS Load Balancer Controller로 IPv4 클러스터에 애플리케이션 노출
- AWS Load Balancer Controller로 IPv6 클러스터에 애플리케이션 노출
AWS 서비스 최적화
이 튜토리얼들로 클러스터를 AWS 서비스와 더 잘 통합할 수 있어요. 다음에 도움을 주는 튜토리얼이 포함됩니다.
- ExternalDNS로 마이크로서비스 DNS 레코드 관리
- CloudWatch로 애플리케이션 모니터링
- SQS와 EFS 스토리지로 비동기 작업 관리
- 워크로드에서 AWS Secrets Manager Secrets 사용
- Fargate, NGINX, ACM PCA로 mTLS 설정
Amazon EKS Samples
Amazon EKS Samples 저장소에는 Amazon EKS와 함께 사용할 매니페스트가 저장되어 있어요. 이 매니페스트로 Amazon EKS에서 다양한 종류의 애플리케이션을 시험하거나 특정 유형의 Amazon EKS 클러스터를 만들 수 있습니다. 샘플에는 다음 매니페스트가 포함됩니다.
- AWS Amazon EKS Fargate 클러스터 생성
- 기존 IAM 역할로 클러스터 생성
- 클러스터에 Ubuntu Managed Node Group 추가
- 볼륨 스냅샷으로 Pod 스토리지 백업·복원
- 여러 계정으로 PVC로 마운트된 EBS 볼륨 복구
- Classic Load Balancers로 NGINX Ingress Controller에 proxy protocol 활성화
- Fargate에서 AWS OpenSearch로 로깅 구성
- 웹 페더레이션 ID 제공자로 Python SDK 실행
- NFS CSI 컨트롤러에 샘플 앱 배포
- StatefulSets에 볼륨 스냅샷 사용
- 서로 다른 Availability Zone의 노드에 걸쳐 Pod 배포
이 샘플들은 학습·테스트용일 뿐이며 프로덕션에서 사용하기 위한 것이 아니라는 점을 기억하세요.
AWS Tutorials
AWS Tutorials 사이트는 Amazon EKS 튜토리얼 몇 개를 게시하지만, AWS 사이트(AWS Community 사이트 등)에 게시된 다른 튜토리얼을 찾는 검색 도구도 제공합니다. 이 사이트에 직접 게시된 Amazon EKS 튜토리얼은 다음과 같아요.
- Deploy a Container Web App on Amazon EKS
- Run Kubernetes clusters for less (Amazon EKS and Spot instances)
- How to cost optimize Jenkins jobs on Kubernetes
Developers Workshop
소프트웨어 개발자로서 Amazon EKS에서 실행할 애플리케이션을 만들거나 리팩토링하려는 경우 Amazon EKS Developers 워크숍이 좋은 시작점입니다. 이 워크숍은 컨테이너화된 애플리케이션 구축뿐 아니라 컨테이너를 컨테이너 레지스트리(ECR)로, 그리고 거기서 Amazon EKS 클러스터로 배포하는 데도 도움을 줍니다.
Amazon EKS Python Workshop으로 파이썬 애플리케이션을 리팩토링하는 과정을 진행한 다음 개발 환경을 설정해 애플리케이션 배포를 준비하세요. Containers, Kubernetes, Amazon EKS 섹션을 단계별로 진행해 컨테이너화된 애플리케이션을 해당 환경에서 실행할 준비를 하세요.
Terraform Workshop
eksctl은 클러스터 생성용 간단한 도구이지만, 더 복잡한 infrastructure-as-code 유형의 Amazon EKS 배포에는 Terraform이 인기 있는 Amazon EKS 클러스터 생성·관리 도구입니다. Terraform Amazon EKS Workshop은 Terraform으로 AWS VPC를 구축하고, Amazon EKS 클러스터를 만들고, 클러스터에 선택적 개선 사항을 추가하는 방법을 가르칩니다. 특히 프라이빗 Amazon EKS 클러스터를 만드는 섹션이 있어요.
AWS Amazon EKS Training
AWS는 Amazon EKS 학습을 위한 공식 교육을 제공합니다. Running Containers on Amazon Elastic Kubernetes Service라는 3일 교육 과정은 다음을 가르칩니다.
- Kubernetes와 Amazon EKS 기초
- Amazon EKS 클러스터 구축 방법
- AWS IAM과 Kubernetes RBAC 권한 부여로 Amazon EKS 보안
- GitOps 자동화 도구
- 모니터링 도구
- 비용·효율·복원력 개선 기법