블로그

클라우드 크론: 서비스로서의 기능을 사용하여 비용 제어

로리 맥비티 썸네일
로리 맥비티
2019년 2월 11일 게시

서비스로서의 기능(FaaS)은 다양한 운영 및 개발 맥락에서 빠르게 활용되고 있습니다.

클라우드 컴퓨팅의 떠오르는 신예가 API, IoT, 모바일 앱과 함께 언급되는 경우가 많지만, 이 기술은 개발 외부에서도 상당히 활용되고 있습니다. The New Stack의 " 서버리스 가이드 " 보고서에서 우리는 서버리스의 기술적 사용 사례가 다음과 같은 강력한 사용 범위에 걸쳐 있다는 것을 발견했습니다.

서버리스의 기술적 사용 사례 

  • 73% HTTP REST API 및 웹 앱
  • 68% 일괄 작업 또는 예약된 작업 
  • 60% 비즈니스 로직
  • 34% 지속적인 통합 파이프라인

예상대로 애플리케이션이 가장 많았으며, 응답자의 약 4분의 3이 REST API와 웹 애플리케이션에 서버리스를 활용했습니다. 하지만 그 이후로는 더 흥미로운 일이 일어납니다. 응답자의 절반 이상은 일괄 작업과 예약된 작업, 모호한 "비즈니스 로직"이 사용 사례로 가장 많이 언급되었습니다.

"예약된 작업" 분야에는 클라우드 기능을 사용하여 클라우드 자산을 관리하는 것이 포함됩니다. 클라우드와 컨테이너가 기업에 제공하는 기능 중 하나는 리소스 사용을 최적화하는 수단입니다. 일반적으로 우리는 이를 확장성 측면에서 생각합니다. 특히 컨테이너와 마이크로서비스와 결합될 때 그렇습니다. 확장이 필요한 애플리케이션 부분만 확장하면 컴퓨팅 리소스(따라서 비용)를 절약할 수 있습니다.

하지만 그 방정식의 반대편은 사용되지 않을 때 리소스를 종료할 수 있는 기능입니다. 서비스로서의 기능과 서버리스(아니요, 이 둘은 반드시 같은 것은 아닙니다)의 매력 중 일부는 진정한 유틸리티 가격 책정 모델입니다. 실제로는 사용한 만큼만 비용을 지불하면 됩니다. 이상적으로 서버리스/FaaS 환경에는 유휴 리소스가 없기 때문에 그에 대한 비용을 지불하지 않아도 됩니다. 그러나 클라우드에서는 앱이나 서비스를 실행하는 리소스와 동일한 비용으로 유휴 리소스에 대한 비용을 지불하게 될 수 있습니다. 사소한 문제지만, 애플리케이션 다운타임이 길다면 문제가 커질 수 있습니다.

클라우드 기능이 도움이 될 수 있는 부분은 다음과 같습니다. 실행 중인 클라우드의 서비스 기능을 활용하면 사용하지 않을 때 인스턴스를 종료하고 나중에 다시 시작하는 작업을 예약할 수 있습니다. 이는 잘 정의된 근무일에만 사용되는 애플리케이션처럼 상당히 정적인 일정을 가정합니다. 이런 애플리케이션은 종종 직원들이 낮과 주중에만 사용하는 전통적인 "비즈니스" 애플리케이션입니다. 주말에 비즈니스 앱을 구성하는 인스턴스를 종료하면 시간이 지남에 따라 상당한 비용을 절감할 수 있습니다. 

클라우드 공급업체의 서비스 기능을 활용하면 밤새도록 그리고 주말 동안 해당 애플리케이션을 "워밍업" 상태로 유지하는 데 드는 비용을 절감할 수 있는 방법을 제공할 수 있습니다. 하루 12시간 일하더라도, 다른 12시간 동안 일을 멈추면 비용을 절반으로 줄일 수 있습니다.

제가 보기에 cron의 흐린 버전 같은 것을 구현하는 방법에 대해 궁금하다면 다음 리소스를 확인해보세요.