Azure Functions란?

Azure Functions란?

Azure Functions는 서버리스 솔루션이에요. 적은 코드, 적은 인프라, 적은 비용으로 견고한 앱을 만들 수 있게 도와주죠. 서버를 배포하고 유지하느라 고민하는 대신, 클라우드 인프라가 애플리케이션을 계속 돌리는 데 필요한 최신 리소스를 모두 제공해 줘요.

우리는 가장 생산성이 높은 언어로 가장 중요한 코드에만 집중하면 되고, 나머지는 Azure Functions가 처리해요. 지원 언어 목록은 Azure Functions에서 지원하는 언어 문서에서 확인할 수 있어요.

출처: 공식문서 - Azure Functions Overview

시나리오

Functions는 이벤트 중심의 트리거와 바인딩 세트를 제공해요. 추가 코드를 작성하지 않고도 함수를 다른 서비스와 연결해 주죠. 흔히 쓰는 통합 시나리오를 표로 보면 다음과 같아요.

하고 싶은 일 처리 방식
파일 업로드 처리 blob 스토리지에서 파일이 업로드되거나 변경되면 코드 실행
실시간 데이터 처리 이벤트·IoT 소스 스트림의 데이터를 저장으로 가는途中에 캡처·변환
AI 추론 실행 큐에서 텍스트를 꺼내 다양한 AI 서비스에 넘겨 분석·분류
예약 작업 실행 미리 정의된 시간 간격으로 데이터 정리 코드 실행
확장 가능한 웹 API 구축 HTTP 트리거를 이용해 웹 애플리케이션용 REST 엔드포인트 집합 구현
서버리스 워크플로 구축 Durable Functions로 일련의 함수에서 이벤트 중심 워크플로 생성
DB 변경에 응답 데이터베이스에서 문서가 생성·수정될 때 사용자 지정 로직 실행
신뢰할 수 있는 메시지 시스템 구축 Azure Queue Storage, Service Bus, Event Hubs로 메시지 큐 처리

이런 시나리오 덕분에 현대적 아키텍처 패턴으로 이벤트 중심 시스템을 만들 수 있어요. 자세한 내용은 Azure Functions 시나리오 문서를 참고하세요.

개발 라이프사이클

Functions는 앱 개발의 모든 단계를 지원해요.

  1. 코드 작성: C#, Java, JavaScript, PowerShell, Python, Go로 작성하거나, Rust 같은 언어는 사용자 지정 핸들러로 처리해요.
  2. 로컬 개발·디버그: Visual Studio, Visual Studio Code, Maven 등으로 개발해요.
  3. 배포: CLI, CI/CD 파이프라인 또는 IDE로 Azure에 배포해요.
  4. 모니터링: 내장된 Azure Monitor·Application Insights 통합으로 성능을 모니터링하고 문제를 진단해요.

호스팅 옵션

Functions는 비즈니스 요구와 워크로드에 맞는 다양한 호스팅 옵션을 제공해요.

호스팅 옵션 설명
Flex Consumption 플랜 권장. 빠른 이벤트 중심 확장, 가상 네트워크 통합, 종량제 과금
Premium 플랜 가장 빠른 응답을 위한 항상 켜진 인스턴스, 무제한 실행 시간, 가상 네트워크 통합
Dedicated 플랜 예측 가능한 확장과 비용으로 기존 App Service 플랜에서 함수 실행
Container Apps Azure Container Apps에서 마이크로서비스 옆에 완전히 커스터마이즈된 컨테이너 함수 앱 배포
Consumption 플랜 레거시 서버리스 플랜(Windows 전용). 새 앱은 Flex Consumption 플랜 사용

자세한 비교는 Azure Functions 호스팅 옵션 문서를 참고하세요.

더 알아보기