탄력적인 SAS Viya 운영을 통한 Microsoft Azure 클라우드 비용 절감

0

점점 더 많은 고객이 클라우드로 이동함에 따라 클라우드 인프라 비용이 중요한 요소가 되었습니다. 최초 클라우드 표준 가격 모델은 "종량제"(Pay-As-You-Go, 시간당 고정 가격) 모델이었습니다. 이 모델의 장점은 실제 사용량에 대해서만 비용을 지불하고 필요할 때 리소스를 축소할 수 있다는 것입니다.

하지만 운영환경(production environment)은 연중무휴 24시간 사용 가능한 상태를 유지해야 하는 경우가 많습니다. 예를 들어 전 세계 모든 사용자에게 분석 기능을 동시에 제공하는 경우입니다. 클라우드 공급자는 이제 이 사용 사례에 대해 "선불/고정 구독"(Prepaid/Fixed Subscriptions, 클라우드 리소스를 예약하는 방식)이라는 가격 모델을 제공합니다.

그런데 "종량제" 모델 사용 고객사도 SAS Viya 환경을 데모 또는 개발 사용하거나, 밤이나 주말/휴가 등의 정기 점검/반영 작업 외 다른 시간에도 가동을 원할 수도 있습니다. 또한 고객은 한 달 중에 며칠만 실행되는 배치 시나리오를 위한 환경을 유지하고자 할 수도 있습니다. 이러한 경우 리소스를 축소하고 비용을 줄이는 가장 좋은 방법은 무엇일까요?

이번 글에서는 SAS Viya가 실행 중인 전체 AKS (Azure Kubernetes Service) 클러스터를 중지하고 필요할 때 다시 시작할 수 있는 Microsoft Azure 기능을 살펴보겠습니다.

노드 자동 크기 조정 (Nodes autoscaling) 및 클러스터 중지 (Cluster stop)

SAS Viya 전용 클러스터가 있고 Kubernetes 클러스터에 노드 자동 크기 조정을 구성한 경우 이미 환경의 비용 효율성을 개선한 것입니다. 이러한 경우 SAS Viya 서비스를 중지하면 각 노드 풀의 최소 노드 수로 인프라가 자동으로 축소되어야 합니다. 예를 들어, viya4-iac GitHub 도구로 클러스터를 프로비저닝하고 기본 "노드 풀" 설정을 유지한 경우 :

모든 SAS Viya 서비스를 중지하면(특정 Kubernetes cronjob이 있음) Kubernetes는 Viya 포드에서 더 이상 리소스 요청이 없음을 감지하고 Cloud autoscaler를 실행하여 각 노드 풀의 노드 수가 구성된 min_node와 같아질 때까지 노드를 축소합니다. (이 경우 SAS Viya 노드 풀은 0).

여러 SAS 런타임(SAS 이벤트 스트림 프로세싱 또는 SAS 컴퓨팅 서버)도 자동 크기 조정을 통해 사용자의 요청에 해당하는 지정된 수의 포드에 필요한 노드 수만 유지하여 진정한 클라우드 탄력성(elasticity)을 제공할 수 있습니다. 예를 들어, 컴퓨팅 노드 범위를 2에서 10으로 설정하여 시스템이 2개의 노드로 시작하는 경우에도 추가 컨테이너 리소스 요청(CPU 및 메모리로 표현됨)에 해당하는 추가 SAS 컴퓨팅 세션으로 수요 증가를 수용할 수 있습니다. Kubernetes 클러스터 및 Azure 자동 크기 조정기를 수행합니다.

필요하지 않을 때 컴퓨팅 리소스를 축소하기 때문에 이미 많은 클라우드 비용을 절약할 수 있습니다. 그러나 자동 크기 조정이 활성화되고 모든 노드가 축소되더라도 Kubernetes 시스템 풀 및 관련 네트워크 구성 요소는 활성 상태를 유지하고 매시간 계속해서 비용을 생성합니다. 비활성 기간 동안 MS Azure에서 Kubernetes 클러스터 비용을 줄이는 더 완전한 방법은 "AKS 중지/시작" 기능을 사용하는 것입니다.

SAS Viya로 AKS 중지/시작 구현

이 기능을 사용하면 비디오를 "일시 중지"하고 나중에 다시 시작하는 것과 같습니다. 뒤에서 AKS가 복원력(resiliency)을 위해 이미 클러스터 상태를 백업하고 있습니다.

공식 Microsoft Azure 문서에 명시된 바와 같이 다음과 같은 몇 가지 제한 사항이 있습니다.

  • 기능은 Virtual Machine Scale Sets 지원 클러스터에서만 지원됩니다.
  • 중지된 AKS 클러스터의 클러스터 상태는 최대 12개월 동안 보존됩니다. 클러스터가 12개월 넘게 중지된 경우 클러스터 상태를 복구할 없습니다. 자세한 내용은  AKS 지원 정책 참조하세요.
  • 중지된 AKS 클러스터를 시작하거나 삭제할 수만 있습니다. 스케일링 또는 업그레이드와 같은 작업을 수행하려면 먼저 클러스터를 시작해야 합니다.
  • 프라이빗 클러스터에 연결된 고객이 프로비전한 PrivateEndpoints 중지된 AKS 클러스터를 시작할 삭제하고 다시 만들어야 합니다.
  • 중지 프로세스는 모든 노드, 독립 실행형 Pod(, Deployment, StatefulSet, DaemonSet, Job 등에 의해 관리되지 않는 Pod) 드레이닝하기 때문에 삭제됩니다.”

이러한 제한에도 불구하고 이것은 여전히 매우 편리한 기능이며 SAS 내부 테스트에 따르면 SAS Viya 환경에서 잘 작동하는 것으로 검증되었습니다. 다음은 쉽게 자동화할 수 있는 프로세스의 예입니다.

  • “az aks stop” 명령을 사용하여 Kubernetes 클러스터를 일시 중지합니다.
  • Jump 및 NFS (Network File System) 노드를 중지합니다.
  • SAS Viya를 사용하지 않은 기간 동안입니다.
  • Jump 및 NFS (Network File System) 노드를 가동합니다.
  • “az aks start” 명령을 사용하여 Kubernetes 클러스터를 다시 시작합니다.
  • Kubernetes의 cronjob이 SAS Viya를 가동합니다.
  • SAS Viya가 시작될 때 autoscaling의 자동 크기 조정이 Viya 노드 백업을 확장하도록 합니다.

SAS Viya의 메모리에 적재된 데이터가 저장되었다고 가정하면 추가 백업을 수행하거나 AKS 중지 명령을 실행하기 전에 SAS Viya 서비스를 중지할 필요가 없습니다.

클라우드 비용 절감을 위한 가장 효율적인 방법

Microsoft AKS 비용을 낮추기 위해 SAS 내부에서 여러 가지 방법을 실험했습니다만, AKS 중지 기능이 가장 간단하고 효율적인 방법인 것 같습니다. 이 기능은 Microsoft Azure의 고유 기능입니다. 다른 Kubernetes 관리형 서비스 (AWS Elastic Kubernetes Service 또는 GCP Google Kubernetes Engine)의 경우 마스터 노드/제어 평면을 클라우드 공급자(AWS 또는 GCP)가 직접 관리하기 때문에 이와 같이 전체 Kubernetes 클러스터를 실제로 중지할 수 없습니다. 클라우드 환경에서도 추가적으로 비용을 절감시켜 주는 AKS 중지 기능을 통해 SAS Viya의 활용에 있어 생산성과 효율성, 그리고 비용효율성을 한층 더 개선하시기 바랍니다.

 

Share

About Author


Principal Systems Engineer • Platform

Related Posts

Leave A Reply

Back to Top