FaaS(서비스로서의 기능)

클라우드 컴퓨팅 서비스 모델의 고유한 장점과 과제에 대해 알아보고, 다양한 애플리케이션 개발 및 배포 방법에 대한 FaaS의 적합성을 평가하세요.

FaaS 개요

  • FaaS는 클라우드 서비스 공급자(CSP)가 하드웨어 인프라, 미들웨어, 운영 체제, 심지어 애플리케이션까지 포함한 컴퓨팅 환경의 모든 측면을 소유하고 관리하는 클라우드 컴퓨팅 서비스의 한 유형입니다.

  • FaaS는 사용자가 유용한 작업을 하는 데 필요한 실행 또는 처리 시간에 대해서만 비용을 지불하기 때문에 활동의 짧은 버스트가 특징인 간헐적이거나 예측 불가능한 사용 모델에 경제적인 선택이 될 수 있습니다.

  • FaaS의 일반적인 용도에는 데이터 처리, 검증 및 정렬을 비롯하여 모바일 및 IoT 애플리케이션에 대한 백엔드 지원 등이 포함됩니다.

author-image

기준

FaaS란 무엇입니까?

IT 리더들이 인프라 관리에 대한 유연한 접근 방식의 편의성, 확장성 및 비용 장점을 수용함에 따라, 최근 몇 년 동안 다양한 유형의 클라우드 컴퓨팅 서비스가 인기를 얻고 있습니다.

클라우드 서비스 공급자(CSP)는 각각 다른 수준의 서비스를 제공하는 다양한 클라우드 서비스 모델로 대응했습니다. 가장 포괄적 제품 중 하나는 서비스로서의 기능(FaaS)입니다.

FaaS(Function-as-a-Service)는 클라우드 컴퓨팅의 한 유형으로, 개발자는 자체 인프라 유지보수 없이 애플리케이션 패키지를 기능으로 빌드, 실행, 관리할 수 있습니다. FaaS는 스테이트리스 컨테이너에서 실행되며, 이벤트 기반 컴퓨팅 모델을 사용하여 서버 측 로직과 상태를 관리합니다. 또한FaaS를 사용하여 서버리스 애플리케이션(Serverless Application)을 빌드할 수 있습니다.

고객은 FaaS 모델에서 클라우드에서 코드를 실행하고 CSP는 인프라에서 애플리케이션에 이르는 전체 백엔드 작업을 호스팅하고 관리합니다. 고객은 자신의 데이터와 자신이 수행하는 기능에 대해서만 책임을 집니다.

일반적으로 FaaS 고객은 FaaS의 "기능"을 실행하는 데 필요한 실제 런타임에 대한 비용만 지불합니다. 실행은 1초도 안 걸릴 수 있으며, FaaS 시스템은 다수의 인스턴스를 동시에 수용할 수 있도록 빠르게 확장할 수 있습니다. 한 기능 실행과 다음 기능 실행 사이의 유휴 시간에 대해 고객에게 부과되는 지속적인 비용이 없습니다.

이벤트 기반 요금제로 간헐적 또는 산발적으로 처리해야 하는 개발자에게 이 클라우드 서비스 모델은 경제적인 선택이 될 수 있습니다.

FaaS의 일반적인 용도에는 데이터 처리, 검증 및 정렬을 비롯하여 모바일 및 IoT 애플리케이션에 대한 백엔드 지원 등이 포함되어 있습니다.

서버에서 실행되는 "서버리스(Serverless) 컴퓨팅"

FaaS 모델은 클라이언트의 관점에서 "서버리스(Serverless)"라고 간주됩니다. 사용자에게는 불투명할 수 있는 클라우드 인프라, 플랫폼, 운영 체제 및 소프트웨어 애플리케이션을 CSP가 관리하기 때문입니다.

하지만 “서버리스 컴퓨팅(Serverless Computing)"이라는 명칭은 다소 잘못된 것입니다. FaaS 사용자가 하드웨어를 관리하거나 보지 않더라도 FaaS 모델은 서버에서 실행되기 때문입니다. CSP에서 하드웨어를 소유, 운영 및 관리하므로 고객은 자체 서버를 구매하거나 유지 관리하지 않고도 주문형 기능을 최대한 활용할 수 있습니다.

서버에서 실행되는 서버리스 컴퓨팅은 클라우드 컴퓨팅의 혁신적인 모델 중 하나로서, 개발자가 서버 관리에 신경 쓰지 않고 애플리케이션 코드에 집중할 수 있도록 합니다. 이 방식에서는 개발자는 서버를 구성하고 관리하는 데 시간을 들이지 않아도 되며, 컴퓨팅 리소스는 필요할 때 자동으로 확장되고 축소됩니다. 이는 개발자들에게 유연하고 빠른 서비스 제공을 가능케 하며, 효율적인 리소스 사용을 도모합니다.

'FaaS'에서 대문자 'S'의 주체가 되는 '서비스'는 클라우드 '서비스' 제공자에서와 마찬가지로 비즈니스 서비스입니다. 여기에서 서비스는 소비의 단위입니다. 서버 비용을 지불하는 것이 아니라 서버가 호스팅 하는 것에 대한 비용을 지불하는 것입니다."1

FaaS를 위한 인텔® 기술

대부분의 CSP의 FaaS 오퍼에서는 플랫폼 구성 요소가 상세하게 지정되지 않습니다. 일반적으로 사용자가 자신의 가상 시스템에 대해 특정 하드웨어 기술을 요청할 수 없습니다. 인텔® AVX-512 및 AVX2 가속기와 같은 인텔® 하드웨어의 특정 기능은 성능을 최적화하고 사용자 만족도를 높이는 데 도움이 됩니다. 이러한 이유로 일부 CSP는 인텔® 기술 기반 플랫폼에서 FaaS 서비스를 실행하는 것을 선호합니다.

소프트웨어 개발자가 FaaS 환경에서 인텔 기술 기반 가상 시스템을 지정할 수는 없지만 인텔® 최적화 코드 라이브러리에 대한 액세스를 CSP에 요청할 수 있습니다. 이러한 라이브러리 중 일부는 인텔® oneAPI 툴킷 제품군에서 사용할 수 있으며 복잡한 수학 루틴, 압축, 암호화 및 기타 컴퓨팅 집약적 작업을 가속화하는 성능 향상 코드를 포함하고 있습니다. 이러한 최적화는 사용자가 FaaS 구현에서 런타임과 비용을 절약하는 데 도움이 될 수 있습니다.

마이크로서비스란 무엇입니까?

마이크로서비스는 애플리케이션 아키텍처의 한 유형으로, 애플리케이션을 작은 독립적인 서비스 단위로 분리하여 구축하는 방법을 의미합니다. 각각의 마이크로서비스는 특정 기능을 수행하며, 자체적으로 독립적으로 배포되고 실행될 수 있습니다. 이러한 접근 방식은 애플리케이션을 여러 개의 작은 서비스로 분리함으로써 하나의 서비스가 실패하더라도 전체 애플리케이션은 계속 작동할 수 있도록 합니다.
이를 통해 마이크로서비스는 개발과 운영의 유연성과 효율성을 높혀줍니다.

마이크로서비스 기반 소프트웨어 개발 환경은 서비스 지향 아키텍처의 맥락에서 이뤄집니다. 복잡한 애플리케이션은 애플리케이션 프로그래밍 인터페이스(API)를 통해 느슨하게 통합된 개별 서비스 모음으로 구축되고 유지 관리됩니다. 서비스 지향 소프트웨어 애플리케이션 및 해당 구성 요소 마이크로서비스는 전체 애플리케이션을 중단하지 않고도 개별 서비스를 패치하거나 업그레이드할 수 있으므로 서비스 유지 관리 및 업그레이드가 더 쉽습니다.

많은 마이크로서비스 모듈은 FaaS 환경에서 효율적으로 개발 및 제공될 수 있습니다. 대부분의 경우 마이크로서비스는 컨테이너화되거나 분리되어져 더 큰 애플리케이션의 개별 부분에 대한 제어를 향상시킵니다.

서비스로서의 기능(FaaS)은 어떻게 작동합니까?

사용자의 관점에서 볼 때 서비스로서의 기능(FaaS)은 소프트웨어 개발 또는 배포를 위해 사전 구축된 환경입니다. 모든 하드웨어, 미들웨어 및 소프트웨어를 비롯한 모든 기술 스택은 CSP가 소유하고 관리합니다.

다른 클라우드 서비스 모델에서 사용자는 약정 기간 동안 특정 가상 시스템 또는 컨테이너에 대한 지속적인 액세스와 이들이 사용하는 리소스에 대해 비용을 지불합니다. 반면 FaaS 모델에서 고객은 기능을 생성하는 데 필요한 시간과 리소스에 대해서만 비용을 지불합니다.

예를 들어, 한 CSP의 요금 구조에서 기능의 기간과 리소스 배포는 가장 가까운 밀리초 단위로 반올림하여 "기가바이트 초" 단위로 측정됩니다.2

FaaS의 장점

FaaS(Function-as-a-Service)의 장점은 다음과 같습니다:

  • 자동 확장: 함수 기반의 실행 모델은 요청이 발생할 때만 활성화되므로 자동으로 확장되어 리소스의 효율적인 사용을 가능하게 합니다.
  • 빠른 개발과 배포: 개발자는 애플리케이션의 특정 기능을 각각의 함수로 개발하고, 각 함수를 독립적으로 배포할 수 있어 빠르고 유연한 애플리케이션 개발이 가능합니다.
  • 유연한 서비스 구성: 마이크로서비스 아키텍처와 유사하게 함수를 작은 단위로 구성하여 느슨한 결합을 지원하고, 각 함수를 독립적으로 업데이트할 수 있어 유연한 서비스 구성이 가능합니다.
  • 서버 관리 필요 없음: 서버리스(Serverless) 모델에서는 개발자가 서버 인프라를 관리할 필요가 없으므로 운영 부담이 줄어듭니다. CSP가 하드웨어에서 애플리케이션 소프트웨어 및 도구에 이르기까지 전체 기술 스택을 소유하고 관리하므로, 사용자는 자신의 데이터 및 기능만 관리하면 됩니다.
  • 비용 절감: FaaS 사용자는 이 유형의 클라우드 컴퓨팅을 다른 "서비스형" 모델과 차별화하는 종량제 요금 모델의 혜택을 누릴 수 있습니다. FaaS 환경에서는 기능이나 서비스가 활발히 실행되고 있는 시간에 대해서만 비용을 지불합니다. 이러한 활동 버스트는 종종 밀리초 단위로 측정됩니다. 함수가 실행되지 않는 경우 리소스가 사용되지 않으므로, 사용한 만큼만 비용을 지불하게 되어 비용 효율적입니다.
  • 높은 확장성: 함수 간 독립성과 자동 확장 기능으로 인해 높은 확장성을 가집니다.

이러한 장점들로 인해 FaaS는 클라우드 기반 애플리케이션 개발과 운영에 많은 가치를 제공하고 있습니다.

FaaS 과제

중단되지 않는 장기 워크로드의 경우, 다른 "서비스형" 모델이 FaaS보다 더 경제적일 수 있습니다. FaaS 사용량은 종종 밀리초 단위로 측정 및 지불되고, FaaS는 일반적인 IaaS 클라우드 서비스 보다 훨씬 비싸기 때문에, 지속적인 사용량은 엄청나게 비쌀 수 있습니다.

또한 개발 환경 구성이 사용자에게 불투명하기 때문에 FaaS 구현을 디버깅하기 어려울 수 있습니다. 광범위한 테스트가 필요할 경우, 사용자가 다양한 표준 생태계를 지정하고 제어할 수 있도록 다른 유형의 클라우드 컴퓨팅 모델이 선호됩니다. 하지만 소프트웨어 기술이 성숙하고 완전히 플랫폼 독립적인 경우 FaaS가 적합할 수 있습니다.

FaaS 사용 사례

온디맨드 기능은 FaaS 환경에 매우 적합한 전반적인 사용 모델입니다. 온디맨드 설정에서는 기능이 간헐적으로 신속하게 켜지고 꺼집니다. FaaS 사용자는 기능이 활성화되어 있는 시간에 대해서만 비용을 지불하므로 온디맨드 모델은 FaaS를 경제적으로 사용하는 사례입니다.

대화형 웹 사이트는 특히 백엔드 실행에서 온디맨드 사용 모델의 예입니다. 이 경우 FaaS는 최종 사용자가 웹사이트를 클릭하고 간단한 이벤트를 트리거 할 때만 활성화됩니다. 온라인 미디어 출판사 및 전자 상거래 사이트는 사용자가 예측할 수 없는 일정에 따라 사이트에 액세스하므로 유연성을 위해 FaaS 모델을 활용합니다. 예를 들어, 스트리밍 미디어 제공 회사는 사용자 메뉴 및 추천 영상을 CSP의 FaaS 플랜에 두고 기본 사이트를 관리할 수 있습니다.

데이터 처리 및 검증 작업은 FaaS 모델에 성공적으로 적용될 수 있습니다. 한 가지 사용 사례를 보면 분석을 위해 간헐적으로 센서 데이터를 클라우드에 보내는 사물 인터넷(IoT) 설치가 이에 해당됩니다.

개발 워크로드가 간헐적이라면 소프트웨어 개발을 FaaS 설정에서 배포할 수도 있습니다.

소프트웨어 배포는 마이크로서비스 제공을 위한 FaaS 모델에 적합할 수 있습니다. 서비스로서의 소프트웨어(SaaS) 제공업체 역시 새로운 사용자가 빠르게 추가되고 소프트웨어가 불규칙한 온&오프 반복 패턴으로 사용되는 스타트업 단계에서 FaaS 기반으로 자체 운영을 실행할 수도 있습니다.

클라우드 컴퓨팅 유형

클라우드 컴퓨팅 서비스는 공용 및 사설의 두 가지 기본 범주로 나눌 수 있습니다. 많은 조직에서 하이브리드 또는 멀티클라우드 구성으로 두 가지 클라우드 서비스 모델의 조합을 배포합니다.

공용 클라우드

공용 클라우드 서비스 모델에서 사용자는 CSP의 컴퓨팅, 스토리지 및 네트워크 리소스 사용에 대한 비용을 지불합니다. 공용 클라우드 서비스는 온디맨드 방식으로 제공되므로 초기 투자가 거의 없이 운영 비용으로 예산을 책정하여 신속하게 구축할 수 있습니다.

프라이빗 클라우드

이와 대조적으로 사설 클라우드 (Private Cloud) 는 조직의 자체 데이터 센터에서 실행되므로 하드웨어에 상당한 선행 투자가 이루어져야 하며 또한 지속적인 관리를 필요로 합니다. 장기적으로는 사설 클라우드가 경우에 따라 공용 클라우드 서비스 모델보다 더 경제적일 수 있습니다.

사설 클라우드의 장점은 지적 재산 및 규정 준수에 대한 로컬 제어가 가능하고 공용 클라우드로 쉽게 마이그레이션 되지 않을 수 있는 비즈니스 크리티컬 워크로드와 애플리케이션에 대한 지원이 가능하다는 것입니다.

하이브리드 클라우드

하이브리드 클라우드 를 사용하면 공용 및 사설 클라우드 서비스 모델의 이점을 모두 누릴 수 있습니다. 하이브리드 클라우드는 공용 클라우드와 사설 클라우드를 연결하므로, 조직은 두 환경 간에 애플리케이션과 데이터를 공유할 수 있습니다. 하이브리드 클라우드는 유연성, 확장성, 제어 및 잠재적 비용 절감을 제공합니다.

멀티클라우드

멀티클라우드 모델에서 조직은 여러 CSP의 클라우드 컴퓨팅 서비스를 활용합니다. 리소스 배포는 일반적으로 소프트웨어에서 관리됩니다. 멀티클라우드 전략은 조직이 단일 CSP의 서비스 오퍼 또는 기술 스택에 얽매이지 않고 워크로드를 균형화하고 비용을 최적화 할 수 있기 때문에 매우 유연합니다.

많은 조직에서 멀티클라우드 배포에서 각 CSP에 인텔® 기술 기반 인스턴스를 지정하여 서비스 공급자 사이의 일관성과 호환성을 구현하고 있습니다.

IaaS, PaaS 및 SaaS

많은 CSP에서 서버 하드웨어에 대한 단순 액세스부터 FaaS와 같은 전면적이고 포괄적인 옵션에 이르기까지 다양한 클라우드 컴퓨팅을 "서비스형" 으로 제공하고 있습니다.

IaaS(Infrastructure as a Service)

가장 친숙하고 기본적인 클라우드 컴퓨팅 서비스는 서비스로서의 인프라(Infrastructure as a Service)인 IaaS로 알려져 있습니다. IaaS 모델에서 CSP는 서버, 네트워킹 및 스토리지를 포함한 모두 하드웨어 소유하고 관리합니다. 이 모델에서 사용자는 모든 운영 체제 및 애플리케이션은 물론 조직의 데이터 및 기능에 대한 구독, 라이선스, 업그레이드 및 유지 관리를 포함한 소프트웨어 스택에 대한 책임이 있습니다.

IT 관리자는 관련 자본 비용으로 온프레미스 또는 같은 위치에 있는 하드웨어를 자체적으로 구매하고 유지 관리하는 대신 IaaS 서비스를 선호합니다. IaaS는 사용자의 요에 따라 확장할 수 있는 유연한 모델로, CSP의 비용은 조직의 예산에서 운영 비용으로 처리됩니다.

PaaS(Platform as a Service)

서비스로서의 플랫폼(Platform as a Service)을 의미하는 PaaS는 보다 완벽한 개발 및 배포 환경을 제공하는 클라우드 서비스 모델입니다. CSP의 PaaS 제품에는 일반적으로 IaaS의 모든 하드웨어 인프라와 소프트웨어 플랫폼을 구성하는 빌딩 블록(운영 체제, 미들웨어, 개발 도구, 일부 유형의 데이터 관리 및 분석 서비스)이 포함됩니다.

PaaS 사용자는 IaaS 배치에서와 마찬가지로 소프트웨어 스택의 애플리케이션 계층과 자신의 데이터 및 기능을 계속 관리합니다.

SaaS(Software as a Service)

SaaS 또는 서비스로서의 소프트웨어는 클라우드 컴퓨팅 서비스 모델 중 가장 널리 보급된 모델일 것입니다. IaaS를 거부하고 자체적으로 강력한 온프레미스 서버 인프라를 소유하고 관리하는 조직을 포함하여 거의 모든 조직에서 SaaS 배포의 예가 있습니다.

이메일, CRM, 생산성 제품군 및 파일 스토리지와 같은 일부 애플리케이션은 SaaS 모델에서 편리하게 제공됩니다. 조직은 일정 기간 라이선스 비용을 지불하고 애플리케이션은 클라우드에서 사용할 수 있습니다. 사용자와 IT 팀은 시간이 많이 소요되는 다운로드 및 설치를 할 필요가 없고 또한 업데이트를 관리할 필요가 없습니다.

FAQ

자주 묻는 질문

아니오, FaaS는 마이크로서비스가 아니지만 이 두 가지 클라우드 컴퓨팅 서비스 유형은 서로 관련되어 있습니다. 마이크로서비스는 FaaS 환경에서 개발하거나 배포할 수 있는 보다 복잡한 애플리케이션의 모듈식 부분입니다.

FaaS는 클라우드 서비스 공급자(CSP)가 하드웨어 인프라, 미들웨어, 운영 체제, 심지어 애플리케이션까지 포함한 컴퓨팅 환경의 모든 측면을 소유하고 관리하는 클라우드 컴퓨팅 서비스의 한 유형입니다.

한편, PaaS 및 FaaS 제품에는 운영 체제, 미들웨어, 일부 도구 및 서비스를 포함한 기본 소프트웨어 플랫폼과 하드웨어 인프라에 대한 액세스가 포함됩니다.

PaaS 사용자는 소프트웨어 스택의 애플리케이션 계층을 계속 관리해야 하는 반면 FaaS 사용자는 자신의 데이터와 기능에 대해서만 책임을 집니다.

네, FaaS 모델은 CSP가 전체 하드웨어 및 소프트웨어 스택을 관리하기 때문에 서버리스로 간주됩니다. FaaS는 사실 서버에서 운영되지만 하드웨어를 CSP가 소유하고 관리하므로 사용자의 관점에서 FaaS는 서버리스 컴퓨팅 경험입니다.