Azure Functions 작동 방식
여기에서는 Azure Functions를 사용하여 서버리스 아키텍처를 개발하고 이 아키텍처가 제공하는 다양한 기능 구현을 활용하는 방법에 대해 알아봅니다.
또한 Azure Functions의 작동 방식에 대해서도 자세히 알아봅니다. Azure Functions를 최대한 활용하여 조직의 요구 사항을 충족하는 방법을 결정하는 데 도움이 되는 정보.
Azure Functions는 더 적은 코드를 작동할 수 있도록 해 주는 서버리스 컴퓨팅 솔루션입니다. Azure Functions는 Platform as a Service 제품이므로 앱의 호스트에 대해 신경을 쓸 필요가 없으며 비용을 절약할 수 있습니다.
Azure Functions는 데이터를 처리하고 시스템을 통합하며 IoT(사물 인터넷)로 작업하고 간단한 API 및 마이크로 서비스를 구축하는 데 유용한 솔루션입니다.
함수 앱 스케일링
함수가 실행되는 컨텍스트를 함수 앱이라고 합니다. 함수 앱은 함수의 배포, 관리 및 스케일링 단위입니다. 함수 앱 내의 모든 함수는 동일한 설정과 연결을 공유합니다.
소비 및 프리미엄 플랜에서 Azure Functions는 더 많은 함수 앱 인스턴스를 추가하여 CPU 및 메모리 리소스를 스케일링합니다. 인스턴스의 개수는 함수를 트리거하는 이벤트의 개수에 따라 정해집니다. 함수 앱 내의 모든 함수는 앱 인스턴스 내의 리소스를 공유하므로 동시에 크기 조정됩니다.
Azure Functions 모니터링
Azure Functions는 함수를 모니터링할 수 있도록 Azure Application Insights와 기본적으로 통합됩니다. Application Insights는 로그, 성능 및 오류 데이터를 수집합니다. 성능 이상을 감지하고, 문제를 진단하고, 함수가 사용되는 방식을 더 잘 이해하는 데 도움이 됩니다.
Application Insights 계측은 Azure Functions에서 기본 제공됩니다. Application Insights 통합에서는 원격 분석 데이터가 연결된 Application Insights 인스턴스로 전송됩니다. 이 데이터에는 Functions 호스트에 의해 생성된 로그, 함수 코드에서 작성된 추적 및 성능 데이터가 포함됩니다.
참고
함수 및 Functions 호스트의 데이터 외에도 Functions 크기 조정 컨트롤러에서 데이터를 수집할 수 있습니다.
다음 이미지는 Application Insights에서 함수 앱에 대한 데이터를 보는 방법을 보여 줍니다.
Azure Functions 구성 요소
다음 표에는 Azure Functions의 주요 구성 요소에 대한 설명이 나와 있습니다.
구성 요소 | Description |
---|---|
함수 트리거 | 트리거는 함수가 실행되도록 하는 요인입니다. 트리거는 함수가 호출되는 방식을 정의합니다. 함수에는 정확히 하나의 트리거만 있어야 합니다. |
Functions 바인딩 | 함수에 바인딩하는 것은 다른 리소스를 함수에 선언적으로 연결하는 방법입니다. 바인딩은 입력 바인딩, 출력 바인딩 또는 둘 다로 연결될 수 있습니다. 바인딩의 데이터는 함수에 매개 변수로 제공됩니다. 바인딩을 사용하려고 하지 않거나 사용할 수 없는 경우에도 서비스에 연결할 때 함수에서 클라이언트 SDK를 사용할 수 있습니다. |
함수 런타임 | Azure Functions는 현재 런타임 호스트의 여러 버전을 지원합니다. Functions는 .NET Core, Node.JavaScript, Java, PowerShell, Python 등 다양한 런타임도 지원합니다. 개발 중에 로컬 컴퓨터에 Azure Functions 런타임을 설치하고 Azure Functions Core Tools를 사용하여 함수를 로컬로 실행할 수 있습니다. |
APIM(API Management) | APIM은 HTTP 트리거 함수 엔드포인트를 실제 REST API로서 노출하기 위한 방법으로 보안 및 라우팅을 제공합니다. |
배포 슬롯 | Azure Functions 배포 슬롯을 사용하면 함수 앱이 슬롯이라고 부르는 여러 인스턴스를 실행할 수 있습니다. 슬롯은 공개적으로 사용 가능한 엔드포인트를 통해 노출되는 서로 다른 환경입니다. 슬롯은 Azure의 안전한 환경에서 새로운 버전의 함수를 테스트한 다음 새로운 버전을 프로덕션에 매끄럽게 적용할 방법을 제공합니다. |
함수 앱 구성 | 연결 문자열, 환경 변수 및 기타 애플리케이션 설정은 각 함수 앱에 대해 개별적으로 정의됩니다. 함수 앱 설정 값은 코드에서 환경 변수로 읽을 수 있습니다. |
이러한 구성 요소들이 함께 작동하여 애플리케이션 및 DevOps 엔지니어가 Azure Functions를 사용하는 서버리스 아키텍처를 개발할 수 있는 완전한 엔드투엔드 플랫폼을 제공합니다.