REGION_ID는 앱을 만들 때 선택한 리전을 기준으로 Google에서 할당하는 축약된 코드입니다. 일부 리전 ID는 일반적으로 사용되는 국가 및 주/도 코드와 비슷하게 표시될 수 있지만 코드는 국가 또는 주/도와 일치하지 않습니다. 2020년 2월 이후에 생성된 앱의 경우 REGION_ID.r이 App Engine URL에 포함됩니다. 이 날짜 이전에 만든 기존 앱의 경우 URL에서 리전 ID는 선택사항입니다.
VERSION-dot-SERVICE-dot-PROJECT_ID의 결합된 길이(VERSION는 버전 이름, SERVICE
은 서비스 이름, PROJECT_ID는 프로젝트 ID)는 63자(영문)를 초과할 수 없으며 하이픈으로 시작하거나 끝날 수 없습니다. 합친 길이가 63자를 초과하면 DNS address could not be
found. 오류가 표시될 수 있습니다.
대상 서비스를 공개 인터넷에 노출하지 않아도 App Engine 표준 서비스로 동일한 프로젝트의 다른 App Engine 서비스와 통신할 수 있습니다.
같은 프로젝트에서 서비스 간 통신을 허용하려면 다음 안내를 따르세요.
'내부' 트래픽만 허용하도록 대상 서비스의 인그레스 설정을 조정하여 인그레스 제어를 구성합니다.
'내부' 설정은 프로젝트의 VPC 네트워크 요청만 허용합니다. 여기에는 이그레스 트래픽이 커넥터를 통해 라우팅될 때 동일한 네트워크에 있는 클라이언트 앱의 App Engine 리소스가 포함됩니다.
인터넷 또는 다른 App Engine 서비스를 포함한 기타 Google Cloud 프로젝트에서 발생하는 다른 모든 트래픽은 차단됩니다.
다른 앱 엔드포인트로 비공개 트래픽을 전송하는 각 App Engine 버전에 대해 공유 VPC 네트워크가 아닌 Google Cloud 프로젝트의 자체 네트워크 중 하나에 속한 서버리스 VPC 액세스 커넥터에 버전을 연결합니다.
서버리스 VPC 액세스 커넥터에서 사용하는 서브넷에 비공개 Google 액세스가 사용 설정되어 있는지 확인합니다.
다음 중 하나를 구성합니다.
대상 호스트 이름에 대한 DNS 항목을 추가하여 private.googleapis.com IP 범위를 사용하도록 클라이언트 요청을 구성합니다. DNS 구성에 따라 DNS 호스트 이름을 추가합니다. 하지만 googleapis.com이 아닌 appspot.com에 맞게 비공개 영역을 구성해야 합니다. 또한 트래픽이 커스텀 도메인이 아닌 대상 앱의 appspot.com 주소로 전달되는지 확인합니다. 이 appspot.com 도메인을 사용하는 private.googleapis.com IP 범위에서만 앱에 연결할 수 있습니다.
private.googleapis.com IP 범위를 사용하도록 요청을 구성하는 대신 서버리스 VPC 액세스 커넥터를 통해 all-traffic을 전송하도록 클라이언트 앱을 구성합니다.
다른 프로젝트의 서비스 간 통신
프로젝트에서 실행 중인 앱이 공유 VPC 네트워크의 호스트 프로젝트에서 실행되는 앱을 호출하도록 구성된 공유 VPC 네트워크에 속하는 경우 Google Cloud 프로젝트 간에 비공개 액세스 권한이 있을 수 있습니다.
이 패턴을 사용하려면 동일한 프로젝트의 서비스 간 통신에 대한 이전 단계를 수행합니다.
표준 환경에서는 각 클라이언트 버전을 공유 VPC 네트워크의 서버리스 VPC 액세스 커넥터에 연결합니다.
App Engine에서는 내부 액세스를 사용하는 프로젝트 간의 다른 통신 방법이 불가능합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eRegion IDs are assigned by Google during app creation and are included in App Engine URLs for apps created after February 2020, and these IDs do not correspond to countries or provinces.\u003c/p\u003e\n"],["\u003cp\u003eApp Engine services can communicate via targeted HTTP requests, using URLs that include version, service, project ID, and region ID, however, there is a combined length restriction of 63 characters for the version, service, and project ID.\u003c/p\u003e\n"],["\u003cp\u003eServices within the same project can communicate privately by configuring ingress controls to allow internal traffic only, routing traffic over a Serverless VPC Access connector, and setting up DNS configurations or sending all-traffic.\u003c/p\u003e\n"],["\u003cp\u003eApp Engine services can also use Pub/Sub for asynchronous messaging and share data across databases or other external applications.\u003c/p\u003e\n"],["\u003cp\u003eCertain URL paths such as paths ending with /eventlog and paths starting with /_ah/ are reserved and cannot be used.\u003c/p\u003e\n"]]],[],null,["# Communicating between your services\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\n### Region ID\n\nThe \u003cvar translate=\"no\"\u003eREGION_ID\u003c/var\u003e is an abbreviated code that Google assigns\nbased on the region you select when you create your app. The code does not\ncorrespond to a country or province, even though some region IDs may appear\nsimilar to commonly used country and province codes. For apps created after\nFebruary 2020, \u003cvar translate=\"no\"\u003eREGION_ID\u003c/var\u003e`.r` is included in\nApp Engine URLs. For existing apps created before this date, the\nregion ID is optional in the URL.\n\nLearn more\n[about region IDs](/appengine/docs/standard/python/how-requests-are-routed#region-id). \nOK\n\nYou can use various methods to communicate between your App Engine\nservices or with other services, including Google Cloud services and\nexternal applications.\n\nThe simplest approach for communicating with your App Engine service is\nto send targeted HTTP requests, where the URL includes the name or ID of a\nresource. For example, you can include the ID of a service or version that you\nwant to target, in addition to the corresponding Google Cloud project ID: \n\n\n `https://`\u003cvar translate=\"no\"\u003eVERSION\u003c/var\u003e`-dot-`\u003cvar translate=\"no\"\u003eSERVICE\u003c/var\u003e`-dot-`\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e`.`\u003cvar translate=\"no\"\u003e\u003ca href=\"#appengine-urls\" style=\"border-bottom: 1px dotted #999\" class=\"devsite-dialog-button\" data-modal-dialog-id=\"regional_url\" track-type=\"progressiveHelp\" track-name=\"modalHelp\" track-metadata-goal=\"regionalURL\"\u003eREGION_ID\u003c/a\u003e\u003c/var\u003e`.r.appspot.com`\n\nNote that the combined length of\n\u003cvar translate=\"no\"\u003eVERSION\u003c/var\u003e`-dot-`\u003cvar translate=\"no\"\u003eSERVICE\u003c/var\u003e`-dot-`\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e\u003cvar translate=\"no\"\u003e\u003ca href=\"#appengine-urls\" style=\"border-bottom: 1px dotted #999\" class=\"devsite-dialog-button\" data-modal-dialog-id=\"regional_url\" track-type=\"progressiveHelp\" track-name=\"modalHelp\" track-metadata-goal=\"regionalURL\"\u003e\u003c/a\u003e\u003c/var\u003e, where\n`VERSION` is the name of your version, `SERVICE\n` is the name of your service, and `PROJECT_ID` is your\nproject ID, cannot be longer than 63 characters and cannot start or end with\na hyphen. If the combined length is\nlonger than 63 characters, you might see Error `DNS address could not be\nfound. `\n\nLearn more about requests in App Engine:\n\n- [How requests are\n handled](/appengine/docs/standard/how-requests-are-handled): Learn how your application receives requests and sends responses.\n- [How requests are routed](/appengine/docs/standard/how-requests-are-routed): Learn how to target your services, including how to define HTTPS URLs.\n- Learn how to authorize the requests between your services and other Google Cloud services:\n - [Provide credentials for Application Default Credentials](/docs/authentication/provide-credentials-adc)\n - [Using user-managed service accounts](/appengine/docs/standard/user-managed-service-accounts)\n\nYour App Engine services can also communicate using\n[Pub/Sub](/pubsub/docs), which provides reliable asynchronous\nmany-to-many messaging between processes, including App Engine. These\nprocesses can be individual instances of your application, services, or even\nexternal applications.\n\nTo share data across databases and your App Engine app or some other\nexternal application, see\n[Understanding Data and File Storage](/appengine/docs/standard/storage-options).\n\nIf you use the legacy bundled services, you can also pass requests between services and\nfrom services to external endpoints using the\n[URL Fetch](/appengine/docs/legacy/standard/python/issue-requests) API.\n\nAdditionally, services in the standard environment that reside within the same\nGoogle Cloud project can also use one of the App Engine APIs for the\nfollowing tasks:\n\n- Share a single [memcache](/appengine/docs/legacy/standard/python/memcache) instance.\n- Collaborate by assigning work between services through [Task Queues](/appengine/docs/legacy/standard/python/taskqueue).\n\nPrivate Communication\n---------------------\n\n### Communication between services in the same project\n\nYou can allow an App Engine standard service to communicate with\nanother App Engine service in the same project without having to expose\nthe destination service to the public internet.\n\nTo allow communication between services in the same project:\n\n1. Configure ingress controls by adjusting the destination service's\n [ingress settings](/appengine/docs/standard/ingress-settings)\n to allow \"internal\" traffic only.\n\n The \"internal\" setting allows requests from the project's VPC\n networks only. This includes App Engine resources from a client app on\n the same network when egress traffic is routed over a connector.\n All other traffic from the internet or other Google Cloud projects,\n including other App Engine services, is blocked.\n | **Note:** The \"internal\" traffic setting blocks all traffic from additional Google Cloud services that do not use the VPC network, such as URLFetch, Cloud Tasks, and Pub/Sub, even within the same project.\n2. Route the traffic over a [Serverless VPC Access connector](/vpc/docs/configure-serverless-vpc-access#appengine):\n\n 1. For each App Engine version sending private traffic to other app\n endpoints, attach the version to a Serverless VPC Access connector\n belonging to one of the Google Cloud project's own networks, not a\n Shared VPC network.\n\n 2. Ensure Private Google Access is enabled for the subnet used by the\n Serverless VPC Access connector.\n\n 3. Configure one of the following:\n\n - Configure client requests to use the `private.googleapis.com` IP range\n by adding a DNS entry for the destination hostname. Follow\n [DNS configuration](/vpc/docs/configure-private-google-access#config-domain)\n to add the DNS hostname, but be sure to configure the private zone\n to be for `appspot.com` rather than `googleapis.com`. Also ensure that\n traffic is directed to the destination app's `appspot.com` address,\n not a custom domain. Your app can only be reached on the\n `private.googleapis.com` IP range using this `appspot.com` domain.\n\n - Configure the client app to\n [send](/appengine/docs/standard/connecting-vpc#manage)\n `all-traffic` through the Serverless VPC Access connector,\n instead of configuring requests to use the `private.googleapis.com` IP\n range.\n\n### Communication between services in different projects\n\nYou can have private access between Google Cloud projects when apps running\nin projects belong to a Shared VPC network that is\nconfigured to invoke an app running in the Shared VPC network's host project.\n\nTo use this pattern, follow the previous steps for\n[communicating between services in the same project](#between-services).\n\nIn the standard environment, attach each client version to a\nServerless VPC Access connector on the Shared VPC network.\n\n\nOther methods of communication between projects using internal access are not\npossible in App Engine.\n\nReserved URL paths\n------------------\n\nIt is not possible to use the following URL paths:\n\n- Paths ending with `/eventlog`\n- Paths starting with `/_ah/`\n- Some paths ending with `z`"]]