사용량 관리 및 최적화
사용량 관리 및 최적화
기존 워크로드 사용량 예측 및 관리
주기별 사용량 증가 예측 및 관리
일반적으로 클라우드 사용량이 증가하면 비용도 함께 증가합니다.
특수한 경제 상황을 제외하면, 대부분의 비즈니스는 시간이 지남에 따라 성장하고 데이터가 지속적으로 축적되어, 클라우드 자원에 대한 수요도 증가하게 됩니다.
이러한 자원 요구를 적절히 관리하지 않을 경우, 비용이 통제되지 않고 증가할 가능성이 높습니다.
따라서 클라우드 사용량을 주기적으로 예측하고, 이에 따른 적절한 조치를 수행하는 것이 필요합니다.
검토 주기 정의
먼저 클라우드 자원의 검토 주기를 정의하고, 해당 주기에 따라 시간과 자원을 할당하여 비용 최적화를 수행합니다.
검토 주기를 설정할 때는 클라우드 자원의 할인 약정 주기를 참고할 수 있습니다.
예를 들어, Samsung Cloud Platform에서는 1년 또는 3년 단위의 약정 할인, Cost Savings, Planned Compute를 제공합니다.
이러한 약정의 만료일을 기준으로 3개월 또는 반기 단위의 자원 조정 주기를 설정하면, 자원 운영 계획 수립에 유리합니다.
또한 검토주기를 회사의 회계 기간과 일치시킬 경우, 조직별 성과 평가에도 효과적으로 활용할 수 있습니다.
검토 주기를 설정할 때는 소프트웨어 라이선스 계약, 운영 관리 계약 기간 등도 함께 고려해야 합니다.
예를 들어, 전체 자원은 12개월 주기로, 데이터 저장소는 6개월 주기로 검토하는 방식을 정할 수 있습니다.
사용량 증가 예측
클라우드 요금에 가장 큰 영향을 미치는 요소는 사용량의 증가입니다.
현재 운영 중인 클라우드 환경에 사용량 증가의 영향을 반영하여 자원을 조정해야 합니다.
다음과 같은 절차를 통해 예측을 수행할 수 있습니다.
1. 모든 지출 항목이 조직의 부서 및 프로세스에 적절히 분류되어 있는지 평가하고 필요 시 수정합니다.
2. 그룹별로 최근 3개월간의 평균 지출을 산출합니다.
3. 1년 전 동기 대비 평균 지출을 산출합니다.
4. 두 평균값을 비교하여 추세를 파악하고, 각 그룹의 성장률을 반영합니다.
5. 향후 계획을 반영하여 자원 수량 및 요금제를 조정합니다.
6. FinOps 담당자와 공유하고 의견을 조율합니다.
5번째 단계의 계획 반영 과정에서 새롭게 증가하거나 감소한 자원 사용량을 반영하여 요금제를 조정하고, 수량을 조정합니다.
이와 관련된 FinOps 비용 모델링은 III. FinOps 전략 수립 및 실행의 1.3 비용 모델링 에서 자세히 다룹니다.
새로운 서비스, 기능 및 구성 검토
Samsung Cloud Platform을 포함한 대부분의 클라우드 사업자는 지속적으로 새로운 기술과 서비스를 추가하고 있습니다.
이 중 일부는 신규 비즈니스 실험을 가능하게 하며, 일부는 기존 자원의 성능을 향상시키는 데 기여합니다.
워크로드를 비용 효율적으로 유지하기 위해서는 정기적으로 새로운 서비스, 기능, 구성 요소의 도입 가능성을 검토해야 합니다.
외부 영향에 따른 사용량 예측 및 관리
클라우드 사용량에 영향을 미치는 외부 요인을 분석하는 것도 중요합니다.
이를 위해서는 컴퓨팅 작업의 패턴과 특성을 이해하고, 응답 시간을 주요 성능 지표로 정의하여 수요 변동 여부를 판단합니다.
또한, 외부 영향의 예측 가능성, 반복성, 변경 속도 및 규모에 대한 분석도 필요합니다.
분석 기간은 계절성(Seasonality)을 고려할 수 있도록 충분한 기간(1년 이상)을 기준으로 설정합니다.
이러한 분석을 통해 예측된 영향에 따라 자원을 조정하고, 그에 따른 비용 효과를 평가할 수 있습니다.
워크로드 유형
분석 대상 시스템의 업무 유형을 파악합니다.
예를 들어, 전자상거래, 내부 업무 시스템, 기계 학습 서비스 등은 요구 성능과 자원 특성이 다르므로, 워크로드 분석을 통해 필요한 자원을 식별합니다.사용률과 성능 지표
자원 사용량의 변화를 분석하고, 최대/최소 사용 시 자원 조정 방안을 도출합니다.
이 때 응답 시간, 지연 시간 등의 성능 지표를 함께 활용합니다.요청 부하 유형
요청 부하의 트래픽 패턴을 분석하여 해당 워크로드가 데이터베이스 트랜잭션 중심인지, 콘텐츠 전송 중심인지에 따라 자원의 조정 방향을 결정합니다.
사용량 예측 및 자원 조정에 필요한 의사결정을 위해 아래의 작업을 수행할 수 있습니다.
Cloud Monitoring을 비롯한 모니터링 도구에서 추출한 로그 파일 및 모니터링 데이터를 사용하여 워크로드에 대한 통찰력을 확보합니다.
주기적 변경 사항에 대한 데이터를 얻고, 수요의 변동폭과 증감 추이에 대한 경향성도 파악합니다.수요에 영향을 줄 수 있는 부서와 협업하여 이벤트 발생 여부를 확인합니다.
자원 최적화
자원 유형, 크기, 수량 조정
자원 최적화는 비용 절감과 서비스 안정성이라는 두 가지 목표 사이에서 균형을 이루는 것이 핵심입니다.
자원의 크기와 수량을 최적화하는 리사이징 작업은 단순한 기술 조정이 아닌, 데이터 기반의 전략적 의사결정이 요구되며, 이를 위해서 검토해야 할 사항은 다음과 같습니다.
자원 속성 및 비용 고려
자원의 유형, 크기, 수량을 최적으로 선택하면 최소 비용으로 기술 요구 사항을 충족할 수 있습니다.
비용 최적화를 위해 리사이징을 수행할 경우, 워크로드에 포함된 모든 자원과 각 자원의 속성뿐 아니라, 조정 작업에 소요되는 인건비까지 종합적으로 고려해야 합니다.
리사이징에 소요되는 인건비가 절감 가능한 비용보다 높을 경우, 해당 작업은 정기적으로 반복하기보다는 서비스 변경이나 중단 시점에 일회성으로 수행하는 것이 바람직합니다.
자원의 크기를 조정하려면 현재 어떤 자원을 얼마나 사용하고 있는지에 대한 가시성을 확보해야 합니다.
이러한 가시성에는 CPU 사용률, 메모리 사용률, 네트워크 처리량, 디스크 사용률 등이 포함되며, 이 데이터를 기반으로 서버 타입 및 디스크 용량을 정의할 수 있습니다.자원 최적화를 위한 리사이징
리사이징은 단순히 비용 절감 목적으로만 수행해서는 안 되며, 서비스 운영에 부정적인 영향을 미치지 않도록 주의해야 합니다.
운영팀의 주요 목표는 서비스에 필요한 운영 용량을 안정적으로 유지하는 것입니다.
특히 상용 Application을 지원하는 자원의 크기를 조정하는 작업은 라이선스 문제 등으로 인해 복잡성이 높아, 신중한 접근이 필요합니다.
자원에는 비용이 낮은 것과 높은 것이 있으며, 비용이 높은 자원에 최적화 노력을 집중하는 것이 더 효율적일 수 있습니다.
앞서 언급한 바와 같이, 리사이징에 투입되는 인력 비용이 절감 가능한 자원 비용보다 클 경우, 해당 작업은 비효율적일 수 있습니다.
절감 가능 금액의 한계점을 고려하여 리사이징 여부를 결정하는 것이 바람직하며, 낮은 사양의 Virtual Server보다 높은 사양의 Database에 집중할 경우 더 큰 비용 절감 효과를 기대할 수 있습니다.데이터 기반 비용 최적화 전략
데이터 기반 리사이징은 Scale-up 방식의 용량 조정에 활용할 수 있으며, Scale-out 방식도 함께 검토할 수 있습니다.
이러한 방식은 컴퓨팅 Node를 확장하는 개념으로, 수동 조정과 자동 조정 전략을 모두 적용할 수 있습니다.
수동 조정의 예로는 Load Balancer에서 작동 중인 Virtual Server 수를 늘리거나, Kubernetes Cluster의 Node pool 또는 pod의 replica set 수를 조정하는 방식이 있습니다.
이러한 작업에 평균 CPU 사용률 등의 지표를 활용하면 자동화도 가능합니다.
최소 및 최대 작업 Node 수를 지정하여 워크로드 처리에 필요한 컴퓨팅 자원의 용량 범위를 설정하고, 지표에 따라 동적으로 용량을 조정함으로써 비용 최적화를 실현할 수 있습니다.
유휴 자원 폐기
클라우드에서 자원 최적화를 위해서 수행해야 하는 작업 중, 가장 중요하고 효과적인 작업이 유휴 자원 관리입니다.
필요에 의해 자원을 생성했지만, 시간이 지난 뒤 더 이상 사용하지 않지만, 삭제 또는 축소되지 않고 유지되는 유휴 자원이 있을 수 있습니다.
이러한 유휴 자원에 대한 조치는 클라우드 비용을 절감하는데 필수적이면서 가장 큰 효과를 거둘 수 있는 방안입니다.
유휴 자원 관리 절차
클라우드 환경에서는 시간이 지남에 따라 사용되지 않는 유휴 자원이 발생할 수 있습니다.
이러한 자원은 삭제되어야 하지만, 관리가 이루어지지 않을 경우 관리자의 부주의 또는 자원 관리 가시성 부족으로 인해 방치될 수 있습니다.
관리자가 직접 생성하지 않은 자원의 경우, 삭제 작업을 수행하기 어려울 수 있으며, 중요한 데이터가 포함되어 있거나 특정 목적을 위해 보존 중일 가능성도 존재합니다.
따라서 유휴 자원을 폐기하기 위해서는 자원의 사용 이력을 확인할 수 있는 방법과 폐기 절차가 필요합니다.유휴 자원 수명주기 관리
우선 자원의 수명주기와 관련한 태그를 관리해야 합니다.
수명주기 관점에서 해당 자원이 테스트를 위한 것인지, 테스트 완료 시점은 언제인지에 대한 정보가 자원에서 식별 되어야 합니다.
만약 만료 기간이 있는 라이선스를 사용하는 자원이라면, 해당 정보도 관리자가 식별할 수 있어야 합니다.
이러한 정보는 태그를 통해 구현할 수 있는데, 자원의 수명주기와 관련한 태그 정책을 수립하여 자원의 용도, 만료 기간 등을 정할 수 있습니다.
이후에는 자원 폐기를 위한 프로세스를 수립해야 하며, 모든 자원은 관련 부서 및 담당자 정보를 포함해야 합니다.
자원 폐기 전에는 이해관계자에게 사전 공지하고, 확인 절차를 통해 데이터 유실을 방지해야 합니다.
업무 중요도에 따라 자원이 관리되고 있다면, 중요도가 낮은 자원에 대해서는 자동 폐기 또는 삭제 자동화를 구현하는 것도 가능합니다.