맨위로가기

서비스형 함수

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

서비스형 함수(FaaS)는 사용하지 않을 때는 지원 인프라의 전원을 끄고 요금이 발생하지 않도록 하는 "온디맨드" 기능을 통해 일괄 처리, 스트림 처리, ETL, IoT 서비스, 모바일 및 웹 애플리케이션 등 다양한 분야에서 활용된다. FaaS는 기존 애플리케이션의 API 생성에도 사용된다.

FaaS 아키텍처의 안티 패턴으로는 함수가 지나치게 세분화되어 발생하는 "모래알 안티 패턴"이 있으며, 이는 통신 오버헤드 증가, 운영 복잡성 증가, 응집력 감소로 이어진다. FaaS는 특정 클라우드 제공 업체에 종속될 수 있으며, 육각형 아키텍처를 통해 이식성을 높일 수 있다.

PaaS와 비교했을 때, FaaS는 서버 프로세스를 끊임없이 실행할 필요가 없어 더 높은 확장성과 낮은 비용을 제공하지만, 초기 요청 처리 시간이 더 오래 걸릴 수 있다.

더 읽어볼만한 페이지

  • 서비스형 - 서비스형 게임
    서비스형 게임은 게임을 지속적인 서비스로 제공하는 비즈니스 모델로, MMO 구독 모델에서 시작하여 모바일 게임 시장과 함께 확산되었지만, Pay-to-win 논란, 뽑기 시스템의 도박성 등 법적, 윤리적 문제점도 제기되고 있다.
  • 서비스형 - 클라우드 데이터베이스
    클라우드 데이터베이스는 클라우드 컴퓨팅 환경에서 제공되는 데이터베이스 서비스로, 가상 머신 이미지 방식과 서비스형 데이터베이스 모델로 나뉘며, SQL/NoSQL 데이터베이스를 지원하고 확장성, 고가용성 등의 특징을 가진다.
  • 클라우드 플랫폼 - 마이크로소프트 애저
    마이크로소프트 애저는 전 세계 데이터 센터를 통해 600개 이상의 서비스를 제공하는 마이크로소프트의 클라우드 컴퓨팅 플랫폼으로, 다양한 컴퓨팅, 데이터베이스, 스토리지, AI, IoT 기능과 개발자 지원 서비스를 제공하지만 복잡한 가격 모델과 서비스 장애 및 보안 문제가 우려된다.
  • 클라우드 플랫폼 - 헤로쿠
    헤로쿠는 James Lindenbaum, Adam Wiggins, Orion Henry에 의해 개발되어 세일즈포스닷컴에 인수된 클라우드 플랫폼 서비스이며, 다양한 프로그래밍 언어와 데이터베이스를 지원하고 여러 서비스를 제공하며, 보안 침해와 무료 플랜 중단, 플랫폼 재구축을 겪었다.
서비스형 함수
개요
유형클라우드 컴퓨팅 서비스
종류서버리스 컴퓨팅
설명서버 관리를 추상화하고 이벤트에 의해 트리거되는 함수 실행을 제공하는 클라우드 컴퓨팅 서비스
관련된 개념마이크로서비스, 클라우드 네이티브 애플리케이션, DevOps
특징
주요 특징서버 관리 추상화
이벤트 기반 트리거
사용량 기반 요금
자동 확장
장점개발 생산성 향상
운영 비용 절감
확장성 및 가용성 향상
단점콜드 스타트
디버깅 및 모니터링의 복잡성
벤더 종속성
기술적 측면
실행 모델이벤트 기반
프로그래밍 모델함수형 프로그래밍
지원 언어자바
파이썬
Node.js
Go
C#
서비스 제공업체
주요 제공업체AWS Lambda
Google Cloud Functions
Azure Functions
IBM Cloud Functions
Alibaba Cloud Function Compute
Netlify Functions
Vercel
활용 사례
일반적인 활용 사례웹 애플리케이션 백엔드
모바일 애플리케이션 백엔드
데이터 처리 및 분석
실시간 스트리밍 처리
챗봇
IoT (사물 인터넷) 애플리케이션
추가 정보
참고 자료마틴 파울러의 "서버리스 아키텍처" (외부 링크)
PiCloud 서버리스 컴퓨팅 플랫폼 출시 (TechCrunch 기사) (외부 링크)
AWS Lambda 출시 (Amazon Web Services 릴리스 정보) (외부 링크)

2. 사용 사례

FaaS는 사용하지 않을 때는 지원 인프라의 전원을 끄고 요금이 발생하지 않도록 하는 "온디맨드" 기능과 관련이 있다. FaaS는 일괄 처리, 스트림 처리, 추출-변환-적재(ETL), 사물 인터넷(IoT) 서비스, 모바일 앱리케이션 및 웹 애플리케이션 등 다양한 분야에서 활용될 수 있다.[4]

2. 1. 데이터 처리

FaaS는 일괄 처리, 스트림 처리, ETL 등의 데이터 처리 작업에 적합하다.[4]

2. 2. IoT, 모바일 및 웹 애플리케이션

사물 인터넷(IoT) 서비스, 모바일 앱리케이션 및 웹 애플리케이션 개발에도 FaaS가 활용될 수 있다.[4]

2. 3. API 생성

FaaS는 기존 애플리케이션의 기능을 변경하지 않고도 API를 빠르게 생성하는 데 사용될 수 있다.[4]

3. 안티 패턴

FaaS(서비스형 함수) 아키텍처에서 흔히 나타나는 안티 패턴으로 마크 리차즈가 명명한 "모래알 안티 패턴"이 있다.[1]

3. 1. 모래알 안티 패턴

모래알 안티 패턴은 서비스형 함수(FaaS) 아키텍처에서 흔히 나타나는 안티 패턴 중 하나로, 소프트웨어 아키텍트 마크 리차즈가 명명했다. 이 안티 패턴은 함수가 지나치게 세분화되어 사소한 작업이나 과도하게 특정한 작업만 수행할 때 발생한다.

모듈성은 FaaS의 주요 장점이지만, 극심한 분할은 다음과 같은 문제를 야기할 수 있다.

  • 통신 오버헤드 증가: 지나치게 세분화된 함수는 다른 함수 또는 서비스와 빈번하게 상호 작용해야 하는 경우가 많아 대기 시간이 길어진다.
  • 운영 복잡성 증가: 지나치게 많은 수의 함수는 관리 및 운영을 어렵게 만든다.
  • 응집력 감소: 함수가 너무 작게 쪼개지면 전체 시스템의 응집력이 떨어져 유지보수가 어려워진다.


이러한 문제로 인해 시스템이 긴밀하게 결합될 수 있다.

모래알 안티 패턴을 피하려면, 함수가 의미 있는 비즈니스 로직을 캡슐화하고 세분성과 응집력 사이의 균형을 유지해야 한다.

4. 이식성 문제

서비스형 함수 워크로드는 공급 업체와의 긴밀한 통합으로 인한 서비스 종속성 때문에 마이그레이션이 어려울 수 있다.[1]

4. 1. 해결 방안

육각형 아키텍처 같은 방법을 통해 워크로드의 이식성을 높일 수 있다.

5. PaaS와의 비교

서비스형 플랫폼(PaaS)과 FaaS는 모두 개발자로부터 서버를 숨긴다는 공통점을 가지고 있지만, PaaS는 서버 프로세스를 항상 실행하는 반면 FaaS는 필요할 때만 실행하여 비용은 절감되지만 초기 요청 처리 시간이 길어질 수 있다는 차이점이 있다.[7][8]

5. 1. 실행 방식

서비스형 플랫폼(PaaS) 애플리케이션 호스팅 서비스는 개발자로부터 "서버"를 숨긴다는 점에서 FaaS와 유사하지만, 일반적으로 외부 요청을 수신하는 서버 프로세스를 적어도 하나 이상 항상 실행한다.[7]

반면, FaaS는 서버 프로세스를 끊임없이 실행할 필요가 없다. 초기 요청 처리는 애플리케이션 호스팅 플랫폼보다 시간이 더 오래 걸릴 수 있지만(최대 수 초[8]), 캐싱을 통해 후속 요청은 수 밀리초 내에 처리할 수 있다. 개발자는 함수 실행 시간에 대해서만 비용을 지불하므로(프로세스 유휴 시간 없음), 더 높은 확장성으로 더 낮은 비용을 달성할 수 있다(지연 시간 증가의 대가로).

5. 2. 확장성

서비스형 플랫폼(PaaS) 애플리케이션 호스팅 서비스는 개발자로부터 "서버"를 숨긴다는 점에서 FaaS와 유사하다. 하지만 이러한 호스팅 서비스는 일반적으로 외부 요청을 수신하는 서버 프로세스를 적어도 하나 이상 항상 실행한다. 확장성은 더 많은 서버 프로세스를 부팅하여 달성되며, 개발자는 이에 대한 비용을 직접 지불한다. 결과적으로 개발자는 확장성을 직접 확인해야 한다.[7]

반면, FaaS는 서버 프로세스를 끊임없이 실행할 필요가 없다. 초기 요청 처리에는 애플리케이션 호스팅 플랫폼보다 시간이 더 오래 걸릴 수 있지만(최대 수 초[8]), 캐싱을 통해 후속 요청은 수 밀리초 내에 처리될 수 있다. 개발자는 함수 실행 시간에 대해서만 비용을 지불하므로(프로세스 유휴 시간 없음), 더 높은 확장성과 더 낮은 비용을 달성할 수 있다(지연 시간 증가의 대가로).

5. 3. 비용

서비스형 플랫폼(PaaS) 애플리케이션 호스팅 서비스는 개발자로부터 "서버"를 숨긴다는 점에서 FaaS와 유사하다. 하지만 이러한 호스팅 서비스는 일반적으로 외부 요청을 수신하는 서버 프로세스를 적어도 하나 이상 항상 실행하며, 확장성은 더 많은 서버 프로세스를 부팅하여 달성된다. 개발자는 이에 대한 비용을 직접 지불한다.[7]

반면, FaaS는 서버 프로세스를 끊임없이 실행할 필요가 없다. 개발자는 함수 실행 시간에 대해서만 비용을 지불하므로(프로세스 유휴 시간 없음), 더 높은 확장성으로 더 낮은 비용을 달성할 수 있다(지연 시간 증가의 대가로).

5. 4. 지연 시간

서비스형 플랫폼(PaaS) 애플리케이션 호스팅 서비스는 개발자로부터 "서버"를 숨긴다는 점에서 FaaS와 유사하다. 하지만 이러한 호스팅 서비스는 일반적으로 외부 요청을 수신하는 서버 프로세스를 적어도 하나 이상 항상 실행한다. 반면, FaaS는 서버 프로세스를 끊임없이 실행할 필요가 없다.[7] 초기 요청 처리에는 애플리케이션 호스팅 플랫폼보다 시간이 더 오래 걸릴 수 있지만(최대 수 초[8]), 캐싱을 통해 후속 요청은 수 밀리초 내에 처리될 수 있다.

참조

[1] 웹사이트 Serverless Architectures http://martinfowler.[...] 2016-08-04
[2] 뉴스 PiCloud Launches Serverless Computing Platform To The Public https://techcrunch.c[...]
[3] 웹사이트 Release: AWS Lambda on 2014-11-13 https://aws.amazon.c[...] 2017-02-26
[4] 웹사이트 AWS Lambda – Serverless Compute - Amazon Web Services https://aws.amazon.c[...] 2018-05-04
[5] 서적 Microservices AntiPatterns and Pitfalls O'Reilly
[6] 서적 Serverless Architectures on AWS Manning
[7] 웹사이트 FaaS, PaaS, and the Benefits of the Serverless Architecture https://www.infoq.co[...] InfoQ 2016-06-25
[8] 웹사이트 Dealing with cold starts in AWS Lambda https://medium.com/t[...] 2018-04-17
[9] 웹인용 Serverless Architectures http://martinfowler.[...] 2018-01-26
[10] 뉴스 PiCloud Launches Serverless Computing Platform To The Public https://techcrunch.c[...]
[11] 웹인용 Release: AWS Lambda on 2014-11-13 https://aws.amazon.c[...] 2017-02-26



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com