DNS 인프라가 이미 있거나 자신의 도메인 이름을 등록하려는 경우, 자세한 내용은 도메인 이름에서 API 제공을 참조하세요.
이 페이지에서는 .endpoints.PROJECT_ID.cloud.goog를 도메인 이름으로 사용하도록 Cloud Endpoints API를 구성하는 방법을 설명합니다. 이 페이지의 구성 단계는 Compute Engine, Google Kubernetes Engine 또는 Kubernetes에서 실행되는 OpenAPI를 사용하는 API에 적용할 수 있습니다.
App Engine에서 실행되는 API에서는 .endpoints.PROJECT_ID.cloud.goog 도메인 이름이 지원되지 않습니다. App Engine의 API에는 Endpoints 서비스 이름으로 PROJECT_ID.appspot.com을 사용하는 것이 좋습니다. App Engine에 API를 배포하면 PROJECT_ID.appspot.com 형식의 이름을 가진 DNS 항목이 자동으로 생성됩니다.
.cloud.goog 도메인은 Google에서 관리하며 Google Cloud 고객이 공유합니다. Google Cloud 프로젝트의 프로젝트 ID는 전역에서 고유하므로 .endpoints.PROJECT_ID.cloud.goog 형식의 도메인 이름은 고유하며 API의 도메인 이름으로 사용할 수 있습니다. .endpoints.PROJECT_ID.cloud.goog 도메인 이름 구성은 선택사항입니다. 원하는 경우, 자신의 도메인 이름을 등록할 수 있습니다.
기본 요건
먼저 이 페이지에서는 Cloud Endpoints API를 이미 만들었고 Compute Engine, Google Kubernetes Engine 또는 Kubernetes에 이를 배포했다고 가정합니다. 테스트를 위해 API가 필요한 경우, 샘플 API 구성 및 배포를 안내하는 가이드 중 하나를 사용할 수 있습니다.
DNS 구성
다음 절차에서는 Endpoints 서비스 이름으로 .endpoints.[PROJECT_ID].cloud.goog를 사용하는 Cloud Endpoints API의 DNS를 구성하는 방법을 설명합니다(여기서 [PROJECT_ID]는 Google Cloud 프로젝트 ID). 편의를 위해 이 절차에서는 OpenAPI 구성 파일을 openapi.yaml이라 합니다.
DNS를 구성하려면 다음 안내를 따르세요.
openapi.yaml을 열고 x-google-endpoints 필드를 다음 스니펫에 표시된 대로 파일에 추가합니다.
일반적으로 host 필드와 x-google-endpoints.name 필드를 동일하게 구성합니다. OpenAPI 사양을 배포할 때 host 필드에 지정된 텍스트가 Endpoints 서비스의 이름으로 사용됩니다.
[API_NAME]을 API 이름(예: bookstore 또는 my-cool-api)으로 바꿉니다.
[PROJECT_ID]를 Google Cloud 프로젝트 ID로 바꿉니다.
[IP_ADDRESS]를 IPv4 주소로 바꿉니다.
예를 들어 Endpoints API 서비스를 Compute Engine 가상 머신 인스턴스에 배포하는 경우에 해당 가상 머신의 외부 IP를 사용할 수 있습니다. 또는 부하 분산기 뒤에서 가상 머신 인스턴스(또는 GKE 포드) 그룹에서 코드를 실행하는 경우, 부하 분산기의 IP 주소를 사용할 수 있습니다.
다음 명령어를 사용하여 Service Management에 새 OpenAPI 사양을 배포합니다.
이전 gcloud 명령어를 사용하여 openapi.yaml을 배포할 때 Service Management는 대상 IP 주소 192.0.2.1로 해석되는 DNS A 레코드 my-cool-api.endpoints.my-project-
id.cloud.goog를 생성합니다. 새 DNS 구성이 확산될 때까지 몇 분 정도 기다려야 할 수 있습니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2024-12-21(UTC)"],[[["\u003cp\u003eCloud Endpoints APIs can use \u003ccode\u003e.endpoints.\u003c/code\u003e\u003cvar translate=no\u003ePROJECT_ID\u003c/var\u003e\u003ccode\u003e.cloud.goog\u003c/code\u003e as the domain name, which is managed by Google and ensures uniqueness due to the globally unique project ID.\u003c/p\u003e\n"],["\u003cp\u003eAlternatively, users can register their own custom domain names for their APIs, requiring them to manage their own DNS configuration.\u003c/p\u003e\n"],["\u003cp\u003eTo configure DNS with \u003ccode\u003e.endpoints.\u003c/code\u003e\u003cvar translate=no\u003ePROJECT_ID\u003c/var\u003e\u003ccode\u003e.cloud.goog\u003c/code\u003e, users must add the \u003ccode\u003ex-google-endpoints\u003c/code\u003e field in their \u003ccode\u003eopenapi.yaml\u003c/code\u003e file, specifying the API name and target IP address.\u003c/p\u003e\n"],["\u003cp\u003eWhen deploying the updated \u003ccode\u003eopenapi.yaml\u003c/code\u003e file, Service Management creates a DNS A-record that resolves the API's domain name to the specified IP address.\u003c/p\u003e\n"],["\u003cp\u003eThe use of \u003ccode\u003e.endpoints.\u003c/code\u003e\u003cvar translate=no\u003ePROJECT_ID\u003c/var\u003e\u003ccode\u003e.cloud.goog\u003c/code\u003e domain is not supported for APIs running on App Engine; instead, \u003cvar translate=no\u003ePROJECT_ID\u003c/var\u003e\u003ccode\u003e.appspot.com\u003c/code\u003e is recommended.\u003c/p\u003e\n"]]],[],null,["# Configuring DNS on the cloud.goog domain\n\nOpenAPI \\| [gRPC](/endpoints/docs/grpc/cloud-goog-dns-configure \"View this page for the Cloud Endpoints gRPC docs\")\n\n\u003cbr /\u003e\n\nAfter your API is deployed, users of your API need to access it through a domain name\nrather than an IP address. You can either:\n\n- Configure `.endpoints.`\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e`.cloud.goog` as the domain name (where \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e is your Google Cloud project ID).\n- Or register your own domain name, such as `example.com`, which entails:\n - Configuring DNS name servers (or using [Cloud DNS](/dns/docs)).\n - Updating registry addresses.\n - Creating and maintaining DNS records.\n\n If you already have a DNS infrastructure, or you want to register your own\n domain name, see [Serving an API from your domain name](/endpoints/docs/grpc/serving-apis-from-domains) for more information.\n\nThis page describes how to configure Cloud Endpoints APIs to use\n`.endpoints.`\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e`.cloud.goog` as the domain\nname. The configuration steps on this page are applicable for APIs using\nOpenAPI running on Compute Engine, Google Kubernetes Engine, or Kubernetes.\n\nThe `.endpoints.`\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e`.cloud.goog` domain name isn't\nsupported for APIs running on App Engine. For APIs on App Engine, we\nrecommend that you use \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e`.appspot.com` as the\nEndpoints service name. When you deploy the API to App Engine, a DNS entry with a\nname in the format \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e`.appspot.com` is created automatically.\n\nThe `.cloud.goog` domain is managed by Google and shared by Google Cloud\ncustomers. Because Google Cloud projects are guaranteed to have a globally unique project ID,\na domain name in the format `.endpoints.`\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e`.cloud.goog` is unique and\ncan be used as the domain name for your API. Configuring the\n`.endpoints.`\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e`.cloud.goog` domain name is optional. If you prefer, you\ncan register your own domain name.\n\nPrerequisites\n-------------\n\nAs a starting point, this page assumes that you have already created your\nCloud Endpoints API and deployed it to Compute Engine, Google Kubernetes Engine, or\nKubernetes. If you need an API for testing, you can use one of the\n[tutorials](/endpoints/docs/openapi/tutorials) that walk you through\nconfiguring and deploying a sample API.\n\nConfiguring DNS\n---------------\n\nThe following procedure describes how to configure DNS for Cloud Endpoints\nAPIs that use `.endpoints.[PROJECT_ID].cloud.goog` as the Endpoints\nservice name where `[PROJECT_ID]` represents your Google Cloud\nproject ID. For convenience, the procedure refers to your\nOpenAPI configuration file as `openapi.yaml`.\n\nTo configure DNS:\n\n1. Open `openapi.yaml`, and add the `x-google-endpoints` field to the file as shown in the following snippet: \n\n ```transact-sql\n swagger: \"2.0\"\n host: \"[API_NAME].endpoints.[PROJECT_ID].cloud.goog\"\n x-google-endpoints:\n - name: \"[API_NAME].endpoints.[PROJECT_ID].cloud.goog\"\n target: \"[IP_ADDRESS]\"\n ```\n\n Typically, you configure the `host` field and the\n `x-google-endpoints.name` field to be the same. When you deploy your\n OpenAPI specification, the text specified in the `host` field is used\n as the name of your Endpoints service.\n2. Replace `[API_NAME]` with the name of your API (for example, `bookstore` or `my-cool-api`).\n3. Replace `[PROJECT_ID]` with your Google Cloud project ID.\n4. Replace `[IP_ADDRESS]` with an IPv4 address.\n\n For example, if you deploy your Endpoints API service to a\n Compute Engine virtual machine instance, you can use the external IP of that\n virtual machine. Alternatively, if you run your code on a group of virtual\n machine instances (or GKE pods) behind a load balancer,\n you can use the IP address of the load balancer.\n5. Deploy your new OpenAPI specification to Service Management using the following command: \n\n ```text\n gcloud endpoints services deploy openapi.yaml\n ```\n\nFor example, if the following is specified in an `openapi.yaml` file: \n\n```text\n swagger: \"2.0\"\n host: \"my-cool-api.endpoints.my-project-id.cloud.goog\"\n x-google-endpoints:\n - name: \"my-cool-api.endpoints.my-project-id.cloud.goog\"\n target: \"192.0.2.1\"\n```\n\n\u003cbr /\u003e\n\nWhen you deploy the `openapi.yaml` using the previous `gcloud` command,\nService Management creates a DNS A-record, `my-cool-api.endpoints.my-project-id.cloud.goog`, which resolves to the target IP address, `192.0.2.1`. You might\nneed to wait a few minutes for the new DNS configuration to propagate.\n\nWhat's next\n-----------\n\n- [Enabling SSL for Endpoints](/endpoints/docs/openapi/enabling-ssl)\n- [Configuring IP addresses](/compute/docs/configure-ip-addresses)\n- [Naming your API service](/endpoints/docs/openapi/naming-your-api-service)\n- [Serving an API from your domain name](/endpoints/docs/openapi/serving-apis-from-domains)"]]