Endpoints 옵션 선택

Cloud Endpoints에서 API를 관리하게 하려는 경우 API가 호스팅되는 위치와 API에서 사용하는 통신 프로토콜의 유형에 따라 세 가지 옵션을 사용할 수 있습니다.

이 페이지에서는 어느 옵션이 적합한지 결정하는 데 도움이 되도록 Endpoints 옵션을 설명합니다.

컴퓨팅 옵션 선택

Endpoints는 API의 백엔드 코드를 호스팅할 수 있는 다양한 Google Cloud 컴퓨팅 옵션을 지원합니다. Endpoints는 Extensible Service Proxy(ESP) 또는 Extensible Service Proxy V2(ESPv2)와 함께 작동하여 API 관리 기능을 제공합니다. 다음은 지원되는 컴퓨팅 옵션을 요약한 표입니다.

OpenAPI용 ESP gRPC용 ESP OpenAPI용 ESPv2 gRPC용 ESPv2 Endpoints 프레임워크
App Engine
표준 환경 1세대
자바 8 및 Python 2.7 런타임
App Engine
표준 환경 2세대
App Engine
가변형 환경
Cloud Functions
Cloud Run
Cloud Run for Anthos
Compute Engine
GKE
Kubernetes
기타 Google Cloud 외

App Engine, GKE, Compute Engine에서 제공하는 기능 비교는 컴퓨팅 옵션 선택을 참조하세요. App Engine 사용을 고려하고 있다면 표준 또는 가변형 환경을 선택해야 합니다. 두 환경 비교는 App Engine 환경 선택을 참조하세요.

컴퓨팅 옵션 제한 정보

OpenAPI용 Endpoints와 gRPC용 Endpoints는 ESP 또는 ESPv2를 프록시로 사용할 수 있습니다. 서버리스 외의 플랫폼에서 ESP 또는 ESPv2는 애플리케이션 앞에 컨테이너로 배포되거나 애플리케이션과 함께 사이드카로 배포됩니다. Cloud Run, Cloud Functions, App Engine과 같은 서버리스 플랫폼에서 ESPv2는 서버리스 플랫폼 애플리케이션을 관리하기 위한 원격 프록시로서 Cloud Run 서비스로 배포됩니다.

API의 백엔드 코드를 배포한 후 ESP 또는 ESPv2는 모든 요청을 가로채고 모든 필요한 검사(예: 인증)를 수행한 후에 요청을 API 백엔드로 전달합니다. 백엔드가 응답하면 ESP가 서비스 인프라를 사용하여 원격 분석 자료를 수집하고 보고합니다.

Google Cloud 콘솔의 Endpoints 서비스 페이지에서 API 측정항목과 Google Cloud Observability 로그 및 trace에 대한 링크를 볼 수 있습니다.

App Engine 표준 1세대 환경 제한사항

이전부터 App Engine 표준 1세대 환경의 Endpoints는 자바 8 및 Python 2.7 런타임 환경만 지원하는 Endpoints 프레임워크를 사용했습니다.

Endpoints Frameworks의 개발 단계에서는 App Engine 표준 환경이 다중 컨테이너 배포를 지원하지 않았으므로 Endpoints Frameworks는 ESP를 사용하지 않습니다. 그러나 Endpoints 프레임워크에는 ESP가 OpenAPI용 Endpoints 및 gRPC용 Endpoints에 제공하는 기능과 비슷한 API 관리 기능을 제공하는 API 게이트웨이가 내장되어 있습니다.

App Engine 또는 Cloud Functions에서는 gRPC API가 지원되지 않습니다.

gRPC는 모든 환경에서 실행 가능한 원격 절차 호출(RPC) 프레임워크입니다. gRPC를 사용하면 클라이언트 애플리케이션이 로컬 객체처럼 다른 머신의 서버 애플리케이션에서 직접 메서드를 호출할 수 있습니다. gRPC의 핵심 기능은 HTTP/2 기반 전송을 통한 양방향 스트리밍입니다.

App Engine 및 Cloud Functions는 HTTP/2를 지원하지 않습니다.

지원되는 프로그래밍 언어

  • OpenAPI 사양은 언어 중립적 사양입니다. 모든 프로그래밍 언어로 API를 구현할 수 있습니다.
  • gRPC는 C++, C#, Objective-C(iOS용), Dart, Go, 자바(Android 지원 포함), Node.js, Python, Ruby 등의 많은 주요 프로그래밍 언어에 프로토콜 버퍼 컴파일러protoc을 제공합니다. 최신 목록은 gRPC FAQ를 참조하세요.
  • Endpoints 프레임워크는 자바 8과 Python 2.7만 지원합니다.

API 설명

Endpoints 옵션은 API를 설명하는 여러 가지 방법을 제공합니다.

OpenAPI용 Endpoints

OpenAPI Initiative는 REST API의 설명을 표준화하기 위한 업계 차원의 노력을 의미합니다. Endpoints는 OpenAPI 사양(이전의 Swagger 사양) 버전 2.0으로 설명된 API를 지원합니다. API의 노출 영역은 OpenAPI 문서라고 하는 JSON 또는 YAML 파일로 설명합니다. Django 또는 Jersey와 같이 공개적으로 사용 가능한 REST 프레임워크로 API를 구현할 수 있습니다. OpenAPI 사양에 대해 잘 모르는 경우 OpenAPI 개요를 참조하세요.

자세한 내용은 OpenAPI용 Endpoints를 참조하세요.

gRPC용 Endpoints

gRPC를 사용하여 proto 파일에 직렬화하려는 데이터의 구조를 정의합니다. 이 파일은 확장자가 .proto인 일반 텍스트 파일입니다. 또한 프로토콜 버퍼 메시지로 지정된 RPC 메서드 매개변수와 반환 유형을 사용하여 proto 파일에서 API의 노출 영역을 정의합니다. gRPC에 대해 잘 모르는 경우 gRPC 문서의 gRPC란?을 참조하세요.

자세한 내용은 gRPC용 Endpoints를 참조하세요.

Endpoints 프레임워크

Endpoints 프레임워크는 App Engine 표준 Python 2.7 및 자바 8 런타임 환경을 위한 웹 프레임워크입니다. 자바의 주석이나 Python의 데코레이터를 사용하여 메타데이터를 소스 코드에 추가합니다. 메타데이터는 애플리케이션용 REST API의 노출 영역을 설명합니다.

자세한 내용은 Endpoints 프레임워크를 참조하세요.

다음 단계