프로토콜 필드에서 부하 분산기를 통해 지원할 프로토콜(HTTP 또는 HTTPS)를 선택합니다.
인스턴스 그룹 목록에서 인스턴스 그룹을 클릭합니다.
포트 번호 필드에 8080을 입력합니다.
상태 확인을 클릭하여 상태 확인을 구성합니다.
상태 확인 구성의 이름을 입력합니다.
포트 8080을 할당합니다.
나머지 기본값을 그대로 두고 저장을 클릭합니다.
지금은 나머지 구성을 기본값으로 둡니다.
이후에 추가 포트 등의 구성을 필요에 따라 변경할 수 있습니다.
호스트 및 경로 규칙에는 아무것도 설정할 필요가 없습니다. 기본값인 일치하지 않는 모든 경로 필터를 사용하여 모든 설정을 백엔드 API로 전달할 수 있기 때문입니다. 즉, 부하 분산기에 들어오는 모든 트래픽이 이전 단계에서 정의한 대로 포트 8080(기본 포트)에서 API로 전달됩니다.
프런트엔드 구성을 클릭합니다.
프로토콜 필드에서 부하 분산기를 통해 지원할 프로토콜(HTTP 또는 HTTPS)를 선택합니다.
IP 목록에서 이전에 만든 외부 IP 주소를 클릭합니다.
HTTPS 프로토콜의 경우 SSL을 사용해야 합니다. 인증서 목록에서 원하는 인증서를 클릭합니다.
필요한 경우 다른 프로토콜을 지원하려면 프런트엔드 IP 및 포트 추가를 클릭하고 프로토콜, 동일한 외부 IP 주소, 다른 포트를 지정합니다.
완전히 구성된 부하 분산기를 만들려면 만들기를 클릭합니다. 만들기 버튼이 사용 설정되지 않으면 방금 구성한 구성요소를 확인합니다. 각 구성요소 옆에 체크표시가 나타나야 합니다. 체크표시가 없으면 해당 구성이 완료되지 않은 것입니다.
DNS 변경사항이 적용된 후에는 요청이 부하 분산기를 통해 API로 전송됩니다.
GKE
GKE(Google Kubernetes Engine)용 도메인을 통해 API를 제공하려면 도메인의 DNS 설정에 대해 반환된 외부 IP 주소를 사용하여 ESP를 서비스로 노출해야 합니다. GKE는 부하 분산을 자동으로 수행합니다.
API를 서비스로 노출하려면 다음 단계를 따르세요.
API 백엔드에 Kubernetes 서비스를 구성하지 않았다면 지금 구성합니다. 다음과 비슷한 콘텐츠로 서비스 구성 파일 service.yaml을 만듭니다.
[[["이해하기 쉬움","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-08-18(UTC)"],[[["\u003cp\u003eThis guide outlines the process of serving an API from a custom domain, such as \u003ccode\u003eexample.com\u003c/code\u003e, as an alternative to using a domain managed by Google.\u003c/p\u003e\n"],["\u003cp\u003eBefore configuring a custom domain, you must acquire a domain name, verify domain ownership, name your API host, obtain an SSL certificate if using SSL, and deploy your API and Extensible Service Proxy (ESP).\u003c/p\u003e\n"],["\u003cp\u003eFor App Engine, you can set your API project to use your verified domain by adding a custom domain for your application.\u003c/p\u003e\n"],["\u003cp\u003eFor Compute Engine, serving an API requires reserving a static external IP address, creating an A record with your API name, creating an instance group, and configuring an HTTP(S) load balancer.\u003c/p\u003e\n"],["\u003cp\u003eFor Google Kubernetes Engine (GKE), you must expose ESP as a service, obtain a static external IP address, and create an A record to direct traffic to your API.\u003c/p\u003e\n"]]],[],null,["# Serving an API from your domain name\n\nOpenAPI \\| [gRPC](/endpoints/docs/grpc/serving-apis-from-domains \"View this page for the Cloud Endpoints gRPC docs\")\n\n\u003cbr /\u003e\n\nThis page shows how to serve an API from a custom domain that you own, for\nexample, `example.com`.\n\nAs an alternative to using your own domain name, you can use a domain name\nmanaged by Google. See\n[Using a domain managed by Google](/endpoints/docs/openapi/configure-endpoints#using_a_domain_managed_by_google)\nfor more information.\n\nBefore you begin\n----------------\n\n- Obtain a domain name from a domain name registrar if you don't already have a domain name to use for your API.\n- [Verify domain ownership](/endpoints/docs/openapi/verify-domain-name).\n- [Name your API host name](/endpoints/docs/openapi/configure-endpoints) with your domain name.\n- If you are using SSL with your domain, obtain and upload your SSL certificate.\n- [Deploy your API and Extensible Service Proxy (ESP)](/endpoints/docs/openapi/deploy-api-backend).\n\nConfigure your API project to use your domain name\n--------------------------------------------------\n\nFollow the instructions in the appropriate tab. \n\n### App Engine\n\nTo set your API project to use your verified domain, follow the instructions\nprovided in\n[Adding a custom domain for your application](/appengine/docs/flexible/python/using-custom-domains-and-ssl)\n\n### Compute Engine\n\nThe recommended way to serve an API from Compute Engine instances is\nto use a load balancer across an instance group. You need to reserve an\nexternal IP address for the domain name and use that external IP address for\nthe load balancer.\n\nTo serve the API from a domain name:\n\n1. Reserve at least one static external IP address in your project: \n\n [Go to the External IP Addresses page](https://console.cloud.google.com/networking/addresses/add)\n 1. Assign any name you want to the reserved IP address\n 2. For **Type** , click **Global**.\n 3. For **Attached to** , click **None**. You attach the IP address to a load balancer later.\n2. Visit your domain provider account and edit your domain settings. You must create an *A record* that contains your API name, for example, `myapi.example.com` with the external IP address in its data field\n3. Create an instance group that includes the instances running your API and Extensible Service Proxy (ESP: \n\n [Go to the Create a New Instance group page](https://console.cloud.google.com/compute/instanceGroups/add)\n 1. Assign any name you want for the group and add a description.\n 2. From the **Zone** list, click the zone used by your API instance.\n 3. In the **Instance definition** list, click **Select existing instances**\n 4. In the **VM Instances** field, add the VM instance running the API.\n 5. Click **Create**.\n4. Create and configure an HTTP(S) load balancer: \n\n [Go to the Create a New HTTP(S) load balancer page](https://console.cloud.google.com/networking/loadbalancing/http/add)\n 1. Click **Define a Backend Service** \\\u003e **Create or select a backend service** . \n 2. Assign any name and description you want for this backend service configuration.\n 3. In the **Protocol** field, select the protocol you want to support through the load balancer, **HTTP** or **HTTPS**.\n 4. In the **Instance group** list, click your instance group.\n 5. In the **Port Numbers** field, enter `8080`.\n 6. Click **Health check** to configure health checks:\n - Enter a name for the health check configuration.\n - Assign the port `8080`.\n - To accept the remaining default values, click **Save**.\n 7. For now, accept the defaults for the rest of the configuration. You can make changes later as needed, such as additional ports.\n 8. You don't need to set anything in the **Host and path rules** ; you can forward everything to your backend API by using the default **Any unmatched** filters. This means that all traffic into the load balancer is directed to the API on the port `8080` (the default port) as defined in the preceding steps.\n 9. Click **Frontend configuration** . \n - In the **Protocol** field, select the protocol you want to support through the load balancer, **HTTP** or **HTTPS**.\n - In the **IP** list, click the external IP address you created earlier.\n - For the HTTPS protocol, you need to use SSL. In the **Certificate** list, click the certificate you want.\n - Optionally, if you want to support another protocol, click **Add frontend IP and port**, specify the protocol, the same external IP address, and a different port.\n 10. To create the fully configured load balancer, click **Create** . If the **Create** button isn't enabled, check the components you just configured: a checkmark should appear beside each of the configuration components. A missing checkmark means you haven't completed the configuration.\n 11. After your DNS changes propagate, requests are sent to your API by using the load balancer.\n | **Note:** If requests aren't making it through to your API backend, check your project's [firewall rules](https://console.cloud.google.com/networking/firewalls/list) to make sure your instances can accept traffic on the default ESP port `8080`. For more information, see [Firewalls](/compute/docs/networking#firewalls).\n\n### GKE\n\nTo serve an API over a domain for\nGoogle Kubernetes Engine (GKE), you need to\nexpose ESP as a service, by using the returned external IP\naddress for your domain's DNS settings. Note that GKE\nautomatically does load balancing for you.\n\nTo expose your API as a service:\n\n1. If you don't have one already, [Configure a Kubernetes service](https://kubernetes.io/docs/tasks/access-application-cluster/connecting-frontend-backend/) for your API backends. Create a service configuration file, `service.yaml`, with content similar to the following: \n\n ```\n apiVersion: v1\n kind: Service\n metadata:\n name: echo\n spec:\n ports:\n - port: 80\n targetPort: 8081\n protocol: TCP\n selector:\n app: echo-app\n type: LoadBalancer\n \n ```\n - Change the `selector` label to match your backend labels (`app: echo-app` in this example)\n - Make sure the `targetPort` matches the port used by ESP configured in your API backends. ESP uses port `8081` by default.\n2. Deploy the Kubernetes service: \n\n ```\n kubectl apply -f service.yaml\n \n ```\n3. View the external IP address assigned to your exposed service: \n\n ```\n kubectl get services\n \n ```\n The output displays an `EXTERNAL-IP` address similar to the following: \n\n ```\n NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE\n hello-node 10.X.XXX.202 10X.XXX.XX.123 8080/TCP 1m\n \n ```\n | **Note:** It takes awhile for the API to be exposed as a service, and the external IP isn't visible until this process is complete. So you might have to run `kubectl get services` several times before you see the IP address.\n4. Change the generated external IP from ephemeral to static. \n\n [Go to the External IP Addresses page](https://console.cloud.google.com/networking/addresses/list)\n 1. Select your external IP address from the list.\n 2. In the **Type** list, click **Static**.\n5. Visit your domain provider account and edit your domain settings. You must create an *A record* that contains your API name, for example, `myapi.example.com`, with the external IP address in its data field.\n\nWhat's next\n-----------\n\n- [Serving multiple APIs from a domain](/endpoints/docs/openapi/deploying-apis-subdomains)"]]