Looker(Google Cloud 핵심 서비스) 인스턴스 만들기

이 페이지에서는 Looker(Google Cloud 핵심 서비스) 인스턴스를 프로비저닝하는 방법을 알아봅니다.

시작하기 전에

  1. Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 만들거나 기존 프로젝트로 이동합니다.

    프로젝트 선택기로 이동

  2. Google Cloud 콘솔에서 프로젝트에 Looker API를 사용 설정합니다. API를 사용 설정할 때는 API가 사용 설정되었는지 확인하기 위해 콘솔 페이지를 새로고침해야 할 수 있습니다.

    API 사용 설정

  3. Google Cloud 콘솔에서 프로젝트의 Service Networking API를 사용 설정합니다. API를 사용 설정할 때는 API가 사용 설정되었는지 확인하기 위해 콘솔 페이지를 새로고침해야 할 수 있습니다.

    API 사용 설정

  4. OAuth 클라이언트를 설정하고 승인 사용자 인증 정보를 만듭니다. OAuth 클라이언트를 사용하면 인스턴스를 인증하고 인스턴스에 액세스할 수 있습니다. 다른 인증 방법을 사용하여 인스턴스에 사용자를 인증하는 경우에도 Looker(Google Cloud 핵심 서비스) 인스턴스를 만들려면 OAuth를 설정해야 합니다.
  5. 생성 중인 Looker(Google Cloud 핵심 서비스) 인스턴스에 비공개 IP, VPC 서비스 제어 또는 고객 관리 암호화 키(CMEK)를 사용하려면 인스턴스를 만들기 전에 추가 설정이 필요합니다. 인스턴스를 만드는 동안 추가 버전 및 네트워크 구성이 필요할 수도 있습니다.

필요한 역할

Looker(Google Cloud 핵심 서비스) 인스턴스를 만드는 데 필요한 권한을 얻으려면 관리자에게 인스턴스가 있는 프로젝트에 대한 Looker 고나리자(roles/looker.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

비공개 IP, VPC 서비스 제어 또는 고객 관리 암호화 키(CMEK)를 설정하려면 추가 IAM 역할이 필요할 수 있습니다. 자세한 내용은 해당 기능 관련 문서 페이지를 참조하세요.

Looker(Google Cloud 핵심 서비스) 인스턴스 만들기

Looker(Google Cloud 핵심 서비스)에서 새 인스턴스를 만드는 데 약 60분이 소요됩니다.

Looker(Google Cloud 핵심 서비스) 인스턴스를 만들려면 다음 옵션 중 하나를 선택합니다.

콘솔

  1. Google Cloud 콘솔의 프로젝트에서 Looker(Google Cloud 핵심 서비스) 제품 페이지로 이동합니다. 이 프로젝트에서 Looker(Google Cloud 핵심 서비스) 인스턴스를 이미 만들었으면 인스턴스 페이지가 열립니다.

    Looker(Google Cloud 핵심 서비스)로 이동

  2. 인스턴스 만들기를 클릭합니다.
  3. 인스턴스 이름 섹션에서 Looker(Google Cloud 핵심 서비스) 인스턴스의 이름을 입력합니다. 인스턴스 이름은 인스턴스가 생성된 후 Looker(Google Cloud 핵심 서비스)의 URL과 연결되지 않습니다. 인스턴스를 만든 후에는 인스턴스 이름을 변경할 수 없습니다.
  4. OAuth 애플리케이션 사용자 인증 정보 섹션에서 OAuth 클라이언트를 설정할 때 만든 OAuth 클라이언트 ID 및 OAuth 암호를 입력합니다.
  5. 리전 섹션의 드롭다운 메뉴에서 적절한 옵션을 선택합니다. 적절한 리전은 Looker(Google Cloud 핵심 서비스) 인스턴스가 호스팅되는 리전입니다. 프로젝트 할당량이 할당되는 구독 계약의 리전에 해당하는 리전을 선택하세요. 사용 가능한 리전은 Looker(Google Cloud 핵심 서비스) 위치 문서 페이지에 나열되어 있습니다.
  6. 버전 섹션에서 조직의 요구사항에 따라 인스턴스 버전을 설정합니다. 버전 유형은 인스턴스에 사용할 수 있는 일부 기능에 영향을 미칩니다. 버전 옵션은 다음과 같습니다.

    • Standard: 사용자가 50명 미만인 소규모 조직 또는 팀에 적합한 Looker 플랫폼입니다. 연간 계약을 통해 구매할 수 있습니다.
    • 엔터프라이즈: 다양한 내부 BI 및 분석 사용 사례를 해결하기 위한 보안 강화 기능이 포함된 Looker 플랫폼입니다. 연간 계약으로 이용할 수 있습니다.
    • 삽입: 안정적인 외부 분석 및 커스텀 애플리케이션을 대규모로 배포하고 유지보수하기 위한 Looker 플랫폼입니다. 연간 계약으로 이용할 수 있습니다.

    인스턴스를 만든 후에는 버전을 변경할 수 없습니다. 버전을 변경하려면 가져오기 및 내보내기를 사용하여 Looker(Google Cloud 핵심 서비스) 인스턴스 데이터를 다른 버전으로 구성된 새 인스턴스로 이동할 수 있습니다.

  7. 인스턴스 맞춤설정 섹션에서 구성 옵션 표시를 클릭하여 인스턴스에 맞춤설정할 수 있는 추가 설정 그룹을 표시합니다.

  8. 연결 섹션에 네트워크 연결 옵션이 표시됩니다. 선택한 네트워크 연결 유형은 인스턴스에 사용할 수 있는 Looker 기능에 영향을 미칩니다. 다음과 같은 네트워크 연결 옵션을 사용할 수 있습니다.

    • 공개 IP: 인터넷에 액세스할 수 있는 외부 IP 주소를 할당합니다.
    • 비공개 IP: Google에서 호스팅하는 내부 가상 프라이빗 클라우드(VPC) IP 주소를 할당합니다. 이 주소를 사용하여 VPC에 대한 액세스 권한이 있는 다른 리소스에서 연결할 수 있습니다. 이 옵션을 선택한 경우 Looker(Google Cloud 핵심 서비스)용 비공개 IP 연결 만들기 문서 페이지의 안내에 따라 네트워크 설정을 완료합니다. 엔터프라이즈삽입 버전에서만 비공개 IP를 지원합니다.
    • 두 옵션을 모두 선택할 수도 있습니다. 두 옵션을 모두 선택하면 수신 트래픽이 공개 IP를 통해 라우팅되고 발신 트래픽은 비공개 IP를 통해 라우팅됩니다. Looker(Google Cloud 핵심 서비스) 인스턴스는 공개 IP를 사용하여 인터넷 아웃바운드 트래픽을 시작하지 않습니다.

    비공개 IP만 선택하거나 공개 IP비공개 IP를 모두 선택하는 경우 Looker(Google Cloud 핵심 서비스)에 비공개 IP 사용 문서 페이지의 단계에 따라 인스턴스 생성 중에 네트워크 설정을 완료합니다.

  9. 암호화 섹션에서 기본 Google 관리 암호화 또는 고객 관리 암호화 키(CMEK)를 사용할지 여부를 선택할 수 있습니다. CMEK에 대한 자세한 내용과 인스턴스 생성 중에 이를 구성하는 방법은 Looker(Google Cloud 핵심 서비스)에서 고객 관리 암호화 키 사용 문서 페이지를 참조하세요. 인스턴스를 만든 후에는 암호화 유형을 변경할 수 없습니다.

  10. 유지보수 기간 섹션에서 선택적으로 Looker(Google Cloud 핵심 서비스)가 유지보수를 예약하는 요일 및 시간을 지정할 수 있습니다. 유지보수 기간은 1시간 동안 지속됩니다. 기본적으로 유지보수 기간선호 기간 옵션은 시스템 자동 선택 기간으로 설정됩니다.

  11. 유지보수 거부 기간 섹션에서 선택적으로 Looker (Google Cloud 코어)가 유지보수를 예약하지 않는 일 단위를 지정할 수 있습니다. 유지보수 거부 기간은 최대 60일까지 설정할 수 있습니다. 유지보수 거부 기간 2개 사이에는 유지보수가 가능한 날이 14일 이상 있어야 합니다.

  12. 만들기를 클릭합니다.

인스턴스가 생성되는 동안 콘솔 내의 인스턴스 페이지로 리디렉션됩니다. 새 인스턴스의 상태를 보려면 페이지를 새로고침해야 할 수도 있습니다. Google Cloud 콘솔 메뉴에서 알림 아이콘을 클릭하여 인스턴스 생성 활동을 확인할 수도 있습니다. 인스턴스가 생성되는 동안 Google Cloud 콘솔 메뉴의 알림 아이콘은 로드 아이콘으로 둘러싸입니다.

gcloud

  1. CMEK를 사용하는 경우 먼저 Looker 서비스 계정을 만들고 CMEK 설정 안내를 따릅니다.
  2. gcloud looker instances create 명령어를 사용하여 인스턴스를 만듭니다.

    gcloud looker instances create INSTANCE_NAME \
    --project=PROJECT_ID \
    --oauth-client-id=OAUTH_CLIENT_ID \
    --oauth-client-secret=OAUTH_CLIENT_SECRET \
    --region=REGION \
    --edition=EDITION \
    [--consumer-network=CONSUMER_NETWORK --private-ip-enabled --reserved-range=RESERVED_RANGE]
    [--no-public-ip-enabled]
    [--public-ip-enabled]
    [--async]
    

    다음을 바꿉니다.

    • INSTANCE_NAME: Looker(Google Cloud 핵심 서비스) 인스턴스의 이름입니다. 인스턴스 URL과 연결되어 있지 않습니다.
    • PROJECT_ID: Looker(Google Cloud 핵심 서비스) 인스턴스를 만드는 Google Cloud 프로젝트의 이름입니다.
    • OAUTH_CLIENT_IDOAUTH_CLIENT_SECRET: OAuth 클라이언트를 설정할 때 만든 OAuth 클라이언트 ID 및 OAuth 암호입니다. 인스턴스가 생성되면 OAuth 클라이언트의 승인된 리디렉션 URI 섹션에 인스턴스의 URL을 입력합니다.
    • REGION: Looker(Google Cloud 핵심 서비스) 인스턴스가 호스팅되는 리전입니다. 구독 계약의 리전에 해당하는 리전을 선택하세요. 사용 가능한 리전은 Looker(Google Cloud 핵심 서비스) 위치 문서 페이지에 나열되어 있습니다.
    • EDITION: 인스턴스의 버전입니다. 가능한 값은 core-standard-annual, core-enterprise-annual 또는 core-embed-annual입니다. 인스턴스를 만든 후에는 버전을 변경할 수 없습니다. 버전을 변경하려면 가져오기 및 내보내기를 사용하여 Looker(Google Cloud 핵심 서비스) 인스턴스 데이터를 다른 버전으로 구성된 새 인스턴스로 이동할 수 있습니다.
    • CONSUMER_NETWORK: VPC 네트워크 또는 공유 VPC입니다. 비공개 IP 인스턴스를 만드는 경우 설정해야 합니다.
    • RESERVED_RANGE: Google에서 Looker(Google Cloud 핵심 서비스) 인스턴스의 서브네트워크를 프로비저닝할 VPC 내의 IP 주소 범위입니다. 비공개 IP 인스턴스를 만드는 경우 설정해야 합니다.

    다음 플래그를 포함할 수도 있습니다.

    • --private-ip-enabled는 비공개 IP를 사용 설정합니다.
    • --public-ip-enabled 또는 --no-public-ip-enabled는 공개 IP를 사용 설정 또는 사용 중지하는 데 사용됩니다.
    • Looker(Google Cloud 핵심 서비스) 인스턴스를 만들 때는 --async를 사용하는 것이 좋습니다.
  3. 매개변수를 추가하여 다른 인스턴스 설정을 적용할 수 있습니다.

    [--maintenance-window-day=MAINTENANCE_WINDOW_DAY
          --maintenance-window-time=MAINTENANCE_WINDOW_TIME]
    [--deny-maintenance-period-end-date=DENY_MAINTENANCE_PERIOD_END_DATE
          --deny-maintenance-period-start-date=DENY_MAINTENANCE_PERIOD_START_DATE
          --deny-maintenance-period-time=DENY_MAINTENANCE_PERIOD_TIME]
    --kms-key=KMS_KEY_ID
    
    다음을 바꿉니다.

    • MAINTENANCE_WINDOW_DAY: friday, monday, saturday, sunday, thursday, tuesday, wednesday 중 하나여야 합니다. 유지보수 기간 설정에 대한 자세한 내용은 Looker(Google Cloud 핵심 서비스)의 유지보수 정책 관리 문서 페이지를 참조하세요.
    • MAINTENANCE_WINDOW_TIMEDENY_MAINTENANCE_PERIOD_TIME: UTC 시간 기준 24시간 형식이어야 합니다(예: 13:00, 17:45).
    • DENY_MAINTENANCE_PERIOD_START_DATEDENY_MAINTENANCE_PERIOD_END_DATE: YYYY-MM-DD 형식이어야 합니다.
    • KMS_KEY_ID: 고객 관리 암호화 키(CMEK)를 설정할 때 생성된 키여야 합니다.

Terraform

다음 Terraform 리소스를 사용하여 기본 기능으로 표준 Looker(Google Cloud 핵심 서비스) 인스턴스를 프로비저닝하세요.

# Creates a Standard edition Looker (Google Cloud core) instance with basic functionality enabled.
resource "google_looker_instance" "main" {
  name             = "my-instance"
  platform_edition = "LOOKER_CORE_STANDARD"
  region           = "us-central1"
  oauth_config {
    client_id     = "my-client-id"
    client_secret = "my-client-secret"
  }
}

다음 Terraform 리소스를 사용하여 추가 설정이 적용된 엔터프라이즈 Looker(Google Cloud 핵심 서비스) 인스턴스를 프로비저닝하세요.

# Creates a Standard edition Looker (Google Cloud core) instance with full functionality enabled.

resource "google_looker_instance" "main" {
  name              = "my-instance"
  platform_edition  = "LOOKER_CORE_STANDARD"
  region            = "us-central1"
  public_ip_enabled = true
  admin_settings {
    allowed_email_domains = ["google.com"]
  }
  // User metadata config is only available when platform edition is LOOKER_CORE_STANDARD.
  user_metadata {
    additional_developer_user_count = 10
    additional_standard_user_count  = 10
    additional_viewer_user_count    = 10
  }
  maintenance_window {
    day_of_week = "THURSDAY"
    start_time {
      hours   = 22
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  deny_maintenance_period {
    start_date {
      year  = 2050
      month = 1
      day   = 1
    }
    end_date {
      year  = 2050
      month = 2
      day   = 1
    }
    time {
      hours   = 10
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  oauth_config {
    client_id     = "my-client-id"
    client_secret = "my-client-secret"
  }
}

다음 Terraform 리소스를 사용하여 비공개 네트워크 연결엔터프라이즈 Looker(Google Cloud 핵심 서비스) 인스턴스를 프로비저닝하세요.

# Creates an Enterprise edition Looker (Google Cloud core) instance with full, Private IP functionality.
resource "google_looker_instance" "main" {
  name               = "my-instance"
  platform_edition   = "LOOKER_CORE_ENTERPRISE_ANNUAL"
  region             = "us-central1"
  private_ip_enabled = true
  public_ip_enabled  = false
  reserved_range     = google_compute_global_address.main.name
  consumer_network   = data.google_compute_network.main.id
  admin_settings {
    allowed_email_domains = ["google.com"]
  }
  encryption_config {
    kms_key_name = google_kms_crypto_key.main.id
  }
  maintenance_window {
    day_of_week = "THURSDAY"
    start_time {
      hours   = 22
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  deny_maintenance_period {
    start_date {
      year  = 2050
      month = 1
      day   = 1
    }
    end_date {
      year  = 2050
      month = 2
      day   = 1
    }
    time {
      hours   = 10
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  oauth_config {
    client_id     = "my-client-id"
    client_secret = "my-client-secret"
  }
  depends_on = [
    google_service_networking_connection.main,
    google_kms_crypto_key.main
  ]
}

resource "google_kms_key_ring" "main" {
  name     = "keyring-example"
  location = "us-central1"
}

resource "google_kms_crypto_key" "main" {
  name     = "crypto-key-example"
  key_ring = google_kms_key_ring.main.id
}

resource "google_service_networking_connection" "main" {
  network                 = data.google_compute_network.main.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.main.name]
}

resource "google_compute_global_address" "main" {
  name          = "looker-range"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 20
  network       = data.google_compute_network.main.id
}

data "google_project" "main" {}

data "google_compute_network" "main" {
  name = "default"
}

resource "google_kms_crypto_key_iam_member" "main" {
  crypto_key_id = google_kms_crypto_key.main.id
  role          = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
  member        = "serviceAccount:service-${data.google_project.main.number}@gcp-sa-looker.iam.gserviceaccount.com"
}

Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.

인스턴스 생성은 일단 시작하면 일시중지하거나 종료할 수 없습니다. Terraform 리소스가 성공적으로 프로비저닝되면 터미널에 다음 메시지가 출력됩니다.

Creation complete after XmXs [id=projects/PROJECT-ID/locations/REGION/instances/my-instance-randomly-generated-name]

Apply complete! Resources: X added, X changed, X destroyed.

무작위로 생성된 이름이 할당되는 새 인스턴스의 상태를 보려면 콘솔의 인스턴스 페이지로 이동합니다.

인스턴스를 프로비저닝하는 데 최대 60분이 소요될 수 있습니다.

인스턴스가 생성되면 OAuth 클라이언트의 승인된 리디렉션 URI 섹션에 인스턴스의 URL을 입력합니다.

인스턴스가 생성되고 OAuth 설정을 완료하면 인스턴스 페이지에 표시되는 인스턴스 URL로 이동하여 인스턴스를 볼 수 있습니다. 그런 다음 사용자 인증 방법을 선택하고 사용자를 추가한 후 데이터베이스에 연결하고 인스턴스 설정을 계속할 수 있습니다.

Looker 서비스 계정

Looker(Google Cloud 핵심 서비스)는 Looker 서비스 계정이라는 서비스 에이전트를 사용하여 특정 활동을 수행합니다. 단일 Looker 서비스 계정은 특정 Google Cloud 프로젝트의 모든 Looker(Google Cloud 핵심 서비스) 인스턴스를 대신하여 작동합니다. Looker 서비스 계정은 프로젝트에 Looker(Google Cloud 핵심 서비스) 인스턴스가 처음 생성될 때 자동으로 생성됩니다.

다른 프로젝트의 BigQuery에 연결된 애플리케이션 기본 사용자 인증 정보(ADC)를 사용하는 경우와 같이 Looker 서비스 계정에 대한 정보(예: 이메일 주소)를 확인해야 하는 경우도 있습니다.

또는 CMEK를 사용하고 Looker(Google Cloud 핵심 서비스) 인스턴스를 만들기 전에 Google Cloud CLI, Terraform, API를 사용하여 CMEK를 구성하려는 경우 인스턴스를 만들기 전에 Looker 서비스 계정을 수동으로 만들어야 합니다.

Looker 서비스 계정을 보거나 만들려면 다음 옵션 중 하나를 선택합니다.

콘솔

Looker 서비스 계정을 보려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

    IAM으로 이동
  2. Looker(Google Cloud 핵심 서비스) 인스턴스가 있는 프로젝트를 선택합니다.
  3. Google 제공 역할 부여 포함 체크박스를 선택합니다.

gcloud

Looker 서비스 계정을 만들거나 보려면 다음을 실행하세요.


gcloud beta services identity create --service=looker.googleapis.com --project=PROJECT_ID

PROJECT_ID를 Looker(Google Cloud 핵심 서비스) 인스턴스가 있는 프로젝트로 바꿉니다.

서비스 계정 이름은 Looker Service Account입니다. 이메일의 형식은 service-<project number>@gcp-sa-looker.iam.gserviceaccount.com입니다.

다음 단계