커스텀 도메인 매핑

App Engine을 사용하면 기본 appspot.com 주소 대신 example.com과 같은 커스텀 도메인을 통해 애플리케이션을 제공할 수 있습니다. 커스텀 도메인을 사용하도록 App Engine 앱의 도메인 매핑을 만들 수 있습니다.

기본적으로 커스텀 도메인을 앱에 매핑하면 App Engine은 HTTPS 연결에 사용할 SSL용 관리형 인증서를 발급합니다. 자체 SSL 인증서를 사용하는 방법을 포함하여 커스텀 도메인에서 SSL을 사용하는 방법에 대한 자세한 내용은 SSL로 커스텀 도메인 보호를 참조하세요.

이 페이지를 통해 App Engine에서 실행되는 앱의 도메인 매핑을 만드는 방법을 알아보세요.

다음 리전에 커스텀 도메인을 사용하면 응답이 많이 지연될 수 있습니다.

  • us-west2
  • us-east4
  • northamerica-northeast1
  • southamerica-east1
  • europe-west2
  • europe-west3
  • asia-south1
  • asia-northeast1
  • australia-southeast1

시작하기 전에

  1. 사용할 도메인이 없으면 새 도메인을 구입합니다. Google Domains를 포함하여 모든 도메인 이름 등록기관을 사용할 수 있습니다.

  2. gcloud 도구 명령어를 사용하려면 다음 안내를 따르세요.

    1. Cloud SDK를 설치하고 초기화합니다.

      다운로드 및 설치

  3. Admin API를 사용할 경우 Admin API 액세스에 있는 기본 요건 정보를 참조하세요.

애플리케이션의 커스텀 도메인 추가

App Engine 앱의 커스텀 도메인을 추가하려면 다음 안내를 따르세요.

  1. 웹마스터 센터에서 본인이 도메인의 소유자임을 확인합니다.

    Console
    1. Google Cloud Platform Console에서 App Engine > 설정 > 커스텀 도메인으로 이동합니다.

      커스텀 도메인 페이지로 이동

    2. 커스텀 도메인 추가를 클릭하여 새 커스텀 도메인 추가 양식을 표시합니다.

      커스텀 도메인 추가

    3. 사용할 도메인 선택 섹션에서 사용할 도메인 이름(예: example.com)을 입력한 후 계속을 클릭하여 새 탭에서 웹마스터 센터 페이지를 엽니다.
      1. 웹마스터 센터를 사용하여 도메인의 소유권을 확인합니다.

        중요: App Engine의 경우 CNAME 레코드를 사용하여 도메인 소유권을 확인하는 것이 좋습니다. TXT 레코드를 사용하는 경우 CNAME 레코드로 도메인의 DNS를 구성하면 안 됩니다. CNAME 레코드는 TXT 레코드를 재정의하여 도메인이 확인되지 않은 것처럼 보이게 만들기 때문입니다.

        도메인 확인 방법에 CNAME 레코드 옵션이 제공되지 않는 경우 다음과 같이 기타를 도메인 제공업체로 선택하고 CNAME 레코드 추가를 선택합니다.

        1. 대체 방법을 클릭한 다음 도메인 이름 제공업체를 클릭합니다.
        2. 메뉴에서 기타를 선택합니다.
        3. 문제가 있으신가요? 섹션에서 CNAME 레코드 추가를 클릭한 다음 안내에 따라 도메인 소유권을 확인합니다.

          주의: 도메인 등록기관에서 CNAME을 설정하는 데 1분 정도 걸릴 수 있습니다.

      2. GCP Console에서 새 커스텀 도메인 추가 양식으로 돌아갑니다.
    gcloud
    1. 다음 gcloud domains 명령어를 실행하여 웹마스터 센터 페이지를 엽니다.

      gcloud domains verify DOMAIN

      여기서 DOMAIN은 소유권을 확인할 도메인입니다.

      예:

      gcloud domains verify example.com
    2. 웹마스터 센터를 사용하여 도메인의 소유권을 확인합니다.

      중요: App Engine의 경우 CNAME 레코드를 사용하여 도메인 소유권을 확인하는 것이 좋습니다. TXT 레코드를 사용하는 경우 CNAME 레코드로 도메인의 DNS를 구성하면 안 됩니다. CNAME 레코드는 TXT 레코드를 재정의하여 도메인이 확인되지 않은 것처럼 보이게 만들기 때문입니다.

      도메인 확인 방법에 CNAME 레코드 옵션이 제공되지 않는 경우 다음과 같이 기타를 도메인 제공업체로 선택하고 CNAME 레코드 추가를 선택합니다.

      1. 대체 방법을 클릭한 다음 도메인 이름 제공업체를 클릭합니다.
      2. 메뉴에서 기타를 선택합니다.
      3. 문제가 있으신가요? 섹션에서 CNAME 레코드 추가를 클릭한 다음 안내에 따라 도메인 소유권을 확인합니다.

        주의: 도메인 등록기관에서 CNAME을 설정하는 데 1분 정도 걸릴 수 있습니다.

      다음 CNAME 레코드를 도메인의 DNS 구성에 추가하는 방법은 다음과 같습니다.
      CNAME Label / Host: a1b2c3d4e5.example.com.
      CNAME Destination / Target: gv-abcdefghijk.dv.googlehosted.com
      Label / HostDestination / Target 값을 도메인 DNS 구성의 해당 필드에 매핑합니다. 예를 들어 Google Domains에서는 CNAME을 다음과 같이 설정합니다.
      이름유형TTL데이터
      a1b2c3d4e5CNAME1시간gv-abcdefghijk.dv.googlehosted.com.

      도메인별 안내를 비롯한 CNAME 레코드 추가에 대한 자세한 내용은 지원 페이지를 참조하세요.

  2. 도메인이 확인되었는지 점검합니다. 그렇지 않으면 다음 단계를 진행할 수 없습니다. 확인된 도메인만 표시됩니다.

    Console

    도메인이 목록에 표시되지 않으면 도메인 새로고침을 클릭합니다.

    gcloud

    다음 gcloud domains 명령어를 실행하여 확인된 도메인을 나열합니다.

    gcloud domains list-user-verified
    API

    확인된 도메인을 프로그래매틱 방식으로 나열하려면 Admin API의 apps.authorizedDomains.list 메서드를 참조하세요.

  3. 도메인 소유권을 다른 사용자나 서비스 계정에 위임해야 하는 경우 웹마스터 센터 페이지를 통해 권한을 추가할 수 있습니다.

    1. 웹브라우저에서 다음 주소를 엽니다.

      https://www.google.com/webmasters/verification/home

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

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

      서비스 계정 목록을 보려면 GCP Console에서 서비스 계정 페이지를 엽니다.

      서비스 계정 페이지로 이동

  4. 도메인의 소유권을 확인한 후 도메인을 App Engine 앱에 매핑할 수 있습니다.

    Console

    새 커스텀 도메인 추가 양식의 다음 단계로 이동하여 App Engine 앱에 매핑하려는 도메인을 선택합니다.

    1. 매핑할 도메인과 하위 도메인을 지정합니다. 네이키드 도메인과 www 하위 도메인은 양식에 미리 채워져 있습니다.
      • example.com과 같은 네이키드 도메인은 http://example.com에 매핑됩니다.
      • www와 같은 하위 도메인은 http://www.example.com에 매핑됩니다.
    2. 매핑 저장을 클릭하여 원하는 매핑을 만듭니다.
    3. 새 커스텀 도메인 추가 양식의 마지막 단계에서 나열되는 리소스 레코드를 유형 및 표준 이름(CNAME)과 함께 기록합니다. 이 세부정보를 도메인의 DNS 구성에 추가해야 합니다.

      아래의 예시에서 CNAME은 나열되는 유형 중 하나이고 ghs.googlehosted.com은 표준 이름입니다.

      커스텀 도메인 추가
    gcloud

    다음 gcloud app domain-mappings 명령어를 실행하여 도메인을 App Engine 앱에 매핑합니다.

    gcloud app domain-mappings create DOMAIN
    • 여기서 DOMAIN은 App Engine 앱에 매핑할 도메인입니다(예: *.example.com).
    • 오류가 발생하면 '*.example.com'과 같이 도메인을 따옴표로 묶어 보세요.

      예:

      gcloud app domain-mappings create '*.example.com'
    • 이제 나열되는 리소스 레코드를 해당 유형 및 표준 이름(CNAME)과 함께 기록합니다. 이 세부정보를 도메인의 DNS 구성에 추가해야 합니다.
    API

    도메인을 App Engine 앱에 프로그래매틱 방식으로 매핑하려면 Admin API의 app.domainMappings.create 메서드를 참조하세요.

    도메인이 App Engine 앱에 매핑되면 apps.domainMappings.list 메서드를 사용하여 리소스 레코드를 나열합니다.

  5. 받은 리소스 레코드를 도메인 등록기관의 DNS 구성에 추가합니다.

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

    2. 도메인 구성 페이지의 호스트 레코드 섹션을 찾은 후 App Engine 앱에 도메인을 매핑할 때 받은 각 리소스 레코드를 추가합니다.

      일반적으로 호스트 이름을 표준 이름과 함께 주소로 나열합니다. 예를 들어 Google 도메인을 등록한 경우 DNS 구성에 추가하는 레코드 중 하나는 www 호스트 이름과 ghs.googlehosted.com 주소입니다. 네이키드 도메인을 지정하려면 대신 @ghs.googlehosted.com 주소와 함께 사용하면 됩니다.

      다른 제공업체로부터 마이그레이션하는 경우에는 모든 DNS 레코드가 App Engine 앱을 가리키는지 확인합니다.

      도메인 매핑에 대한 자세한 내용은 아래의 하위 도메인 사용와일드 카드 매핑 섹션을 참조하세요.

    3. 도메인 계정의 DNS 구성 페이지에 변경사항을 저장합니다. 변경사항이 적용되는 데 다소 시간이 걸릴 수 있습니다.

  6. 새 도메인 URL(예: www.example.com)을 통해 앱을 탐색하여 성공 여부를 테스트합니다.

하위 도메인 사용

커스텀 도메인에 와일드 카드 하위 도메인 매핑을 설정하면 애플리케이션이 일치하는 모든 하위 도메인에 대한 요청을 처리합니다.

  • 사용자가 애플리케이션 버전 이름 또는 서비스 이름과 일치하는 도메인을 탐색하면 애플리케이션에서 해당 버전을 제공합니다.
  • 사용자가 서비스 이름과 일치하는 도메인을 탐색하면 애플리케이션에서 해당 서비스를 제공합니다.
  • 기본 도메인마다 관리형 SSL 인증서는 매주 20개로 제한됩니다. 한도에 도달해도 App Engine은 모든 요청이 처리될 때까지 관리형 인증서 발급을 계속 시도합니다.

와일드 카드 매핑

세 번째 수준의 하위 도메인부터 시작하여 모든 수준에서 와일드 카드를 사용하여 하위 도메인을 매핑할 수 있습니다. 예를 들어 도메인이 example.com인 경우 웹 주소 필드에 텍스트를 입력하면 다음과 같이 매핑됩니다.

  • *.example.com을 입력하면 example.com의 모든 하위 도메인이 앱에 매핑됩니다.
  • *.private.example.com을 입력하면 private.example.com의 모든 하위 도메인이 앱에 매핑됩니다.
  • *.nichol.sharks.nhl.example.com을 입력하면 nichol.sharks.nhl.example.com의 모든 하위 도메인이 앱에 매핑됩니다.
  • *.excogitate.system.example.com을 입력하면 excogitate.system.example.com의 모든 하위 도메인이 앱에 매핑됩니다.

App Engine에서 dispatch.yaml 파일을 사용하여 서비스에 와일드 카드 매핑을 수행하면 특정 서비스에 대한 요청 라우팅을 정의할 수 있습니다.

G Suite를 도메인의 다른 하위 도메인(예: sitesmail)과 함께 사용하면 이 매핑의 우선순위가 높아지고 와일드 카드 매핑이 진행되기 전에 먼저 매핑 일치 여부가 확인됩니다. 또한 다른 App Engine 앱이 다른 하위 도메인에 매핑되어 있으면 이러한 매핑도 와일드 카드 매핑보다 더 높은 우선순위를 갖습니다.

일부 DNS 제공업체는 와일드 카드 하위 도메인 매핑을 지원하지 않습니다. 특히 DNS 제공업체가 CNAME 호스트 항목에 와일드 카드를 허용해야 합니다.

서비스, 버전, 인스턴스 구성요소를 포함하는 URL에는 App Engine의 서비스 라우팅 규칙을 따라 와일드 카드 라우팅 규칙이 적용됩니다.

다음 단계

SSL로 커스텀 도메인 보호