커스텀 도메인 매핑

Cloud Run for Anthos 서비스에 커스텀 도메인을 사용할 수 있습니다.

서비스에 커스텀 도메인을 사용하려면 서비스를 커스텀 도메인에 매핑한 다음 DNS 레코드를 업데이트합니다. 서비스를 example.com과 같은 도메인 또는 subdomain.example.com과 같은 하위 도메인에 매핑할 수 있습니다.

HTTPS를 사용하는 경우 도메인 매핑이 작동하려면 관리형 TLS 인증서 기능을 사용하거나 자체 인증서를 제공해야 합니다.

여러 커스텀 도메인을 동일한 Cloud Run for Anthos 서비스에 매핑할 수 있습니다.

시작하기 전에

  • 서비스에 매핑할 도메인을 보유하고 있거나 구매해야 합니다. 도메인 이름 등록기관을 사용할 수 있지만, Google Domains 또는 Cloud Domains를 사용하는 경우 도메인은 Cloud Run for Anthos에서 자동으로 확인되므로 도메인 확인 프로세스를 거치지 않아도 됩니다.

    Cloud Domains에 도메인을 등록하려면 Cloud Run for Anthos 콘솔 내의 Cloud Domains에 도메인 등록을 참조하세요.

  • Cloud Run for Anthos에서 WebSocket을 사용하는 경우에는 먼저 다음 kubectl 명령어를 실행해 WebSocket 지원을 사용 설정하고 allow_connect: true인 Istio EnvoyFilter 객체를 생성해야 합니다.

    cat <<EOF | kubectl apply -f -
    apiVersion: networking.istio.io/v1alpha3
    kind: EnvoyFilter
    metadata:
      name: allowconnect-cluser-local-gateway
      namespace: gke-system
    spec:
      workloadSelector:
        labels:
          app: cluster-local-gateway
      configPatches:
      - applyTo: NETWORK_FILTER
        match:
          listener:
            portNumber: 80
            filterChain:
              filter:
                name: "envoy.http_connection_manager"
        patch:
          operation: MERGE
          value:
            typed_config:
              "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager"
              http2_protocol_options:
                allow_connect: true
    EOF
    

커스텀 도메인을 서비스에 매핑

Google Cloud Console 또는 Google Cloud CLI 도구를 사용하여 커스텀 도메인을 서비스에 매핑할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 도메인 매핑 페이지를 엽니다.

    도메인 매핑으로 이동

    디스플레이 창 크기가 너무 작을 경우 커스텀 도메인 매핑 버튼이 표시되지 않습니다. 이 경우 페이지의 오른쪽에 있는 세로 점 3개 아이콘을 클릭해야 합니다.

  2. 도메인 매핑 페이지에서 매핑 추가를 클릭합니다.

  3. 매핑 추가 양식의 드롭다운 목록에서 커스텀 도메인을 매핑할 서비스를 선택합니다.

    도메인 매핑 추가

  4. 도메인 이름을 입력합니다. 기본 경로 매핑은 지원되지 않습니다. 기본 경로는 도메인 이름 뒤에 오는 URL 경로 이름을 나타냅니다. 예를 들어 usersexample.com/users의 기본 경로입니다. Cloud Run for Anthos를 사용하면 특정한 기본 경로가 아닌 /에 도메인을 매핑할 수 있습니다. 따라서 모든 경로 라우팅은 서비스 컨테이너 내부의 라우터를 사용하거나 Firebase 호스팅을 사용하여 처리해야 합니다.

  5. 계속을 클릭합니다.

  6. Google Domains에서 커스텀 도메인을 구입한 경우를 제외하고 Google Cloud 프로젝트에서 도메인을 사용하기 전에 해당 도메인의 소유권을 확인합니다. 예를 들어 subdomain.example.com을 서비스에 매핑하려면 example.com 도메인의 소유권을 확인해야 합니다. 도메인 소유권 확인에 대한 자세한 내용은 웹마스터 센터 도움말을 참조하세요.

  7. 마지막 단계에 표시된 DNS 레코드를 사용하여 도메인 등록기관 웹사이트에서 DNS 레코드를 업데이트합니다. 도메인 매핑의 '...'작업 메뉴에서 DNS 레코드를 클릭하면 언제든지 레코드를 표시할 수 있습니다.

  8. 완료를 클릭합니다.

명령줄

  1. Google Domains에서 커스텀 도메인을 구입한 경우를 제외하고 Google Cloud 프로젝트에서 도메인을 사용하기 전에 해당 도메인의 소유권을 확인합니다. 다음 명령어를 사용하여 사용할 커스텀 도메인이 확인되었는지 여부를 확인할 수 있습니다.

    gcloud domains list-user-verified

    도메인 소유권을 확인해야 하는 경우 웹마스터 센터 확인 페이지를 엽니다.

    gcloud domains verify BASE-DOMAIN

    여기서 BASE-DOMAIN은 확인할 기본 도메인입니다. 예를 들어 subdomain.example.com을 매핑하려면 example.com의 소유권을 확인해야 합니다.

    웹마스터 센터에서 도메인 소유권 확인을 완료합니다. 자세한 내용은 웹마스터 센터 도움말을 참조하세요.

  2. 서비스를 커스텀 도메인에 매핑합니다.

    gcloud run domain-mappings create --service SERVICE --domain DOMAIN

    다음과 같이 바꿉니다.

    • SERVICE를 서비스 이름으로 바꿉니다.
    • DOMAIN을 커스텀 도메인으로 바꿉니다. 기본 경로 매핑은 지원되지 않습니다. 기본 경로는 도메인 이름 뒤에 오는 URL 경로 이름을 나타냅니다. 예를 들어 usersexample.com/users의 기본 경로입니다. Cloud Run for Anthos를 사용하면 특정한 기본 경로가 아닌 /에 도메인을 매핑할 수 있습니다. 따라서 모든 경로 라우팅은 서비스 컨테이너 내부의 라우터를 사용하거나 Firebase 호스팅을 사용하여 처리해야 합니다.

      선택사항: DOMAIN이 이미 다른 서비스에 매핑된 경우 --force-override 플래그를 추가할 수 있습니다. 이 플래그는 이전 서비스에서 매핑을 삭제하고 DOMAINSERVICE 사이의 새 매핑으로 바꿉니다.

  3. Istio 인그레스 게이트웨이 서비스의 부하 분산기 IP 주소를 고정 IP로 예약합니다.

    gcloud compute addresses create ADDRESS-NAME --addresses EXTERNAL-IP --region REGION

    다음과 같이 바꿉니다.

    • ADDRESS-NAME을 정적 IP로 지정할 이름으로 바꿉니다.
    • EXTERNAL-IPgcloud run domain-mapping describe 명령어로 가져온 A 레코드의 IP 주소로 바꿉니다.
    • REGION을 사용 중인 리전으로 바꿉니다.

Cloud Run for Anthos Istio 인그레스 게이트웨이

Istio 인그레스 게이트웨이의 외부 IP를 가져오려면 다음 안내를 따르세요.

kubectl get svc istio-ingress -n gke-system

여기서 결과 출력은 다음과 같이 표시됩니다.

NAME            TYPE           CLUSTER-IP     EXTERNAL-IP  PORT(S)
istio-ingress   LoadBalancer   XX.XX.XXX.XX   pending      80:32380/TCP,443:32390/TCP,32400:32400/TCP

부하 분산기의 EXTERNAL-IP는 반드시 사용해야 하는 IP 주소입니다.

도메인 등록기관에서 DNS 레코드 추가

서비스를 Cloud Run for Anthos의 커스텀 도메인에 매핑했으면 도메인 등록기관의 DNS 레코드를 업데이트해야 합니다. Cloud Run for Anthos는 편의를 위해 입력해야 하는 DNS 레코드를 생성 및 표시합니다. 매핑을 적용하려면 도메인 등록기관의 Cloud Run for Anthos 서비스를 가리키는 이러한 레코드를 추가해야 합니다.

DNS 제공업체로 Cloud DNS를 사용하는 경우 레코드 추가를 참조하세요.

  1. 다음을 사용하여 도메인 매핑에 대한 DNS 레코드 정보를 검색합니다.

    콘솔

    1. Cloud Run for Anthos 도메인 매핑 페이지로 이동합니다.

      도메인 매핑으로 이동

    2. 서비스의 오른쪽에 있는 세로 3개 점 아이콘을 클릭한 다음 DNS 레코드를 클릭하여 모든 DNS 레코드를 표시합니다.

    DNS 레코드 선택

    명령줄

    gcloud run domain-mappings describe --domain DOMAIN

    DOMAIN을 커스텀 도메인으로 바꿉니다(예: example.com 또는 subdomain.example.com).

    resourceRecords 제목 아래에 반환된 레코드가 모두 필요합니다.

  2. 본인 계정으로 도메인 등록기관에 로그인하고 DNS 구성 페이지를 엽니다.

  3. 도메인 구성 페이지의 호스트 레코드 섹션을 찾은 다음 도메인을 Cloud Run for Anthos 서비스에 매핑할 때 받은 각 리소스 레코드를 추가합니다.

  4. 위의 각 DNS 레코드를 DNS 제공업체의 계정에 추가하려면 다음을 수행하세요.

    • 이전 단계에서 DNS 레코드에 반환된 유형을 선택합니다(A, AAAA 또는 CNAME).
    • www 이름을 사용하여 www.example.com을 매핑합니다.
    • @ 이름을 사용하여 example.com을 매핑합니다.
  5. 도메인 계정의 DNS 구성 페이지에 변경사항을 저장합니다. 대부분의 경우 변경사항이 적용되는 데 몇 분 정도 걸리지만 도메인에 대한 이전 DNS 레코드의 등록기관 및 TTL(수명)에 따라 몇 시간이 걸릴 수도 있습니다. 이 온라인 dig 버전과 같이 dig 도구를 사용하여 DNS 레코드가 성공적으로 업데이트되었는지 확인할 수 있습니다.

  6. 새 URL(예: https://www.example.com)을 통해 서비스를 탐색하여 성공 여부를 테스트합니다. 관리형 SSL 인증서를 발급하는 데 몇 분 정도 걸릴 수 있습니다.

다른 사용자 또는 서비스 계정에 확인된 도메인 소유자 추가

사용자가 도메인을 확인하면 해당 도메인은 해당 사용자의 계정으로만 확인됩니다. 즉, 해당 사용자만 해당 도메인을 사용하는 도메인 매핑을 추가할 수 있습니다. 따라서 다른 사용자가 해당 도메인을 사용하는 매핑을 추가할 수 있도록 설정하려면 인증된 소유자로 추가해야 합니다.

도메인의 확인된 소유자를 다른 사용자나 서비스 계정에 추가해야 하는 경우 Search Console 페이지를 통해 권한을 추가할 수 있습니다.

  1. 웹브라우저에서 다음 주소로 이동합니다.

    https://search.google.com/search-console/welcome

  2. 속성에서 사용자 또는 서비스 계정을 추가할 도메인을 클릭합니다.

  3. 확인된 소유자 목록까지 아래로 스크롤하고 소유자 추가를 클릭한 다음 Google 계정 이메일 주소 또는 서비스 계정 ID를 입력합니다.

    서비스 계정 목록을 보려면 Google Cloud 콘솔에서 서비스 계정 페이지를 엽니다.

    서비스 계정 페이지로 이동

Cloud Run for Anthos 콘솔 내에서 Cloud Domains에 도메인 등록

Cloud Run for Anthos 콘솔 내에서 Cloud Domains에 도메인을 등록하려면 다음 단계를 따르세요.

  1. Cloud Run for Anthos 도메인 매핑 페이지로 이동합니다.

    도메인 매핑으로 이동

  2. 도메인 등록을 클릭합니다.

  3. 도메인 등록의 안내에 따라 등록 프로세스를 완료합니다.

  4. 도메인을 Cloud Run for Anthos에 매핑하고 도메인 등록기관의 DNS 레코드를 추가합니다.