AWS

AWS

Amazon EKS에 Pinot 배포가 준비된 관리형 Kubernetes 클러스터를 프로비저닝하는 방법이에요. 필요한 CLI 도구를 설치하고 EKS 클러스터를 만든 뒤 kubectl로 연결하는 전체 과정을 안내해요.

출처: AWS

본문

이 페이지를 마치면 알게 되는 것 (Outcome)

Apache Pinot를 배포할 준비가 된 Amazon EKS 클러스터를 필수 도구와 함께 만들 수 있어요.

사전 요구 사항 (Prerequisites)

  • AWS 계정
  • 다음 CLI 도구 설치 (아래 단계 참조)

단계 (Steps)

1. 도구 설치

kubectl

brew install kubernetes-cli

확인:

kubectl version

Helm

brew install kubernetes-helm

확인:

helm version

AWS CLI

AWS CLI 설치 가이드를 따르거나 다음을 실행하세요:

curl "https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-macos.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

eksctl

brew tap weaveworks/tap
brew install weaveworks/tap/eksctl

2. AWS 자격 증명 구성

aws configure

💡 환경 변수 AWS_ACCESS_KEY_ID와 AWS_SECRET_ACCESS_KEY는 ~/.aws/credentials에 저장된 자격 증명을 재정의해요.

3. EKS 클러스터 생성

다음은 us-west-2 리전에서 t3.xlarge 인스턴스를 사용해 pinot-quickstart라는 단일 노드 클러스터를 만들어요:

EKS_CLUSTER_NAME=pinot-quickstart
eksctl create cluster \
    --name ${EKS_CLUSTER_NAME} \
    --version 1.16 \
    --region us-west-2 \
    --nodegroup-name standard-workers \
    --node-type t3.xlarge \
    --nodes 1 \
    --nodes-min 1 \
    --nodes-max 1

Kubernetes 1.23+에서는 영구 볼륨 프로비저닝을 위해 EBS CSI 드라이버를 활성화하세요:

eksctl utils associate-iam-oidc-provider --region=us-east-2 --cluster=pinot-quickstart --approve

eksctl create iamserviceaccount \
  --name ebs-csi-controller-sa \
  --namespace kube-system \
  --cluster pinot-quickstart \
  --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
  --approve \
  --role-only \
  --role-name AmazonEKS_EBS_CSI_DriverRole

eksctl create addon --name aws-ebs-csi-driver --cluster pinot-quickstart \
  --service-account-role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/AmazonEKS_EBS_CSI_DriverRole --force

클러스터 상태를 모니터링합니다:

EKS_CLUSTER_NAME=pinot-quickstart
aws eks describe-cluster --name ${EKS_CLUSTER_NAME} --region us-west-2

클러스터 상태가 ACTIVE가 될 때까지 기다리세요.

4. 클러스터에 연결

EKS_CLUSTER_NAME=pinot-quickstart
aws eks update-kubeconfig --name ${EKS_CLUSTER_NAME}

확인 (Verify)

kubectl get nodes

워커 노드가 나열되고 Ready 상태인 것을 볼 수 있을 거예요.

정리 (Cleaning up)

작업을 마친 뒤 클러스터를 삭제하려면:

EKS_CLUSTER_NAME=pinot-quickstart
aws eks delete-cluster --name ${EKS_CLUSTER_NAME}

다음 단계 (Next step)

클러스터가 준비됐어요. Kubernetes 설치로 계속 진행해 Pinot를 배포하세요.

더 알아보기 (Learn more)