지난 1년 동안 Azure와 Google Cloud를 운영하는 조직의 서버리스 채택은 각각 6%와 7% 증가했으며 AWS는 3% 증가율을 기록했습니다. 현재 AWS 고객의 70% 이상과 Google Cloud 고객의 60%가 하나 이상의 서버리스 솔루션을 사용하고 있으며, Azure가 49%로 그 뒤를 바짝 따르고 있습니다.
서버리스 컴퓨팅이 클라우드 기반 애플리케이션에 널리 사용되고 있다. 그러나 모든 경우에 적합한 것은 아니다. 오히려 서버리스가 비즈니스 가치를 제공하지 못하는 경우가 흔하다.
모니터링 및 통합 가시성 클라우드 서비스 제공업체 데이터독(Datadog)에서 최근 발표한 보고서에 따르면 서버리스 컴퓨팅이 그 어느 때보다 인기가 높다. 데이터독이 기업들의 서버리스 컴퓨팅 사용 현황을 분석한 결과, AWS 고객의 70% 이상, 구글 클라우드 고객의 60%, 마이크로소프트 애저 고객의 49%가 하나 이상의 서버리스 솔루션을 사용하고 있는 것으로 나타났다.
서버리스가 클라우드 개발의 핵심으로 자리 잡은 건 이미 오래다. 신규 및 마이그레이션된 클라우드 애플리케이션을 위한 최적의 개발 플랫폼을 선택하는 데 있어 중요한 요소로 손꼽힌다. 빠르고, 많은 인프라 계획이 필요하지 않으며(거의 필요하지 않다), 애플리케이션의 성능도 우수하다. 당연한 이야기 아닌가? 그런데 그렇지 않다.
서버리스 컴퓨팅은 인프라 관리를 줄이고 개발자의 생산성을 향상시킬 수 있다. 하지만 다른 기술과 마찬가지로 고려해야 할 단점 몇몇이 있다.
콜드 스타트 지연 시간
서버리스 컴퓨팅의 주요 우려 사항 중 하나는 콜드 스타트 지연 시간이다. 가상 머신이나 컨테이너가 사전 프로비저닝되는 기존의 클라우드 컴퓨팅 모델과 달리, 서버리스 기능들은 필요에 따라 인스턴스화(instantiated)되어야 한다. 이러한 특징이 동적 확장이 가능하게 하지만 콜드 스타트라는 지연이 발생한다. 이는 애플리케이션 응답 시간에 영향을 미칠 수 있다는 점에서 문제가 된다.
....
공급업체 종속
서버리스 애플리케이션이 클라우드 브랜드 간에 쉽게 이동할 수 있다고 믿는 개발자와 아키텍트들을 여전히 많다. 이는 착각이다. 컨테이너는 이동이 가능하지만 서버리스는 다르다. 서버리스 컴퓨팅 프레젠테이션에서 ‘벤더 종속을 피한다’는 표현이 자주 나왔겠지만, 곧이곧대로 믿어서는 곤란하다.
...
공급업체 종속
서버리스 애플리케이션이 클라우드 브랜드 간에 쉽게 이동할 수 있다고 믿는 개발자와 아키텍트들을 여전히 많다. 이는 착각이다. 컨테이너는 이동이 가능하지만 서버리스는 다르다. 서버리스 컴퓨팅 프레젠테이션에서 ‘벤더 종속을 피한다’는 표현이 자주 나왔겠지만, 곧이곧대로 믿어서는 곤란하다.
...
비용 관리
가장 큰 문제는 배포된 서버리스 시스템의 비용 관리다. 서버리스 컴퓨팅은 인프라를 관리하고 프로비저닝할 필요가 없으므로 비용을 절감할 수 있다.
그러나 많은 개발자와 아키텍트가 리소스를 과도하게 프로비저닝하는 경우가 흔하며, 이로 인해 비용을 효과적으로 모니터링하고 제어하는 것이 필수적이다. 아울러 서버리스 시스템은 리소스를 백그라운드에서 동적으로 할당하기 때문에 클라우드 리소스 비용을 직접 관리하기는 쉽지 않다. 또한 애플리케이션이 복잡해짐에 따라 프로세스 및 관련 리소스의 수가 증가하여 예기치 않은 과잉 지출이 발생할 수 있다.
... 후략 ...
서버리스 클라우드 비용 관리하기··· 7가지 체크포인트
... 생략 ...
제공업체의 요금 체계와 모델 알아보기
적절한 서버리스 컴퓨팅 솔루션을 선택하는 작업은 클라우드 서비스 제공업체(CSP)에 대한 탐색부터 시작된다. 여러 요금 체계 모델도 이해해야 한다. 주요 CSP는 각각 자체적인 요금 체계 모델로 서버리스 컴퓨팅을 제공한다. 예를 들어, 아마존 웹 서비스(Amazon Web Services)는 서버리스 컴퓨팅 서비스인 AWS람다(AWS Lambda)에 대한 계층화된 요금제를 발표했다. 이러한 뉴스가 나오면, 서버리스 요금 체계 모델을 살펴보라는 신호인 경우가 많다.
서버리스 프로젝트에 효율적인 코딩 관행 도입하기
클라우드 기술 스택에 서버리스 컴퓨팅을 도입하는 것은 조직의 코딩 관행을 검토할 수 있는 좋은 기회다. 서버리스 개발 프로젝트에 효율적인 코딩 사례를 도입하는 것은 서버리스 컴퓨팅 비용 최적화 이니셔티브의 일환으로 취할 수 있는 첫 번째이자 아주 중요한 단계 중 하나다. 서버리스 컴퓨팅 비용을 낮추는 데 도움이 되는 코딩 관행에는 다음이 포함된다.
• 코드 크기 최소화
• 최적의 라이브러리 사용
• 함수 성능 최적화
설계 단계부터 적정한 크기의 함수로 시작하기
오버 프로비저닝 메모리와 CPU 할당은 서버리스 컴퓨팅 비용을 증가시키는 2가지 원인이다. 클라우드 애플리케이션에서 서버리스 함수를 실행하면 CSP가 해당 함수의 구성에 따라 리소스를 할당한다. 그런 다음 청구 시기가 되면 CSP는 애플리케이션이 소비한 리소스의 양을 기준으로 요금을 청구한다.
설계 단계에서 추가 시간을 투자하여 각 서버리스 함수에 필요한 적절한 리소스 양을 결정하는 것이 합리적이며, 비용을 최소화할 수 있다.
필요한 경우에만 컴퓨팅 사용하기
클라우드 개발자가 필요할 때만 컴퓨팅을 사용하도록 교육해야 한다고 클라우드제로(CloudZero)는 조언하고 있다. 예를 들어 람다(Lambda) 함수 대신 계단 함수를 사용하여 API를 호출하면 계단 함수에 대한 비용만 지불하게 된다.
관련 서버리스 비용 KPI 설정 및 추적
주요 CSP와 클라우드 관리 플랫폼에는 어떤 형태로든 핵심 성과 지표(KPI) 모니터링 대시보드가 포함되어 있다. 데이터도그(Datadog)와 같은 통합 가시성 도구를 사용하여 KPI를 모니터링할 수도 있다. 서버리스 KPI 모니터링은 프로젝트 및 배포 계획에서 중요한 부분을 차지해야 한다.
서버리스 비용 관리 및 추적의 핵심은 다음과 같은 KPI를 수용하는 것이다.
• 실행당 비용. 이 지표는 단일 함수를 한 번 실행하는 평균 비용을 반영한다. 총 비용을 함수 실행 횟수로 나누어 실행당 비용을 계산한다. 이 KPI를 추적하면 어떤 함수가 실행 비용이 가장 비싼지, 클라우드 비용을 줄이기 위해 최적화가 필요한지 파악할 수 있으므로 필수적이다.
• 함수 실행 기간. 함수 실행 시간이 길수록 비용이 증가하므로 함수 실행 기간은 추적해야 할 중요한 KPI이다. 이 지표를 분석하면 실행하는 데 너무 오래 걸리는 함수를 식별하고 추가 비용 절감을 위해 최적화가 필요한지 파악하는 데 도움이 된다.
• 유휴 시간. 이는 추적할 필요가 없는 KPI처럼 보일 수 있다. 그러나 서버리스 함수가 입력 또는 출력을 기다리는 등 유용한 작업을 수행하지 않고 실행 중일 때에도 CSP는 여전히 요금을 청구한다. 서버리스 함수의 유휴 시간을 줄이는 것은 리소스 활용도를 최적화하는 동시에 클라우드 비용을 절감하기 위한 또 다른 중요한 전략이다.
메모리 사용량, CPU 사용량, 호출 횟수 및 오류율도 클라우드 비용 증가에 영향을 미치므로 이에 따라 모니터링해야 한다. 추세를 분석하고 프로젝트 보고에서 서버리스 클라우드 비용에 대해 논의할 시간을 확보하면 모두가 클라우드를 더 효율적으로 사용하는 방법을 배우는 데 도움이 될 수 있다.
비용 관리에 대한 종합적 접근
현재 조직의 클라우드 핀옵스(FinOps) 전문성과 준칙은 아직 미비할 가능성이 높다. 그렇다면 기술 스택에 서버리스 컴퓨팅을 추가하면 클라우드 지출 문제에 대한 새로운 문제가 발생할 수 있으므로 서버리스 클라우드 비용 관리에 대한 전면적인 접근 방식이 필수이다. 다음은 이를 위한 몇 가지 팁이다.
• 최소한 파일럿 서버리스 컴퓨팅 프로젝트 기간 동안에는 청구 및 사용량 보고서 분석을 2배로 늘려 클라우드 팀의 학습 곡선을 지원하라.
• 가능한 경우 비용 관리 관행을 자동화하되, 자동화를 일회성으로 ‘설정하고 잊어버리는’ 이벤트로 취급하면 안 된다. 첫 서버리스 프로젝트의 비용 관리는 개발자와 핀옵스(FinOps) 팀원 모두에게 학습 프로세스가 될 수밖에 없다. 반복적인 개선을 수용하라.
• 프로젝트 수명 주기 초기에 서버리스 컴퓨팅 프로젝트에 대한 비용 모니터링과 알림을 구현하라. AWS 코스트 익스플로러(AWS Cost Explorer)와 같은 도구를 사용하여 서버리스 비용을 직접 모니터링하고, 서버리스 비용이 예산을 초과할 때 알림을 설정할 수 있다. 이러한 알림을 반복적으로 조정하여 예기치 않은 사용량 급증이나 예상치 못한 비용 증가를 초래하는 애플리케이션 비효율성을 팀에서 인지할 수 있도록 하는 데 시간을 할애해야 한다.
전용 서버리스 비용 최적화 도구 사용 고려하기
서버리스 컴퓨팅에 대한 전반적인 전략의 일환으로 서버리스 비용 최적화 도구 업그레이드를 고려할 만하다. 새로운 종류의 클라우드 최적화 도구는 서버리스 비용 최적화에 중점을 두고 있다. 가령 엡사곤(Epsagon)과 IO파이프(IOpipe), 루미고(Lumigo) 등은 머신러닝 알고리즘을 사용하여 사용 패턴을 분석하고, 개발자가 비용을 줄일 수 있는 서버리스 컴퓨팅 애플리케이션의 추가적인 최적화를 권장한다.
... 후략...
참고 및 출처 :
https://www.ciokorea.com/news/305359
https://www.datadoghq.com/state-of-serverless/
https://www.cncf.io/reports/cncf-annual-survey-2022/
https://www.ciokorea.com/news/287791
운영 장비 문제때문에 상위 클라우드에 종속되는 문제가
더 심해지고 있죠
일반 회사가 엔비디아 H100, A100을 사서 쓰기엔 좀 ㅠㅠ
국내에서도 AI반도체 업체도 활발히 하고 있으니
시간이 좀 필요한 문제인것도 같습니다
다만, 국내에서는 네이버에서 클라우드까지 서비스하다보니
데이터 보안꺼리는 국내 기업이나 단체는 네이버쪽도 많이
보시더라구요