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 제품은 다음과 같습니다.