HTTPS 요청으로 호출

HTTPS 요청을 만들 수 있는 곳이라면 어디서든 HTTPS 요청을 전송하여 Cloud Run에서 호스팅하는 서비스를 트리거할 수 있습니다. 모든 Cloud Run 서비스에서 안정적인 HTTPS URL을 제공합니다.

다음은 몇 가지 사용 사례입니다.

  • 커스텀 RESTful 웹 API
  • 비공개 마이크로서비스
  • 웹 애플리케이션용 HTTP 미들웨어 또는 역방향 프록시
  • 사전 패키징된 웹 애플리케이션

공개 서비스 만들기

Cloud Run에 공개 서비스를 만들려면 다음이 필요합니다.

  • 공개 인터넷에서 서비스로의 액세스 권한
  • 공개 사용을 위한 URL

서비스를 공개로 설정하려면 배포할 때 또는 배포 후에 언제든지 인증되지 않은(공개) 액세스를 허용하도록 서비스를 설정합니다.

서비스를 처음 배포할 때 제공된 안정적인 자동 할당 URL을 Cloud Run의 공개 URL로 사용할 수 있습니다. 배포된 서비스의 URL을 확인하려면 다음을 실행합니다.

gcloud run services describe SERVICE --format 'value(status.url)'

Cloud Run 서비스의 URL은 https://[TAG---]SERVICE_IDENTIFIER.run.app 형식입니다. 여기서 TAG는 요청하는 버전의 트래픽 태그를 나타내고 SERVICE_IDENTIFIER는 Cloud Run 서비스의 안정적이고 고유한 식별자입니다. SERVICE_IDENTIFIER에는 고정 형식이 없으므로 이를 파싱하지 마세요. SERVICE_IDENTIFIER 생성 논리는 변경될 수 있습니다.

또한 서비스에 매핑되는 고유 커스텀 도메인을 사용할 수도 있습니다. 그러면 관리형 SSL 인증서가 자동으로 제공됩니다.

Cloud Run은 모든 HTTP 요청을 HTTPS로 리디렉션하지만 웹 서비스에 연결되기 전에 TLS를 종료합니다. 서비스에서 비보안 URL(http://)로 다른 웹 리소스를 참조하는 웹 리소스가 생성될 경우 페이지에 혼합 콘텐츠 경고 또는 오류가 발생할 수 있습니다. X-Forwarded-Proto HTTP 헤더와 같은 HTTP 요청의 프록시 지시문에 대해 모든 참조 웹 URI 또는 계정에 https 프로토콜을 사용합니다.

HTTP 및 HTTP/2

기본적으로 Cloud Run은 해당 요청이 컨테이너로 전송될 때 HTTP/2 요청을 HTTP/1로 다운그레이드합니다. HTTP/2 엔드 투 엔드를 사용하도록 서비스를 명시적으로 설정하려면 HTTP/2 사용을 참조하세요.

비공개 서비스 만들기

Cloud Run에서 비공개 서비스를 만들려면 IAM 호출자 권한을 활용하여 서비스에 대한 액세스를 제한해야 합니다.

애플리케이션 수준의 승인 및 인증 메커니즘(예: Identity Platform 사용)을 사용하여 서비스에 대한 액세스를 제한할 수도 있습니다.

비공개 서비스 테스트

비공개 서비스를 테스트하는 가장 쉬운 방법은 Google Cloud CLI에서 Cloud Run 프록시를 사용하는 것입니다. 그러면 비공개 서비스가 http://localhost:8080(또는 --port로 지정된 포트)으로 프록시되어 활성 계정의 토큰 또는 지정한 다른 토큰이 제공됩니다. 이렇게 하면 웹브라우저 또는 curl 등의 도구를 사용할 수 있습니다. 이는 브라우저에서 웹사이트 또는 API를 비공개로 테스트하는 데 권장되는 방법입니다.

다음 명령어를 사용하여 서비스를 로컬로 프록시할 수 있습니다.

gcloud run services proxy SERVICE --project PROJECT-ID

curl과 같은 도구를 사용하여 Authorization 헤더에 인증 토큰을 전달하여 프록시 없이 비공개 서비스를 테스트할 수 있습니다.

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL

서비스 간 비공개 서비스

Cloud Run 서비스는 서비스 간 인증으로 다른 Cloud Run 서비스를 호출할 수 있습니다.

비공개 서비스를 호출하는 샘플 코드

ID 토큰을 가져오고 비공개 서비스에 HTTP 요청을 수행하는 방법을 보여주는 코드 샘플은 서비스 간 인증 주제를 참조하세요.

미들웨어를 사용하여 서비스 개선

HTTPS 프록시는 HTTP 서비스에서 캐싱, 요청 검사 또는 승인과 같은 일반적인 기능을 오프로드할 수 있습니다. 마이크로서비스의 경우 많은 HTTP 프록시가 API 게이트웨이 솔루션 또는 Istio와 같은 서비스 메시에 포함됩니다.

Cloud Run 서비스 개선을 위해 사용할 수 있는 Google Cloud 제품은 다음과 같습니다.