클라우드 애플리케이션의 경제성
CSP는 기존 배포에서 사용자를 끌어들이기 위해 안간힘을 쓰고 있습니다. 퍼블릭 IaaS 클라우드 가격은 서비스를 출시한 이후로 꾸준히, 가파르게 하락하고 있습니다. 평균적으로 대부분의 주요 CSP 가격이 2013년부터 매년 20-30% 하락했습니다.
그러나 이러한 가격 하락에도 불구하고 클라우드를 도입할 때 여전히 신중을 기해야 합니다. 클라우드의 비용 혜택을 최대한 얻으려면 사용 현황을 이해하고, 예산을 짜고, 계획을 세우고, 모니터링하고, 신중하게 분석해야 합니다. 또한 CSP가 리소스를 패키징하는 방법의 표준이 아직 없고 항상 동일한 가격 책정 모델을 따르는 것도 아니기 때문에 각자 사용 사례에 맞는 CSP를 선택하는 것도 쉬운 일이 아닙니다.
가격 책정 모델
클라우드 공급자는 일반적으로 다음 세 가지 기준 중 하나에 따라 리소스 요금을 청구합니다.
- 시간 기준: 리소스가 사용자에게 프로비저닝된 시간을 기준으로 요금이 청구됩니다. 예를 들어 가상 머신이 IaaS 클라우드에서 실행되는 시간/일/월/연 수에 따라 요금이 청구됩니다. 요금 청구 기간의 세분성은 클라우드 공급자마다 다릅니다. 예를 들어 Amazon은 비례 배분이 아닌 방식으로 사용자에게 시간당 요금을 청구합니다.
- 용량 기준: 사용자가 사용한 리소스의 양에 따라 요금이 청구됩니다. 클라우드 스토리지 시스템에서 인기 있는 청구 모델입니다. 예를 들어 사용자가 Azure Blob 스토리지 같은 클라우드 개체 스토리지 시스템에 1기가바이트를 저장하면 그에 대한 요금이 부과됩니다.
- 성능 기준: 사용자가 더 비싼 요금을 지불하면 더 높은 리소스 성능 수준을 선택할 수 있도록 요금제를 운영하는 클라우드 공급자가 많습니다. 가상 머신의 경우 더 많은 CPU, 더 많은 메모리, 더 많은 디스크 용량을 갖춘 더 크고 더 강력한 머신을 시간당 더 빠른 속도로 프로비저닝할 수 있습니다.
이러한 요금 청구 기준에 따라 CSP는 다음과 같은 일반적인 가격 책정 모델 중 하나를 사용합니다.
- 주문형 및 종량제 가격 책정: 장기적으로 사용할 경우 일반적으로 가장 비용이 많이 드는 가격 책정 모델입니다. 매우 짧은 사용 기간(일반적으로 분 단위 또는 시간 단위로 과금)의 요금이 부과됩니다. 이 모델의 장점은 장기 계약을 맺을 필요가 없으므로 현재 수요에 따라 유연하게 스케일 인/아웃할 수 있다는 것입니다. 일반적이지는 않지만, 수요가 많은 시간대에는 가격을 높이고 수요가 적은 시간대에는 가격을 내리는 CSP도 있습니다. 클라우드를 이제 막 시작하는 클라우드 사용자뿐 아니라 서비스 공급자에게도 훌륭한 모델입니다.
- 예약 인스턴스 및 구독 기반 가격 책정: 사용자는 시간당 또는 분당 요금 대신 매우 긴 기간(주 단위 또는 월 단위) 동안 요금을 선결제하고 리소스를 예약할 수 있습니다. 이 모델은 가격 할인을 많이 받을 수 있지만(20-50%) 약정을 길게 맺어야 합니다. 예약 가격 책정 모델 내에서 결제 체계는 선결제부터 계약상 의무적인 정기 결제까지 다양할 수 있습니다.
- 스폿 가격 책정: 스폿 가격 책정은 CSP가 사용률이 극도로 저조한 용량을 처리하기 위해 주문형 리소스보다 매우 저렴한 가격으로 제공하는 모델입니다. 가격은 사용자가 리소스 요금으로 지불할 의사가 있는 최대 금액을 입찰하는 사용자 경매로 결정됩니다. 가장 큰 단점은 스폿 가격이 실제 입찰 가격보다 비싸지면 언제든지 리소스가 종료될 수 있다는 것입니다. 스폿 리소스는 추측으로 실행해도 되는 중요하지 않은 단기 실행 작업에 적합합니다.
일반적으로 예약 인스턴스를 사용하여 시스템의 기본 요구 사항을 충족해야 합니다. 애플리케이션 수명의 80% 동안은 애플리케이션에 인스턴스 2개가 필요하고, 수명의 15% 동안은 인스턴스 3개가 필요하고, 수명의 5% 동안은 인스턴스 4개가 필요한 애플리케이션이 있다고 할 때, 대부분은 애플리케이션의 수명 동안 2개 인스턴스를 예약하고 주문형 또는 스폿 인스턴스를 사용하여 스케일 아웃할 것입니다. 앞서 언급했듯이, 주문형 인스턴스는 애플리케이션이 업무상 중요한 경우이거나 갑작스러운 종료 위험이 주문형 가격과 현재 스폿 가격의 차이를 상쇄하는 경우에만 스케일링 아웃하여 선택해야 합니다. 이러한 결정은 종종 비즈니스 사례와 관련이 있습니다.
비용을 최적화하는 방법
비용 효율적인 방법으로 클라우드를 사용하려면 기업에서는 배포, 모니터링 및 사용량을 시각화할 리소스를 선택하는 완성도 높은 프로세스를 개발해야 하며, 낭비 요소를 찾아 사용률을 최적화할 수 있는 명확한 메커니즘이 필요합니다.
그림 11: 비용 최적화 프로세스
비용 요구 사항을 고려하기 전에, 조직에서는 재고 관리, 교통으로 인한 오버헤드, 자재 취급 등의 물리적 제약 조건을 처리하는 동시에 직원 수 등의 고정 리소스를 감안할 때 특정 기간 내에 처리할 수 있는 작업의 양을 계획해야 합니다. IT 리소스의 프로비저닝은 조직의 실제 용량을 충족하거나 초과하도록 설계되어야 합니다. 이것이 매우 중요한 이유는, 클라우드에서 제공하는 탄력성은 용량이 추가로 필요할 때 개발 팀에서 자신의 결정이 비용에 미치는 영향을 고려하지 않고 편하게 리소스를 추가하려는 유혹에 빠지기 때문입니다.
클라우드 비용을 줄이기 위한 첫 번째 단계는 리소스 종류를 애플리케이션의 실제 요구 사항과 일치시키는 것입니다. 이는 다른 메모리 구성 또는 코어 수를 가진 VM 중에서 선택하는 것을 의미할 수 있습니다. 이 작업을 간단하게 처리하는 방법은 없으며, 여러 리소스 종류를 사용하여 애플리케이션을 테스트하고 벤치마킹해야 합니다.
애플리케이션이 좀 더 비싼 리소스 클래스에서 보다 나은 성능을 발휘하더라도 비용 증가에 비례해서 성능이 향상되는지 확인해야 합니다. 예를 들어 기본보다 7.5배 비싼 VM을 사용하여 애플리케이션 성능이 1.2배 향상된다면 기본 리소스를 수평으로 스케일 아웃하여 성능을 높이는 것이 더 합리적일 것입니다.
사용되는 다양한 리소스를 모니터링하는 모니터링 및 시각화 시스템을 구축하는 것이 중요합니다. 모니터링 시스템은 과부하 또는 유휴 패턴이 발견되면 그에 대응하여 스케일링 이벤트를 트리거하도록 설계해야 합니다. 인프라 팀이 스케일 업 또는 아웃할 때는 공격적으로 하면서 스케일 다운 또는 스케일 인할 때는 보수적인 모습을 보이는 경우가 자주 있습니다. 이 방식은 리소스 프로비저닝의 측면에서 더 많은 비용이 들기는 하지만, 이론적으로는 항상 피크 용량에 근접한 상태로 서비스를 운영하는 것보다 높은 서비스 품질을 제공합니다.
즉, 조직에서는 거의 사용되지 않는 리소스를 스케일 다운하고 종료해야 한다는 것을 종종 간과합니다. 애플리케이션의 여러 구성 요소를 실행할 계획을 세울 때, 애플리케이션의 예상 사용 기간을 기준으로 사용률을 여러 갈래로 범주화해야 합니다. 예를 들어 야간 또는 주간 단위로 짧은 시간 동안 실행되는 작업은 연중무휴 리소스를 사용하지 않아야 합니다. 또한 모니터링 시스템에서 특정 규칙에 따라 유휴 리소스에 플래그를 지정하고 종료해야 합니다.
리소스에 태그를 지정하는 일은 비용 최적화에서 중요한 기술입니다. 태그 지정은 모니터링 및 분석 도구에서 식별할 수 있도록 리소스에 레이블을 할당하는 프로세스입니다. 또한 태그를 지정하면 리소스, 청구 경고 및 특정 스케일링 정책에 대한 액세스 제어 목록을 포함하여 태그별로 사용자 지정 규칙을 정의할 수 있습니다. 일반적으로 사용되는 태그는 특정 리소스의 소유자(사용자 또는 그룹), 리소스가 소속된 환경(예: 프로덕션, 백업, 준비 및 테스트), 요금 결제를 담당하는 비용 센터 등을 지정합니다. 이렇게 하면 지출을 분석할 때 특정 애플리케이션뿐 아니라 특정 개발 또는 테스트 팀을 기반으로 하는 그룹화된 보기를 생성할 수 있습니다.