Azure Functions란?
Azure Functions란?
Azure Functions는 서버리스 솔루션이에요. 적은 코드, 적은 인프라, 적은 비용으로 견고한 앱을 만들 수 있게 도와주죠. 서버를 배포하고 유지하느라 고민하는 대신, 클라우드 인프라가 애플리케이션을 계속 돌리는 데 필요한 최신 리소스를 모두 제공해 줘요.
우리는 가장 생산성이 높은 언어로 가장 중요한 코드에만 집중하면 되고, 나머지는 Azure Functions가 처리해요. 지원 언어 목록은 Azure Functions에서 지원하는 언어 문서에서 확인할 수 있어요.
시나리오
Functions는 이벤트 중심의 트리거와 바인딩 세트를 제공해요. 추가 코드를 작성하지 않고도 함수를 다른 서비스와 연결해 주죠. 흔히 쓰는 통합 시나리오를 표로 보면 다음과 같아요.
| 하고 싶은 일 | 처리 방식 |
|---|---|
| 파일 업로드 처리 | blob 스토리지에서 파일이 업로드되거나 변경되면 코드 실행 |
| 실시간 데이터 처리 | 이벤트·IoT 소스 스트림의 데이터를 저장으로 가는途中에 캡처·변환 |
| AI 추론 실행 | 큐에서 텍스트를 꺼내 다양한 AI 서비스에 넘겨 분석·분류 |
| 예약 작업 실행 | 미리 정의된 시간 간격으로 데이터 정리 코드 실행 |
| 확장 가능한 웹 API 구축 | HTTP 트리거를 이용해 웹 애플리케이션용 REST 엔드포인트 집합 구현 |
| 서버리스 워크플로 구축 | Durable Functions로 일련의 함수에서 이벤트 중심 워크플로 생성 |
| DB 변경에 응답 | 데이터베이스에서 문서가 생성·수정될 때 사용자 지정 로직 실행 |
| 신뢰할 수 있는 메시지 시스템 구축 | Azure Queue Storage, Service Bus, Event Hubs로 메시지 큐 처리 |
이런 시나리오 덕분에 현대적 아키텍처 패턴으로 이벤트 중심 시스템을 만들 수 있어요. 자세한 내용은 Azure Functions 시나리오 문서를 참고하세요.
개발 라이프사이클
Functions는 앱 개발의 모든 단계를 지원해요.
- 코드 작성: C#, Java, JavaScript, PowerShell, Python, Go로 작성하거나, Rust 같은 언어는 사용자 지정 핸들러로 처리해요.
- 로컬 개발·디버그: Visual Studio, Visual Studio Code, Maven 등으로 개발해요.
- 배포: CLI, CI/CD 파이프라인 또는 IDE로 Azure에 배포해요.
- 모니터링: 내장된 Azure Monitor·Application Insights 통합으로 성능을 모니터링하고 문제를 진단해요.
호스팅 옵션
Functions는 비즈니스 요구와 워크로드에 맞는 다양한 호스팅 옵션을 제공해요.
| 호스팅 옵션 | 설명 |
|---|---|
| Flex Consumption 플랜 | 권장. 빠른 이벤트 중심 확장, 가상 네트워크 통합, 종량제 과금 |
| Premium 플랜 | 가장 빠른 응답을 위한 항상 켜진 인스턴스, 무제한 실행 시간, 가상 네트워크 통합 |
| Dedicated 플랜 | 예측 가능한 확장과 비용으로 기존 App Service 플랜에서 함수 실행 |
| Container Apps | Azure Container Apps에서 마이크로서비스 옆에 완전히 커스터마이즈된 컨테이너 함수 앱 배포 |
| Consumption 플랜 | 레거시 서버리스 플랜(Windows 전용). 새 앱은 Flex Consumption 플랜 사용 |
자세한 비교는 Azure Functions 호스팅 옵션 문서를 참고하세요.