함수 앱에서 API Management에 새 API 만들기
Azure API Management 서비스를 사용하면 서로 다른 마이크로 서비스 세트에서 API를 생성할 수 있습니다.
온라인 저장소에서 애플리케이션의 각 부분은 마이크로 서비스로 구현됩니다. 한 부분은 제품 세부 정보, 다른 한 부분은 주문 세부 정보로 구현됩니다. 별도의 팀이 각 마이크로 서비스를 관리하며, 각 팀은 지속적인 개발 및 업데이트를 사용하여 코드를 정기적으로 업데이트하고 배포합니다. 이러한 마이크로 서비스를 단일 제품으로 조합하고 해당 제품을 중앙에서 관리하는 방법을 찾으려고 합니다.
이 단원에서는 개별 마이크로 서비스에서 단일 API를 빌드하여 서버리스 아키텍처에서 Azure API Management가 어떻게 유용한지 알아봅니다.
서버리스 아키텍처 및 마이크로 서비스
마이크로 서비스는 분산 애플리케이션 아키텍처에 대한 널리 사용되는 방식입니다. 애플리케이션을 마이크로 서비스 컬렉션으로 빌드하는 경우 여러 개의 작은 서비스를 만들게 됩니다. 각 서비스는 책임 도메인이 정의되며, 독립적으로 개발, 배포 및 확장됩니다. 이 모듈식 아키텍처를 통해 애플리케이션을 더 쉽게 이해하고, 개선하고, 테스트할 수 있습니다. 또한 마이크로 서비스를 배포할 때 전체 애플리케이션의 일부만 변경되므로 지속적인 업데이트를 더 쉽게 수행할 수 있습니다.
분산 소프트웨어 개발에서 또 다른 유용한 추세는 서버리스 아키텍처입니다. 이 접근 방식에서 호스트 조직은 개발자가 코드를 실행하는 데 사용할 수 있는 서비스 세트를 게시합니다. 개발자는 지원 하드웨어, 운영 체제, 기본 소프트웨어 및 기타 인프라를 고려하지 않아도 됩니다. 대신, 코드는 요청에 의해 트리거된 상태 비저장 컴퓨팅 리소스에서 실행됩니다. 비용은 서비스가 실행될 때만 발생하므로 거의 사용하지 않은 서비스에 대해서는 지불하지 않아도 됩니다.
Azure Functions
Azure Functions는 Azure에서 서버리스 아키텍처를 사용하도록 설정하는 서비스입니다. 지원 인프라를 걱정하지 않고, C#, Java, JavaScript, PowerShell 및 Python을 비롯한 다양한 언어로 함수를 작성할 수 있습니다. NuGet 및 NPM(Node Package Manager)의 라이브러리를 사용하고 Active Directory, Facebook, Google, Microsoft Account 등의 공급자에서 OAuth 표준으로 사용자를 인증할 수도 있습니다.
함수를 작성할 때는 코드를 트리거하려는 방법에 따라, 사용할 템플릿을 선택합니다. 예를 들어, HTTP 요청에 대한 응답으로 함수를 실행하려는 경우 HTTPTrigger 템플릿을 사용합니다. 큐, Blob 스토리지 컨테이너에 새 메시지가 있는 경우, 또는 미리 정의된 일정에 따라 실행할 다른 템플릿을 사용할 수 있습니다.
사용량 플랜에 따라 Azure Functions를 사용하는 경우 코드가 실행되는 시간에 대해서만 요금이 부과됩니다.
Azure API Management
Azure API Management는 API를 게시하고, 보호하고, 변환하고, 유지 관리하고, 모니터링하는 데 사용할 수 있는 완전 관리형 클라우드 서비스입니다. 이 서비스를 사용하여 조직은 외부, 파트너 및 내부의 개발자에게 API를 게시하여 데이터 및 서비스의 잠재성을 활용할 수 있습니다. API Management는 API 호출 중재와 관련된 모든 작업을 처리합니다. 요청 인증 및 권한 부여, 속도 제한 및 할당량 적용, 요청 및 응답 변환, 로깅 및 추적, API 버전 관리가 포함됩니다. API Management를 사용하면 호스트 위치와 관계없이, 기존 백 엔드 서비스를 위한 최신 API 게이트웨이를 만들고 관리할 수 있습니다.
API Management를 통해 Azure Functions를 게시할 수 있으므로 이를 사용하여 마이크로 서비스 아키텍처를 구현할 수 있습니다. 각 함수는 마이크로 서비스를 구현합니다. 단일 API Management 제품에 많은 함수를 추가하여 해당 마이크로 서비스를 통합된 분산 애플리케이션으로 빌드할 수 있습니다. 애플리케이션이 빌드되면 API Management 정책을 사용하여 캐싱을 구현하거나 보안 요구 사항을 보장할 수 있습니다.
API Management 소비 계층
API Management에 대한 사용량 계획을 선택할 때 소비 계층을 선택할 수 있습니다. 소비 계층은 특히 마이크로 서비스 기반 아키텍처와 이벤트 기반 시스템에 적합합니다. 예를 들어, 이 계층은 온라인 스토어 웹 API에 아주 적합합니다.
사용량 계층은 이전 계층과 동일한 기본 서비스 구성 요소를 사용하지만, 동적으로 할당된 공유 리소스를 기준으로 완전히 다른 아키텍처를 사용합니다. 소비 계층은 서버리스 컴퓨팅 모델과 완벽하게 일치합니다. 관리할 인프라도 없고 유휴 용량도 없습니다. 고가용성, 자동 크기 조정 및 사용량 기반 가격 책정을 제공합니다. 이 모든 점 때문에 소비 계층은 서버리스 리소스를 API로 노출하는 솔루션에 특히 좋은 선택입니다.
다음 단원에서는 API Management 인스턴스를 만들고 함수를 추가합니다.