로그 리전화

이 문서에서는 _Default 싱크를 사용하여 로그 항목을 특정 리전에 있는 Cloud Logging 버킷으로 라우팅하는 방법을 설명합니다. 지원되는 리전 목록은 위치를 참조하세요.

조직 또는 폴더의 기본 설정을 구성하여 새 _Default_Required 버킷의 기본 스토리지 위치를 설정할 수도 있습니다. 자세한 내용은 기본 저장소 위치 설정을 참고하세요.

이 가이드에서는 모든 로그를 하나의 리전으로 리디렉션하는 예시를 통해 이 프로세스를 안내합니다. 이 프로세스는 다음과 같은 단계로 진행됩니다.

  1. 로그를 저장하기 위해 지정된 리전에 로그 버킷 만듭니다.

  2. 로그를 새로운 로그 버킷으로 라우팅하기 위해 _Default 싱크로 리디렉션합니다.

  3. 로그 탐색기에서 로그를 검색합니다.

개요

Logging에서 로그 버킷은 리전별 리소스입니다. 로그를 저장하고, 색인을 생성하고, 검색하는 인프라는 특정 지리적 위치에 있습니다. Google Cloud는 해당 리전 내의 영역에서 애플리케이션을 중복으로 사용할 수 있도록 해당 인프라를 관리합니다.

조직에서 로그 데이터를 특정 리전에 저장해야 할 수 있습니다. 로그가 저장되는 리전을 선택하는 기본 요소에는 조직의 지연 시간, 가용성, 규정 준수 요구사항 충족이 포함됩니다. 로그 스토리지 리전을 선택할 때 애플리케이션에서 사용하는 다른 Google Cloud 제품 및 서비스의 위치를 고려하세요.

주요 개념

Logging의 데이터 리전성에는 다음과 같은 주요 개념이 적용됩니다.

로그 라우터 위치

로그 라우터는 Cloud Logging API에 기록된 모든 로그 항목을 처리합니다. 각 로그 항목을 기존 규칙과 비교하여 Logging 버킷에 저장할 로그 항목과 싱크를 사용하여 지원되는 대상으로 라우팅할 로그 항목을 결정합니다. 또한 로그 라우터는 안정적으로 로그를 라우팅하기 위해 임시로 로그를 저장하므로 싱크에 일시적인 장애가 발생해도 문제가 없습니다.

로그 라우터는 수신된 리전에서 로그를 처리합니다. 로그 라우터는 싱크의 정의를 기반으로 하거나 로그 데이터를 다른 Google Cloud 서비스(예: Security Command Center 위협 감지)와 공유하도록 선택한 경우 다른 리전으로 로그를 보낼 수 있습니다. 싱크는 리전에 관계없이 공평하게 로그에 적용됩니다.

로그 버킷 위치

로그 버킷은 로그 데이터를 저장하고 정리하는 Google Cloud 프로젝트, 결제 계정, 폴더, 조직의 컨테이너입니다.

각 Google Cloud 프로젝트, 결제 계정, 폴더, 조직에 대해 Logging은 자동으로 두 개의 _Required_Default 로그 버킷을 만들며 이 버킷은 global 위치에 있습니다. 기존 버킷의 위치는 변경할 수 없습니다. 그러나 조직에서는 이러한 버킷에 다른 기본 위치를 설정하는 정책을 만들 수 있습니다. 자세한 내용은 조직 및 폴더의 기본 설정 구성을 참조하세요.

모든 Google Cloud 프로젝트에서 사용자 정의 로그 버킷을 만들 수도 있습니다. 사용자 정의 로그 버킷을 만들 때 로그 버킷 위치를 지정할 수 있습니다. 로그 버킷을 만든 후에는 위치를 변경할 수 없지만 싱크를 사용하여 새 버킷을 만든 후 로그 항목을 새 로그 버킷으로 전달할 수 있습니다. 버킷에 위치를 설정하는 방법은 로그 리전화를 참조하세요.

Logging은 여러 리전의 로그를 함께 쿼리하는 기능을 지원합니다. 이 경우 쿼리는 쿼리되는 버킷과 동일한 위치에서 처리된 다음 쿼리를 수신한 리전에서 집계되어 결과를 반환합니다.

로그 버킷의 리전은 로그 스토리지 페이지 및 일부 대화상자에 표시됩니다. 예를 들어 로그 탐색기 페이지로 이동하여 범위 세분화 선택기를 사용하여 로그 보기를 나열하면 지역 정보도 표시됩니다. 이 선택기에서 리전이 global인 경우 리전과 현재 저장소 위치가 모두 GLOBAL (US-WEST4)과 유사한 형식으로 표시됩니다.

시작하기 전에

  1. 로그 항목을 저장할 Google Cloud 프로젝트를 식별합니다.
  2. 로그 항목을 저장할 로그 버킷의 이름과 위치를 식별합니다.
  3. 로그 버킷으로 라우팅할 로그 항목을 결정합니다. 이 가이드에서는 _Default 싱크가 라우팅하는 모든 로그를 포함합니다.
  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

지원되는 리전

로그 버킷을 만들 때 로그를 저장할 위치를 선택할 수 있습니다. 지원되는 리전 목록은 위치를 참조하세요.

로그 버킷 만들기

로그 버킷은 로그 항목을 저장합니다. 프로젝트, 폴더, 조직에는 로그 항목을 로그 버킷 또는 다른 대상에 라우팅하는 로그 싱크가 포함되어 있습니다. 싱크의 대상이 로그 버킷인 경우 해당 로그 버킷은 로그 싱크와 동일한 리소스에 있거나 다른 리소스에 있을 수 있습니다. 자세한 내용은 로그 버킷 구성을 참조하세요.

  1. 셸을 엽니다.

    예를 들어 Cloud Shell을 사용하려면 다음 단계를 따르세요.

    1. Google Cloud 콘솔로 이동합니다.

      Google Cloud 콘솔로 이동

    2. 툴바에서  Cloud Shell 활성화를 클릭합니다.
  2. 로그 버킷을 만들려면 셸에서 gcloud logging buckets create 명령어를 실행합니다. 예시 명령어를 실행하기 전에 다음을 바꿉니다.

    • BUCKET_ID: 로그 버킷의 이름 또는 ID
    • LOCATION: 로그 버킷의 위치
    • PROJECT_ID: 프로젝트 식별자

    명령어 예시:

    gcloud logging buckets create BUCKET_ID \
      --location=LOCATION \
      --project=PROJECT_ID
    
  3. 버킷이 생성되었는지 확인합니다.

    gcloud logging buckets list --project=PROJECT_ID
    

로그 버킷을 만든 후에는 설명, 데이터 보관 기간과 같은 일부 속성을 변경할 수 있습니다. 이렇게 변경하려면 gcloud logging buckets update 명령어를 사용합니다.

_Default 로그 싱크 리디렉션

싱크를 만들어 로그를 로그 버킷으로 라우팅합니다. 싱크에는 싱크를 통해 내보낼 로그 항목과 대상을 선택하는 필터가 포함됩니다. 이 가이드에서는 로그 항목을 이전 단계에서 만든 로그 버킷으로 라우팅하도록 기존 _Default 싱크를 업데이트합니다.

싱크를 업데이트하려면 gcloud logging sinks update 명령어를 실행합니다. 예시 명령어를 실행하기 전에 다음을 바꿉니다.

  • _Default: 이 예시에서는 _Default라는 이름의 싱크의 대상을 업데이트합니다. 다른 싱크를 업데이트하려면 이 변수의 이름을 변경하세요.
  • BUCKET_ID: 로그 버킷의 이름 또는 ID
  • LOCATION: 로그 버킷의 위치
  • PROJECT_ID: 프로젝트 식별자

명령어 예시:

gcloud logging sinks update _Default \
  logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID \
  --log-filter='NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT
    LOG_ID("externalaudit.googleapis.com/activity") AND NOT
    LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT
    LOG_ID("externalaudit.googleapis.com/system_event") AND NOT
    LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT
    LOG_ID("externalaudit.googleapis.com/access_transparency")' \
  --description="Updated the _Default sink to route logs to the LOCATION region"

로그 항목을 만들어 싱크 테스트

싱크를 올바르게 업데이트했는지 확인하려면 다음 절차를 완료하세요.

  1. gcloud logging write 명령어를 사용하여 리전화된 버킷에 테스트 로그 메시지를 전송합니다. 예시 명령어를 실행하기 전에 다음을 바꿉니다.

    • LOG_NAME: 로그의 이름
    • BUCKET_ID: 로그 버킷의 이름 또는 ID
    • PROJECT_ID: 프로젝트 식별자

    명령어 예시:

    gcloud logging write LOG_NAME "Test to route logs to BUCKET_ID" \
    --project=PROJECT_ID
    
  2. 로그 항목을 확인합니다.

    1. Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.

      로그 탐색기로 이동

      검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

    2. 툴바에서 범위 세분화를 클릭한 다음 현재 프로젝트를 선택합니다.

      로그 탐색기는 프로젝트에서 발생한 로그 항목을 표시하도록 구성됩니다.

    3. 로그 필드 창에서 전역 리소스 유형을 선택합니다.

    4. 테스트 로그 항목이 쿼리 결과 패널에 표시됩니다.

Google Cloud 콘솔에서 로그 검색

로그 버킷의 로그 항목을 보려면 Google Cloud 콘솔로 이동하여 다음 단계를 완료하세요.

  1. Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.

    로그 탐색기로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

  2. 범위 상세검색을 선택합니다.

  3. 범위 상세검색 패널에서 로그 뷰를 선택합니다.

  4. BUCKET_NAME과 연결된 _AllLogs 보기를 선택합니다.

  5. 적용을 클릭합니다.

    로그 탐색기가 새로고침되어 버킷의 로그가 표시됩니다.

    로그 탐색기 사용에 대한 자세한 내용은 로그 탐색기를 사용하여 로그 보기를 참고하세요.

다음 단계