이 페이지에서는 소유하고 있는 커스텀 도메인(예: example.com
)에서 API를 제공하는 방법을 보여줍니다.
고유 도메인 이름을 사용하는 대신 Google에서 관리하는 도메인 이름을 사용할 수 있습니다. 자세한 내용은 Google에서 관리하는 도메인 사용하기를 참조하세요.
시작하기 전에
- API에 사용할 도메인 이름이 아직 없는 경우 도메인 이름 등록기관에서 도메인 이름을 가져옵니다.
- 도메인 소유권을 확인합니다.
- 도메인 이름으로 API 호스트 이름을 지정합니다.
- 도메인에 SSL을 사용하는 경우 SSL 인증서를 가져와서 업로드합니다.
- API 및 ESP(Extensible Service Proxy)를 배포합니다.
도메인 이름을 사용하도록 API 프로젝트 구성
해당 탭의 안내를 따르세요.
Compute Engine
Compute Engine 인스턴스에서 API를 제공하려면 인스턴스 그룹 내에서 부하 분산기를 사용하는 것이 좋습니다. 도메인 이름의 외부 IP를 예약하고 이 외부 IP 주소를 부하 분산기에 사용해야 합니다.
도메인 이름에서 API를 제공하려면 다음을 따르세요.
- 프로젝트에서 1개 이상의 정적 외부 IP 주소를 예약합니다.
- 예약된 IP 주소에 사용할 이름을 할당합니다.
- 유형에서 전역을 클릭합니다.
- 연결 대상에서 없음을 클릭합니다. 이후에 부하 분산기에 IP 주소를 연결합니다.
- 도메인 제공업체 계정으로 이동하여 도메인 설정을 수정합니다. 해당 데이터 필드에 외부 IP 주소를 사용하여 API 이름(예:
myapi.example.com
)을 포함하는 A 레코드를 만들어야 합니다. - API 및 Extensible Service Proxy(ESP:
)를 실행하는 인스턴스가 포함된 인스턴스 그룹을 만듭니다. - 그룹에 사용할 이름을 할당하고 설명을 추가합니다.
- 영역 목록에서 API 인스턴스에 사용되는 영역을 클릭합니다.
- 인스턴스 정의 목록에서 기존 인스턴스 선택을 클릭합니다.
- VM 인스턴스 필드에 API를 실행하는 VM 인스턴스를 추가합니다.
- 만들기를 클릭합니다.
- HTTP(S) 부하 분산기를 만들고 구성합니다.
- 백엔드 서비스 정의 > 백엔드 서비스 만들기 또는 선택을 클릭합니다.
- 이 백엔드 서비스 구성에 사용할 이름과 설명을 할당합니다.
- 프로토콜 필드에서 부하 분산기를 통해 지원할 프로토콜(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
을 만듭니다.apiVersion: v1 kind: Service metadata: name: echo spec: ports: - port: 80 targetPort: 8081 protocol: TCP selector: app: echo-app type: LoadBalancer
- 백엔드 라벨(이 예시에서는
app: echo-app
)과 일치하도록selector
라벨을 변경합니다. -
targetPort
가 API 백엔드에 구성된 ESP에서 사용되는 포트와 일치하는지 확인합니다. ESP는 기본적으로 포트8081
을 사용합니다. - Kubernetes 서비스를 배포합니다.
kubectl apply -f service.yaml
- 노출된 서비스에 할당된 외부 IP 주소를 확인합니다.
출력에 다음과 같은kubectl get services
EXTERNAL-IP
주소가 표시됩니다.
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node 10.X.XXX.202 10X.XXX.XX.123 8080/TCP 1m
- 생성된 외부 IP를 임시에서 정적으로 변경합니다.
- 목록에서 외부 IP 주소를 선택합니다.
- 유형 목록에서 고정을 클릭합니다.
- 도메인 제공업체 계정으로 이동하여 도메인 설정을 수정합니다. 해당 데이터 필드에 외부 IP 주소를 사용하여 API 이름(예:
myapi.example.com
)을 포함하는 A 레코드를 만들어야 합니다.