본문 바로가기
CSP (Cloud Service Provider)/Azure

[Azure] Azure Functions

by BTC_효범 2023. 6. 9.

안녕하세요 BTC95입니다.

오늘은 Azure Functions에 대하여 알아보겠습니다.


Azure Functions

Microsoft Azure의 이벤트 기반 서버리스 컴퓨팅 플랫폼으로 서버리스 컴퓨팅은 개발자가 서버 인프라를 직접 관리하지 않고 코드 실행에 집중할 수 있도록 하는 컴퓨팅 모델입니다.


특징

  • 개발자는 작은 단위의 코드 조각 또는 함수를 작성하여 특정 이벤트에 응답하고, 데이터 처리, 파일 처리, 메시지 처리 등 다양한 작업을 수행 가능
  • 함수는 이벤트 기반으로 실행되며, 예를 들어 HTTP 요청, 타이머, 메시지 큐 등의 이벤트를 트리거로 사용 가능
  • 여러 가지 프로그래밍 언어로 작성할 수 있으며, C#, JavaScript, Python, PowerShell 등을 지원
  • Azure Portal, Visual Studio, Visual Studio Code와 같은 다양한 도구를 통해 함수를 개발, 배포, 관리

Azure Functions는 서버리스 아키텍처를 통해 인프라 관리 부담을 줄이고, 필요한 시점에 자동으로 확장되어 대규모 애플리케이션 또는 이벤트 중심의 작업을 처리할 수 있습니다. 또한 사용한 만큼만 비용을 지불하므로 비용 효율적인 솔루션을 제공합니다.


주요 기능

  • 이벤트 기반 실행
    • 트리거로 사용할 수 있는 다양한 이벤트를 지원합니다.
    • HTTP 요청, 타이머, 메시지 큐, 파일 변경 등의 이벤트에 대해 함수를 트리거할 수 있습니다.
  • 서버리스 아키텍처
    • 개발자는 인프라 관리를 신경 쓰지 않고 코드 개발에 집중할 수 있습니다.
    • 서버 및 인프라 프로비저닝, 확장, 로드 밸런싱 등의 작업은 Azure Functions가 자동으로 처리합니다.
  • 다양한 프로그래밍 언어 지원
    • C#, JavaScript, Python, PowerShell 등 다양한 프로그래밍 언어로 함수를 작성할 수 있습니다.
    • 이는 개발자가 선호하는 언어로 작업할 수 있음을 의미합니다.
  • 확장성과 유연성
    • 필요에 따라 자동으로 확장되므로 대규모 애플리케이션 또는 부하가 큰 작업을 처리할 수 있습니다.
    • 또한 개별 함수 단위로 확장이 가능하며, 필요한 함수만 확장하여 비용을 절감할 수 있습니다.
  • 통합 기능
    • 다양한 Azure 서비스와 통합될 수 있습니다.
    • 예를 들어, Azure Storage, Azure Cosmos DB, Azure Service Bus 등의 서비스와 데이터를 주고받을 수 있습니다.
    • 또한 Azure Logic Apps, Azure Event Grid와 같은 다른 서비스와의 연계도 지원합니다.
  • 모니터링 및 로깅
    • Azure Portal을 통해 함수의 실행 상태를 모니터링하고, 로그 및 추적 정보를 확인할 수 있습니다.
    • 이를 통해 함수의 성능, 문제점 등을 신속하게 파악할 수 있습니다.
  • 배포 및 관리
    • Azure Portal, Visual Studio, Visual Studio Code와 같은 다양한 도구를 통해 함수를 개발, 테스트, 배포, 관리할 수 있습니다.
    • 또한 Git, Azure DevOps와 같은 지속적인 통합 및 배포(CI/CD)를 지원합니다.

이러한 주요 기능을 통해 Azure Functions는 이벤트 중심 및 작업 중심의 애플리케이션을 쉽게 개발하고 관리할 수 있는 유연하고 확장 가능한 서버리스 컴퓨팅 솔루션을 제공합니다.


사용 사례

1) 이벤트 기반 데이터 처리: 데이터 소스에서 이벤트를 트리거로 사용하여 데이터를 처리하는 데 유용합니다. 예를 들어, 데이터베이스에 새로운 레코드가 추가되거나 변경될 때 함수를 트리거하여 해당 데이터를 처리하고 다른 시스템에 전달할 수 있습니다.

 

2) 웹 백엔드 및 API: 간단한 웹 애플리케이션 또는 API를 구축할 수 있습니다. HTTP 트리거를 사용하여 웹 요청을 처리하고, 데이터베이스 또는 다른 서비스와 상호 작용하여 필요한 작업을 수행할 수 있습니다.

 

3) IoT 데이터 처리: IoT 장치에서 수집한 데이터를 처리하기 위해 사용될 수 있습니다. IoT Hub 또는 Event Hubs와 통합하여 센서 데이터를 수신하고, 필요한 변환, 분석 또는 저장 작업을 수행할 수 있습니다.

 

4) 스케줄된 작업: 타이머 트리거를 사용하여 주기적으로 실행되는 작업을 자동화하는 데 사용할 수 있습니다. 일정한 간격으로 데이터 백업, 리포트 생성, 정기적인 작업 수행 등과 같은 작업을 처리할 수 있습니다.

5) 메시지 기반 아키텍처: 메시지 큐 서비스와 통합하여 비동기적으로 작업을 처리하는 데 유용합니다. 예를 들어, Service Bus나 Event Grid와 함께 사용하여 이벤트 기반 아키텍처를 구현하거나, 백그라운드 작업을 처리하는 등의 작업에 활용할 수 있습니다.

6) 서버리스 워크플로우: Logic Apps와 함께 사용하여 복잡한 비즈니스 워크플로우를 구현하는 데 사용될 수 있습니다. Logic Apps에서 트리거되는 함수를 사용하여 데이터 가공, 외부 시스템과의 통합, 비즈니스 로직 실행 등을 수행할 수 있습니다.

이 외에도 Azure Functions는 이미지 처리, 데이터 분석, 알림 서비스, 봇 개발 등 다양한 용도로 사용될 수 있습니다.

Azure Functions는 이벤트 중심의 작업을 간단하게 구현하고, 필요한 시점에 자동으로 확장되어 대규모 애플리케이션에 적합한 서버리스 솔루션을 제공합니다.


함수 유형

1) HTTP 트리거 함수: HTTP 요청을 트리거로 사용하여 실행되는 함수입니다. 클라이언트로부터의 HTTP 요청에 대해 응답하고, 데이터 처리, API 엔드포인트로 사용될 수 있습니다.

2) 타이머 트리거 함수: 지정된 시간 간격 또는 일정한 스케줄에 따라 주기적으로 실행되는 함수입니다. 일정한 간격으로 백업, 데이터 처리, 알림 등의 작업을 수행하는 데 사용됩니다.

3) 메시지 트리거 함수: 메시지 큐나 토픽 등의 메시지 기반 서비스를 트리거로 사용하여 실행되는 함수입니다. 메시지가 큐에 도착하면 함수가 실행되어 메시지를 처리하고 필요한 작업을 수행할 수 있습니다.

4) Blob 트리거 함수: Azure Storage의 Blob 컨테이너에 새로운 파일이 추가되거나 변경될 때 실행되는 함수입니다. 파일 처리, 이미지 변환, 데이터 추출 등의 작업을 수행할 수 있습니다.

5) Cosmos DB 트리거 함수: Azure Cosmos DB의 데이터베이스 또는 컨테이너에서 변경 사항이 발생할 때 실행되는 함수입니다. 데이터의 추가, 수정, 삭제 등에 대해 함수가 트리거되어 데이터 처리 작업을 수행할 수 있습니다.

6) Event Grid 트리거 함수: Azure Event Grid에서 발생하는 이벤트를 트리거로 사용하여 실행되는 함수입니다. 이벤트 중심 아키텍처를 구현하거나 다양한 서비스 간의 통합 작업을 처리하는 데 사용됩니다.

7) Durable Functions: Durable Functions은 상태를 유지하고 장기 실행되는 작업 흐름을 구현하는 데 사용됩니다. 복잡한 비즈니스 워크플로우, 상태 기계, 장기 실행 작업을 처리하는 데 유용합니다.

이외에도 Azure Functions는 사용자 지정 트리거와 바인딩을 통해 다양한 유형의 함수를 생성할 수 있습니다. 

이를 통해 사용자 고유의 트리거와 연동하여 특정 이벤트에 반응하거나 데이터와 서비스를 통합하는 유연한 함수를 작성할 수 있습니다.


감사합니다.

'CSP (Cloud Service Provider) > Azure' 카테고리의 다른 글

[Azure] Azure Build Pipelines  (0) 2023.07.06
[Azure] Azure Devops - Repos  (0) 2023.06.22
Azure Load Testing 사용방법  (0) 2023.05.24
Azure DevOps 개념  (0) 2023.03.06
Azure OpenAI  (0) 2023.03.03

댓글