Kubecost 설치 및 대시보드 액세스 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

Kubecost 설치 및 대시보드 액세스

Amazon EKS는 Pods, 노드, 네임스페이스 및 레이블을 포함한 Kubernetes 리소스별로 분류된 비용을 모니터링하는 데 사용할 수 있는 Kubecost를 지원합니다. 이 주제에서는 Kubecost 설치 및 Kubecost 대시보드 액세스를 다룹니다.

Amazon EKS는 클러스터 비용 가시성을 위해 AWS에 최적화된 Kubecost 번들을 제공합니다. 기존 AWS 지원 계약을 사용하여 지원을 받을 수 있습니다. Kubecost의 사용 가능한 버전에 대한 자세한 내용은 Kubecost에 대해 자세히 알아보기 섹션을 참조하세요.

Kubernetes 플랫폼 관리자 및 재무 리더는 Kubecost를 사용하여 Amazon EKS 청구 내역을 시각화하고, 비용을 할당하고, 애플리케이션 팀과 같은 조직 단위를 청구할 수 있습니다. 내부 팀과 사업부에 실제 AWS 청구서를 기반으로 투명하고 정확한 비용 데이터를 제공할 수 있습니다. 또한 인프라 환경 및 클러스터 내 사용 패턴을 기반으로 비용 최적화를 위한 맞춤형 권장 사항을 가져올 수도 있습니다.

참고

Kubecost v2에는 몇 가지 주요 새 기능이 도입되었습니다. Kubecost v2에 대해 자세히 알아보세요.

Kubecost에 대한 자세한 내용은 Kubecost 설명서를 참조하세요.

Amazon EKS 추가 기능을 사용한 Kubecost 설치

참고

Kubecost를 Amazon EKS 추가 기능으로 설치하고 Amazon EKS 최적화 Kubecost 번들을 사용하여 추가 비용 없이 추가 기능을 이용할 수 있습니다. 자세한 내용은 Kubecost v2 단원을 참조하십시오.

Amazon EKS 추가 기능은 Kubecost 업그레이드 및 라이선스 관리의 복잡성을 줄여줍니다. EKS 추가 기능은 AWS 마켓플레이스와 통합됩니다.

  1. AWS 마켓플레이스 콘솔에서 Kubecost를 확인하고 구독하세요.

  2. 클러스터의 이름과 리전을 확인합니다. EKS를 관리할 수 있는 충분한 권한으로 AWS CLI에 로그인했는지 확인합니다.

  3. Kubecost 추가 기능을 생성합니다.

    aws eks create-addon --addon-name kubecost_kubecost --cluster-name $YOUR_CLUSTER_NAME --region $AWS_REGION

Kubecost와 같은 EKS 추가 기능을 제거하는 방법을 알아보세요.

Helm을 사용한 Kubecost 설치

  • 기존 Amazon EKS 클러스터. 배포하려면 Amazon EKS 시작하기 섹션을 참조하세요. Fargate 노드에서는 Kubecost를 실행할 수 없으므로 클러스터에 Amazon EC2 노드가 있어야 합니다.

  • kubectl 명령줄 도구는 장치 또는 AWS CloudShell에 설치됩니다. 버전은 클러스터의 Kubernetes 버전과 동일하거나 최대 하나 이전 또는 이후의 마이너 버전일 수 있습니다. 예를 들어, 클러스터 버전이 1.29인 경우 kubectl 버전 1.28, 1.29 또는 1.30를 함께 사용할 수 있습니다. kubectl을 설치하거나 업그레이드하려면 kubectl 및 eksctl 설정 부분을 참조하세요.

  • 디바이스 또는 AWS CloudShell에 구성된 Helm 버전이 3.9.0 이상이여야 합니다. Helm을 설치 또는 업데이트하려면 Amazon EKS에서 Helm을 사용하여 애플리케이션 배포 부분을 참조하세요.

  • 클러스터가 버전 1.23 이상인 경우 클러스터에 Amazon EBS가 설치된 Store Kubernetes 볼륨이 있어야 합니다.

    1. 설치할 Kubecost의 버전을 결정합니다. Amazon ECR Public Gallery의 kubecost/cost-analyzer에서 사용 가능한 버전을 확인할 수 있습니다. Kubecost 버전과 Amazon EKS의 호환성에 대한 자세한 내용은 Kubecost 설명서의 환경 요구 사항을 참조하세요.

    2. 다음 명령으로 Kubecost를 설치합니다. kubecost-version을 ECR에서 검색한 값(예: 1.108.1)으로 변경합니다.

      helm upgrade -i kubecost oci://public.ecr.aws/kubecost/cost-analyzer --version kubecost-version \ --namespace kubecost --create-namespace \ -f https://raw.githubusercontent.com/kubecost/cost-analyzer-helm-chart/develop/cost-analyzer/values-eks-cost-monitoring.yaml

      Kubecost는 정기적으로 새 버전을 출시합니다. helm 업그레이드를 사용하여 해당 버전을 업데이트할 수 있습니다. 기본적으로 설치에는 로컬 Prometheus 서버와 kube-state-metrics가 포함됩니다. 설명서의 Amazon EKS 비용 모니터링과 통합에 따라 Prometheus용 Amazon 관리형 서비스를 사용하도록 배포를 사용자 지정할 수 있습니다. 구성 가능한 다른 모든 설정 목록은 GitHub의 샘플 구성 파일를 참조하세요.

      다음 명령을 사용하여 클러스터에서 Kubecost를 제거할 수 있습니다.

      helm uninstall kubecost --namespace kubecost kubectl delete ns kubecost

Kubecost 대시보드 액세스

  1. 필요한 Pods가 실행 중인지 확인합니다.

    kubectl get pods -n kubecost

    예제 출력은 다음과 같습니다.

    NAME READY STATUS RESTARTS AGE kubecost-cost-analyzer-b9788c99f-5vj5b 2/2 Running 0 3h27m kubecost-kube-state-metrics-99bb8c55b-bn2br 1/1 Running 0 3h27m kubecost-prometheus-server-7d9967bfc8-9c8p7 2/2 Running 0 3h27m
  2. 디바이스에서 포트 포워딩을 활성화하여 Kubecost 대시보드를 노출합니다.

    kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090

    또는 AWS 로드 밸런서 컨트롤러를 사용하여 Kubecost를 노출하고 인증, 권한 부여, 사용자 관리를 위해 Amazon Cognito를 사용할 수 있습니다. 자세한 내용은 How to use Application Load Balancer and Amazon Cognito to authenticate users for your Kubernetes web apps을 참조하세요.

  3. 이전 단계를 완료한 동일한 디바이스에서 웹 브라우저를 열고 다음 주소를 입력합니다.

    http://localhost:9090

    브라우저에 Kubecost 개요 페이지가 표시됩니다. Kubecost가 지표를 수집하는 데 5~10분 정도 걸릴 수 있습니다. 누적 클러스터 비용, 관련 Kubernetes 자산 비용, 월별 집계 비용을 포함한 Amazon EKS 지출을 확인할 수 있습니다.

    Kubecost 대시보드
  4. 클러스터 수준에서 비용을 추적하려면 청구할 Amazon EKS 리소스에 태그를 지정합니다. 자세한 내용은 리소스에 결제용 태깅 섹션을 참조하세요.

    • 비용 할당 - 지난 7일 동안 각 네임스페이스와 기타 차원에 대한 월별 Amazon EKS 비용 및 누적 비용을 확인합니다. 이는 애플리케이션의 어느 부분이 Amazon EKS 지출에 기여하는지 파악하는 데 유용합니다.

    • 자산 - Amazon EKS 리소스와 연결된 AWS 인프라 자산의 비용을 확인합니다.