URL 맵 사용

이 가이드에서는 Google Cloud URL 맵을 구성하는 방법을 설명합니다. 이 가이드를 수행하기 전에 URL 맵 개념을 숙지하세요.

URL 맵은 다음 Google Cloud 제품과 함께 사용됩니다.

내부 HTTP(S) 부하 분산 및 Traffic Director는 고급 트래픽 관리 사용 사례를 지원합니다. 자세한 내용은 다음을 참조하세요.

URL 맵 구성

백엔드 서비스백엔드 버킷을 URL 맵에 추가할 수 있습니다.

백엔드 버킷은 외부 HTTP(S) 부하 분산기에서만 지원됩니다.

URL 맵 추가

Console

Cloud Console을 사용하여 URL 맵을 추가하려면 다음 단계를 수행합니다.

  1. 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 화면에서 선택한 부하 분산기에 대해 수정 을 클릭합니다.
  4. 호스트 및 경로 규칙을 선택합니다.
  5. 호스트 및 경로 규칙 추가를 클릭합니다.
  6. 호스트 필드, 경로 필드 또는 둘 모두를 입력하고 백엔드 서비스 또는 백엔드 버킷을 선택합니다.
  7. 호스트 및 경로 규칙 왼쪽에 있는 파란색 체크표시를 확인하고 업데이트 버튼을 클릭합니다.

gcloud

gcloud 명령줄 도구를 사용하여 URL 맵을 추가하려면 url-maps create 명령어를 실행합니다.

gcloud compute url-maps create URL_MAP \
    (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \
   [--description DESCRIPTION] \
   [--global | --region=REGION]

내부 HTTP(S) 부하 분산기의 경우 URL 맵을 만들 때 --region 플래그를 포함해야 합니다.

새로 만든 URL 맵은 하나의 경로, 즉 기본 경로(/*)와 일치합니다. 이 기본 경로 일치자는 자동으로 생성됩니다. 수동으로 생성된 경로 일치자 또는 호스트 규칙과 일치하지 않는 모든 트래픽은 URL 맵 기본 백엔드 서비스로 전송됩니다.

경로 일치자 추가

경로 일치자는 HTTP(S) 요청 경로 또는 경로 프리픽스(예: /video)를 백엔드 서비스에 매핑합니다. 지정된 경로와 일치하는 모든 트래픽은 경로 일치자의 경로 규칙에 의해 처리됩니다. 경로가 경로 규칙과 일치할 경우, 해당 경로 규칙과 연결된 백엔드로 요청이 전달됩니다. 요청이 경로 일치자 no path 규칙과 일치할 경우 해당 요청은 경로 일치자의 기본 백엔드로 전달됩니다.

Console

Cloud Console을 사용하여 경로 일치자를 만들려면 다음 단계를 수행합니다.

  1. 호스트 및 경로 규칙 화면이 아직 열려 있지 않다면 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 화면에서 선택한 부하 분산기에 대해 수정 을 클릭합니다.
  4. 호스트 및 경로 규칙 화면에서 호스트 및 경로 규칙 추가를 클릭하거나 기존 경로 필드를 클릭합니다.
  5. 구성할 경로를 입력합니다(예: /video).
  6. 호스트 및 경로 규칙 왼쪽에 있는 파란색 체크표시를 확인하고 업데이트 버튼을 클릭합니다.

gcloud

gcloud 명령줄 도구를 사용하여 경로 일치자를 만들려면 gcloud compute url-maps add-path-matcher 명령어를 실행합니다.

gcloud compute url-maps add-path-matcher URL_MAP \
   --default-service BACKEND_SERVICE \
   --path-matcher-name PATH_MATCHER \
   [--path-rules PATH=SERVICE]

이 명령어를 사용하려면 불일치 요청을 전송할 수 있는 기본 백엔드 서비스가 필요합니다. 선택사항으로 --path-rules 플래그를 사용하여 요청 경로와 백엔드 서비스 간의 매핑을 정의할 수 있습니다. 다음 예시에서는 요청 경로 /video//video/*video-service 백엔드 서비스로 라우팅합니다.

  --path-rules "/video=video-service,/video/*=video-service"

url-maps createurl-maps add-path-matcher 명령어 모두 --default-service 매개변수가 있습니다. create에서 기본 서비스는 어떤 경로 일치자도 수신 URL과 일치하지 않을 경우에 사용되는 서비스입니다. add-path-matcher에서 기본 서비스는 경로가 경로 일치자와 일치하지만 --path-rules 중 어느 것도 일치하지 않을 때 사용되는 서비스입니다.

호스트 규칙 추가

Console

Cloud Console을 사용하여 호스트 규칙을 만들려면 다음 단계를 수행합니다.

  1. 호스트 및 경로 규칙 화면이 아직 열려 있지 않다면 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 화면에서 선택한 부하 분산기에 대해 수정 을 클릭합니다.
  4. 호스트 및 경로 규칙 화면에서 호스트 및 경로 규칙 추가를 클릭하거나 기존 호스트 필드를 클릭합니다.
  5. 정규화된 호스트 이름을 입력합니다(예: web.example.com).
  6. 호스트 및 경로 규칙 왼쪽에 있는 파란색 체크표시를 확인하고 업데이트 버튼을 클릭합니다.

gcloud

gcloud 명령줄 도구를 사용하여 호스트 규칙을 만들려면 gcloud compute url-maps add-host-rule 명령어를 실행합니다.

  gcloud compute url-maps add-host-rule URL_MAP \
      --hosts HOSTS --path-matcher-name PATH_MATCHER

--hosts 플래그는 요청을 일치시킬 호스트 집합을 정의합니다. 예를 들어 다음 --hosts 값은 www.example.comgoogle.com의 모든 하위 도메인과 일치합니다.

  --hosts *.google.com,www.example.com

백엔드 서비스 또는 백엔드 버킷 선택

Console

URL 맵에 백엔드 서비스 또는 백엔드 버킷을 선택하려면 다음 단계를 수행합니다.

  1. 호스트 및 경로 규칙 화면이 아직 열려 있지 않다면 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 화면에서 선택한 부하 분산기에 대해 수정 을 클릭합니다.
  4. 호스트 및 경로 규칙 화면의 백엔드 필드 풀다운 메뉴에서 사용 가능한 백엔드 서비스 또는 백엔드 버킷을 선택합니다.
  5. 호스트 및 경로 규칙 왼쪽에 있는 파란색 체크표시를 확인하고 업데이트 버튼을 클릭합니다.

gcloud

gcloud 명령줄 도구를 사용하여 백엔드 서비스 또는 백엔드 버킷을 선택하려면 url-maps set-default-service 명령어를 실행합니다.

gcloud compute url-maps set-default-service URL_MAP_NAME
  (--default-backend-bucket=DEFAULT_BACKEND_BUCKET
    | --default-service=DEFAULT_SERVICE)[GCLOUD_WIDE_FLAG ...]

URL 맵 테스트

URL 맵에 구성 테스트를 추가하여 의도대로 URL 맵이 백엔드 서비스 또는 백엔드 버킷으로 요청을 라우팅할 수 있습니다.

URL 맵을 수정하면 테스트가 실행되고 테스트에 실패하면 오류 메시지가 표시됩니다.

  Error: Invalid value for field 'urlMap.tests': ''.
  Test failure: Expect URL '' to map to service '', but actually mapped to ''.

URL 맵에 테스트를 추가하는 것은 선택사항입니다.

Console

Cloud Console에서 테스트를 실행하려면 다음 안내를 따르세요.

  1. 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 화면에서 선택한 부하 분산기에 대해 수정 을 클릭합니다.
  4. 호스트 및 경로 규칙을 클릭합니다.
  5. 호스트 및 경로 규칙 아래에서 구성 테스트 표시를 클릭합니다.
  6. 구성 테스트 추가를 클릭합니다. 다음 테스트 URL 및 백엔드를 추가합니다.
    • 테스트 URL example.com백엔드 www-service.
    • 테스트 URL example.net백엔드 www-service.
    • 테스트 URL example.net/web백엔드 www-service.
    • 테스트 URL example.com/videos백엔드 video-service.
    • 테스트 URL example.com/videos/browse백엔드 video-service.
    • 테스트 URL example.net/static백엔드 static-service.
    • 테스트 URL example.net/static/images백엔드 static-service.
  7. 호스트 및 경로 규칙 왼쪽에 있는 파란색 체크표시를 확인하고 업데이트 버튼을 클릭합니다.

gcloud

gcloud 명령줄 도구를 사용하여 URL 맵에 테스트를 추가하려면 gcloud compute url-maps edit 명령어를 실행합니다.

  gcloud compute url-maps edit URL_MAP

이 명령어는 텍스트 편집기를 실행합니다. 외부 HTTP(S) 부하 분산기의 경우 테스트 형식은 다음과 같아야 합니다.

    tests:
      - host: example.com
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
      - host: example.net
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
      - host: example.com
        path: /videos
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service
      - host: example.com
        path: /videos/browse
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service
      - host: example.net
        path: /web
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
      - host: example.net
        path: /static
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service
      - host: example.net
        path: /static/images
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service

내부 HTTP(S) 부하 분산기의 경우 서비스 URL이 리전별 백엔드 서비스를 가리켜야 합니다. 예를 들면 다음과 같습니다.

https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/[REGION]/backendServices//www-service

호스트 규칙에 호스트를 지정하지 않으면 모든 호스트의 URL(예: example.com 및 example.net)이 일치할 수 있습니다. 호스트 규칙이 있는 경우 example.com 및 example.net과 모두 일치하는 규칙을 만들어야 합니다.

URL 맵 나열

Console

Console에서는 한 번에 한 부하 분산기의 URL 맵만 볼 수 있습니다.

  1. 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 화면에서 선택한 부하 분산기에 대해 수정 을 클릭합니다.
  4. 호스트 및 경로 규칙을 확인합니다.

gcloud

gcloud 명령줄 도구를 사용하여 URL 맵 목록을 표시하려면 url-maps list 명령어를 실행합니다.

gcloud compute url-maps list

URL 맵에 대한 정보 가져오기

Console

URL 맵에 대한 정보를 가져오려면 다음 단계를 수행합니다.

  1. 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 화면에서 선택한 부하 분산기에 대해 수정 을 클릭합니다.
  4. 호스트 및 경로 규칙을 확인합니다.

gcloud

gcloud 명령줄 도구를 사용하여 단일 URL 맵에 대한 정보를 가져오려면 url-maps describe 명령어를 실행합니다.

gcloud compute url-maps describe URL_MAP

URL 맵 삭제

URL 맵은 URL 맵을 참조하는 모든 대상 프록시를 삭제한 후에만 삭제할 수 있습니다. 자세한 내용은 대상 프록시 삭제를 참조하세요.

Console

URL 맵을 삭제하려면 다음 단계를 수행합니다.

  1. 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 화면에서 선택한 부하 분산기에 대해 수정 을 클릭합니다.
  4. 부하 분산기 세부정보 화면에서 호스트 및 경로 규칙을 확인합니다.
  5. URL 맵 오른쪽의 'X'를 클릭하여 삭제합니다. URL 맵이 사라집니다.
  6. 호스트 및 경로 규칙 왼쪽에 있는 파란색 체크표시를 확인하고 업데이트 버튼을 클릭합니다.

gcloud

gcloud 명령줄 도구를 사용하여 URL 맵을 삭제하려면 url-maps delete 명령어를 실행합니다. URL 맵을 삭제하려면 먼저 URL 맵을 참조하는 모든 대상 HTTP 프록시를 삭제해야 합니다.

gcloud compute url-maps delete URL_MAP [--quiet]

경로 일치자 삭제

Console

경로 일치자를 삭제하려면 다음 단계를 수행합니다.

  1. 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 화면에서 선택한 부하 분산기에 대해 수정 을 클릭합니다.
  4. 호스트 및 경로 규칙을 선택합니다.
  5. 기존 URL 맵의 경로 필드에서 경로 일치자 이름의 'x'를 클릭합니다.
  6. 호스트 및 경로 규칙 왼쪽에 있는 파란색 체크표시를 확인하고 업데이트 버튼을 클릭합니다.

gcloud

경로 일치자를 삭제하려면 gcloud compute url-maps remove-path-matcher 명령어를 실행합니다.

 gcloud compute url-maps remove-path-matcher URL_MAP \
     [--path-matcher-name PATH_MATCHER]

호스트 규칙 삭제

Console

호스트 규칙을 삭제하려면 다음 단계를 수행합니다.

  1. 호스트 및 경로 규칙 화면이 아직 열려 있지 않다면 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 화면에서 선택한 부하 분산기에 대해 수정 을 클릭합니다.
  4. 호스트 및 경로 규칙을 선택합니다.
  5. 기존 URL 맵의 호스트 필드에서 호스트 이름의 'x'를 클릭합니다.
  6. 호스트 및 경로 규칙 왼쪽에 있는 파란색 체크표시를 확인하고 업데이트 버튼을 클릭합니다.

gcloud

URL 맵에서 호스트 규칙을 삭제하려면 gcloud compute url-maps remove-host-rule 명령어를 실행합니다.

 gcloud compute url-maps remove-host-rule NAME --host HOST

예를 들어 my-map이라는 URL 맵에서 google.com 호스트를 포함하는 호스트 규칙을 삭제하려면 다음 명령어를 실행합니다.

 gcloud compute url-maps remove-host-rule my-map --host google.com

다음 단계