클라우드 비용 최적화는 성능관리 도입부터
상태바
클라우드 비용 최적화는 성능관리 도입부터
  • 왕석균 상무
  • 승인 2020.04.22 16:28
  • 조회수 1129
  • 댓글 0
이 콘텐츠를 공유합니다

클라우드 도입으로 비용을 절감할 수 있을까?

클라우드 도입은 우리나라에서도 빠르게 확대되고 있다. 이용자들이 생각하는 클라우드 전환 시 장애요인은 데이터 보안, 비용 절감 불확실성, 통제 권한 양도 등이다. 데이터 보안은 클라우드 사업자의 기술 역량에 좌우된다. 비용 절감 불확실성은 서비스 이용자의 기술 역량에 달려있다.

클라우드 서비스 비용은 컴퓨팅 자원 사용량에 비례한다. 컴퓨팅 자원 사용량은 성능 관리에 따라 달라진다. 단위 업무 처리에 소요되는 컴퓨팅 자원을 최적화할 수 있다면, 사용량은 줄어들고 따라서 비용도 절감할 수 있다. 클라우드 서비스를 이용할 경우 성능관리 체계를 어떻게 갖추어야 하는지 정리해본다. 

[그림 1] 클라우드 도입을 저해하는 장애요인 / 출처 : AlphaWise & Morgan Stanley, 2011 – 미국, 유럽, 아시아 300명의 IT 의사결정자 대상 설문
[그림 1] 클라우드 도입을 저해하는 장애요인 / 출처 : AlphaWise & Morgan Stanley, 2011 – 미국, 유럽, 아시아 300명의 IT 의사결정자 대상 설문

 

온프레미스와 비교하여 클라우드의 비용 특성은?

시스템 용량이 업무 부하에 비해 부족하게 되면, 응답시간이 지연되거나 서비스가 중단되는 사태가 발생한다. 온프레미스 환경에서는 주기적으로 시스템 용량을 증설하는 Scale Up 방식으로 해결한다. 하지만, 예측한 업무 부하가 틀리게되면, 시스템 장애는 발생할 수 밖에 없다. 클라우드 환경에서는 자원 용량을 업무 부하에 따라 즉시 확보할 수 있다. 

[그림 2] IT비용 구조의 변화 / 출처: Hugos, M., & Hulitzky, D. (2011). Business in the Cloud
[그림 2] IT비용 구조의 변화 / 출처: Hugos, M., & Hulitzky, D. (2011). Business in the Cloud

클라우드 환경에서 IT자원 비용은 다음과 같은 특징이 있다.

•    IT비용구조 변화: IT예산을 고정비에서 변동비화하여, 최소 IT 투자비용으로 서비스 운영
•    무한한 컴퓨팅 자원: 프로세싱, 저장공간 및 애플리케이션 확장성이 높은 자원 이용 가능
•    단기 계약: 컴퓨팅 자원의 즉시 사용성 및 장기 계약의 틀에 얽매이지 않는 재량 제공
•    종량제 비용 구조: 초기 고정비가 없는 만큼 사용한 컴퓨팅 자원에 맞추어 사용료 지불

 

클라우드 비용 최적화를 위해서는 애플리케이션 성능관리를 갖추어야 한다

클라우드 서비스 비용 계약은 네 가지 유형이 있다(그림 3).

퍼블릭 클라우드를 이용하는 경우, 비용 효율성 측면에서 ‘On-Demand’ 유형이 바람직하다. 하지만, 코어 비즈니스의 경우에는 서비스 불안정성과 응답시간을 포함한 성능 이슈에 대한 우려 때문에 ‘Reserved’나 ‘Dedicated’ 형태로 계약하는 경우도 많다. ‘Reserved’ 또는 “Dedicated’ 방식으로 클라우드 서비스를 이용하게 되면 온프레미스 방식과 비교하여 총 비용은 증가하기도 한다. 

[그림 3] 클라우드 서비스 비용 유형
[그림 3] 클라우드 서비스 비용 유형

온디맨드 유형으로 계약하기 위해서는 비즈니스 패턴과 워크로드를 정확하게 예측해야 한다. 이를 토대로 서비스 수준을 정의할 수 있고 중요도에 따른 업무 우선 순위를 정의하여 자원을 효율적으로 할당할 수 있기 때문이다. 워크로드를 예측하고 통제할 수 있다면 다음 사항들을 성공적으로 처리할 수 있다.

-    사용자 및 서비스 처리 증가율 예측에 기반한 프로비저닝 계획 수립
-    온프레미스 시스템에서 처리 가능한 워크로드의 분배 원칙 및 기준 수립
-    사용하지 않는 서비스에 할당된 자원 해제
-    애플리케이션 버그에 의한 CPU, 스토리지, 네트워크 등 자원 낭비 요소를 예방하기 위한 성능 튜닝

클라우드 비용 최적화에 직접적인 영향을 미치는 것은 애플리케이션의 성능이다. 비즈니스 부하가 같다고 하더라도, 애플리케이션의 성능에 따라 시스템 부하가 달라진다. 단위 애플리케이션의 자원 사용량에 따라 확보해야 하는 시스템 용량이 달라지는 것이다. 

디지털 비즈니스에서는 고객과 시장 변화에 빠르게 대응하기 위하여 마이크로서비스아키텍처, 데브옵스 등을 도입하고 있다. 이런 경우에는 애플리케이션의 빌드와 배포 빈도가 더욱 잦게 된다. 따라서, 단위 애플리케이션의 성능은 전체 시스템 부하에 더 크게 영향을 미친다. 애플리케이션 성능을 상시적으로 모니터링할 수 있는 체계를 갖추어야 대응할 수 있다.

애플리케이션 성능 관리 체계는 업무 규모 변화, 시스템 부하 변화, 빌드와 배포 정책 등이 인프라 구성요소에 미치는 영향을 성능 측면에서, 측정, 분석, 피드백, 개선 등을 수행하기 위한 프로세스와 커뮤니케이션을 자동화한 것이다. 다음과 같은 효과를 얻을 수 있다.

-    개발 프로세스의 일부로 성능 품질관리 일상화
-    성능 이슈에 대한 조기 대응 체계 운영
-    성능관리 업무 프로세스 자동화
-    애플리케이션과 시스템을 통합한 분석플랫폼 구성으로 운영 환경 최적화
-    주기적인 성능측정을 통해 시스템 성능 및 장애 위험성 해소

[표 1] 클라우드 주요 성능 점검 항목
[표 1] 클라우드 주요 성능 점검 항목

 

성능관리 운영 프로세스와 주요 작업

전사적인 품질관리 범위와 절차를 개발 산출물 중심의 기능점검에서 성능 점검을 포함하는 프로세스로 확대 운영하는 것이 바람직하다. 애플리케이션 배포 시 중요도 및 특성에 따라 회귀적으로 반복 수행하여 성능 이슈의 선제적 해결 및 성능 변화 상황을 모니터링 한다. 이때 성능 점검을 독립적으로 담당하는 단위 조직으로 운영하는 방안도 바람직하다.

[그림 4] 성능관리 프로세스
[그림 4] 성능관리 프로세스

성능관리 체계 적용 초기에는 테스트 시나리오 및 스크립트 작성에 적잖은 수고와 시간이 필요하지만, 일정 기간 지속적으로 시행하면 Repository에 축적된 시나리오 및 스크립트의 재사용이 확대되고, 일상적인 자동화가 가능해 진다.

[표 2] 성능테스트 주요 작업
[표 2] 성능테스트 주요 작업

성능관리 체계 정착을 위하여 운영 환경에 애플리케이션 배포 시 품질 점검 프로세스의 일부로 일상적으로 수행하도록 하는 표준 관리 체계를 구축하는 것이 중요하다. 이를 위해서ApacheBench 나 JMeter 와 같은 오픈소스 기반의 자동화 도구를 사용하여 실제 서비스에서 예측 가능한 결과를 도출하는 과정을 지속적으로 반복 수행해야 한다. 

또한 애플리케이션 배포와 상관없이 애플리케이션 로직이 적용되기 전 순수한 인프라 수준에서 시작하여 작은 컴포넌트들, 솔루션, 그리고 애플리케이션 전체 순으로 성능 점검을 주기적으로 시행해 시스템 안정성을 확인해 나가야 한다. 빈번한 빌드/배포로 인한 시스템의 불안정성 해소를 위해 일상적인 성능관리 체계가 정착되고 운영되어야 클라우드 서비스의 비용 효율성을 달성할 수 있다.
 

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.