서비스형 기능(FaaS)이란?

FaaS는 서버리스 백엔드 서비스로, 개발자가 특정한 이벤트에 대응해서 실행할 수 있는 모듈식 코드 조각을 즉석에서 작성할 수 있게 합니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • FaaS의 정의
  • FaaS의 장단점 살펴보기
  • 대규모 에지 네트워크가 FaaS 애플리케이션 성능에 필수적인 이유 설명

글 링크 복사

서비스형 기능이란?

서비스형 기능(FaaS)은 에지에서 모듈식 코드를 실행하는 서버리스 방식입니다. FaaS를 사용하면 개발자가 즉석에서 코드를 작성하고 업데이트한 다음 사용자가 웹 애플리케이션의 요소를 클릭하는 등의 이벤트에 대한 응답으로 실행할 수 있습니다. 이를 통해 코드를 쉽게 확장할 수 있으며 마이크로서비스를 구현하는 비용 효율적인 방법입니다.

마이크로서비스란?

웹 애플리케이션이 시각 예술 작품이라면 마이크로서비스 아키텍처를 사용하는 것은 모자이크 타일 모음으로 예술 작품을 만드는 것과 같습니다. 예술가는 한 번에 하나의 타일을 쉽게 추가, 교체, 복구할 수 있습니다. 모놀리식 아키텍처는 캔버스 한 장에 전체 작품을 그리는 것과 같습니다.

마이크로서비스 아키텍처와 모놀리식 아키텍처의 비교

모듈식 구성 요소 집합으로 애플리케이션을 구축하는 이러한 접근 방식을 마이크로서비스 아키텍처라고 합니다. 애플리케이션을 마이크로서비스로 나누는 것은 코드베이스에 쉽게 구현할 수 있는 작은 코드를 만들고 수정할 수 있다는 점에서 개발자에게 매력적입니다. 이는 모든 코드가 하나의 큰 시스템에 통합되어 있는 모놀리식 아키텍처와 대조적입니다. 대규모 모놀리식 시스템에서는 애플리케이션을 조금만 변경해도 많은 배포 프로세스가 필요합니다. FaaS를 이용하면 이러한 배포 복잡성이 제거됩니다.

FaaS와 같은 서버리스 코드를 사용하면 웹 개발자는 애플리케이션 코드 작성에 집중하고 서버리스 공급자는 서버 할당 및 백엔드 서비스를 처리할 수 있습니다.

FaaS 사용의 이점은?

향상된 개발자 속도

FaaS를 이용하면 개발자는 애플리케이션 로직을 작성하는 데 더 많은 시간을 할애하고 서버와 배포에 대해 우려하는 시간을 줄일 수 있습니다. 이는 일반적으로 개발 기간이 훨씬 더 빨라진다는 것을 의미합니다.

기본 제공 확장성

FaaS 코드는 본질적으로 확장 가능하므로 개발자는 트래픽이 많거나 사용량이 많을 때를 대비하여 비상 계획을 마련하지 않아도 됩니다. 서버리스 공급자가 확장 문제를 모두 처리합니다.

비용 효율성

기존 클라우드 공급자와는 달리, 서버리스 FaaS 공급자는 유휴 계산 시간에 대해 고객에게 요금을 부과하지 않습니다. 따라서 고객은 사용한 만큼의 계산 시간에 대해서만 지급하고 클라우드 리소스를 과도하게 프로비저닝하는 데 비용을 낭비할 필요가 없습니다.

FaaS의 단점은?

시스템 제어 감소

타사에서 인프라의 일부를 관리하게 하면 전체 시스템을 파악하기 어렵고 디버깅 문제가 추가됩니다.

테스트에 필요한 복잡성 증가

FaaS 코드를 로컬 테스트 환경에 통합하는 것은 매우 어려울 수 있으므로 애플리케이션을 철저히 테스트하려면 더욱 집중적인 작업을 해야 할 수 있습니다.

FaaS를 시작하는 방법

개발자는 웹 애플리케이션에 FaaS 기능을 사용하려면 서버리스 공급자와의 관계를 형성해야 합니다.FaaS 통합은 일부 애플리케이션 코드가 에지에서 제공된다는 것을 의미하므로 에지 서버의 가용성과 지리적 분포가 중요한 고려 사항이 됩니다.이탈리아의 사용자가 과부하가 걸린 브라질의 데이터 센터에서 제공하는 FaaS 에지 코드에 의존하는 사이트에 접속하는 경우, 지연이 발생하여 높은 이탈률로 이어질 수 있습니다.Cloudflare Workers는 285여 개의 도시에 데이터 센터를 보유한 Cloudflare의 전역 네트워크를 활용하는 FaaS 솔루션으로, 인기가 좋습니다.