Storage Insights 인벤토리 보고서 기능을 사용하면 객체 스토리지를 대규모로 관리할 수 있습니다. 이 방식은 Objects: list
API 작업에 대한 보다 빠르고 예정된 대안입니다.
인벤토리 보고서에는 객체의 스토리지 클래스, ETag, 콘텐츠 유형과 같은 객체의 메타데이터 정보가 포함됩니다. 이 정보는 스토리지 비용을 분석하고, 객체를 감사 및 검증하고, 데이터 보안 및 규정 준수를 보장하는 데 도움이 됩니다. 인벤토리 보고서를 쉼표로 구분된 값(CSV) 또는 Apache Parquet 파일로 내보내 BigQuery와 같은 도구를 사용하여 추가로 분석할 수 있습니다.
이 페이지에서는 Storage Insights 인벤토리 보고서 기능에 대한 개요를 제공합니다. 기능을 사용하는 방법에 대한 안내는 인벤토리 보고서 만들기 및 관리를 참조하세요.
인벤토리 보고서 개요
인벤토리 보고서에는 소스 버킷이라고도 하는 특정 버킷의 객체와 관련 메타데이터 목록이 포함됩니다. 인벤토리 보고서를 생성하려면 먼저 보고서가 생성되는 빈도, 보고서에 포함할 메타데이터 필드, 보고서를 만들고 저장할 버킷(대상 버킷이라고도 함)을 정의하는 인벤토리 보고서 구성을 만듭니다.
인벤토리 보고서 구성을 만들면 범용 고유 식별자(UUID)가 자동으로 할당됩니다. 이 필드는 수정할 수 없습니다. 그러나 인벤토리 보고서 구성의 다음 필드는 수정할 수 있습니다.
- 인벤토리 보고서 구성의 표시 이름
- 인벤토리 보고서에 포함된 객체 메타데이터 필드
- 인벤토리 보고서를 저장하는 대상 버킷
- 인벤토리 보고서가 생성되는 빈도를 결정하는 일정
- 인벤토리 보고서가 생성되는 파일 형식(CSV 또는 Apache Parquet)
인벤토리 보고서 구성을 삭제하면 해당 구성에 대해 새 인벤토리 보고서가 더 이상 생성되지 않지만 기존 인벤토리 보고서는 유지됩니다.
소스 및 대상 버킷
소스 버킷에는 인벤토리 보고서를 생성하려는 객체가 포함되어 있습니다. 또한 인벤토리 보고서 구성도 포함됩니다. 소스 버킷에는 인벤토리 보고서 구성을 최대 100개까지 포함할 수 있습니다.
대상 버킷은 생성된 인벤토리 보고서를 저장합니다. 대상 버킷은 다음 요구사항을 충족해야 합니다.
- 소스 버킷과 동일한 위치에 있어야 합니다.
- 소스 버킷과 동일한 프로젝트에 있어야 합니다.
- 소스 버킷과 동일할 수 있습니다.
인벤토리 보고서 구성을 처음 만들면 사용자를 대신하여 서비스 에이전트가 자동으로 생성됩니다. 인벤토리 보고서 구성을 만들고 대상 버킷에 인벤토리 보고서를 작성하려면 개발자와 서비스 에이전트 모두 필요한 IAM 권한이 있어야 합니다. 개발자 및 서비스 에이전트에 필요한 권한을 참조하세요.
Storage Insights는 소스 및 대상 버킷의 이름을 사용하여 작업을 실행할 때 사용할 버킷을 결정합니다. 소스 또는 대상 버킷을 삭제하고 나중에 같은 이름으로 새 버킷을 만들 경우 Storage Insights가 새 버킷을 사용하여 작업을 실행합니다.
객체 메타데이터 필드
다음 메타데이터 필드는 인벤토리 보고서에 포함할 수 있습니다. '필수'로 표시된 메타데이터 필드는 인벤토리 보고서에 포함되어야 합니다.
메타데이터 필드 | 설명 | 참고 |
---|---|---|
프로젝트 | 소스 버킷이 있는 프로젝트 ID | 필수 |
버킷 | 소스 버킷의 이름입니다. | 필수 |
name | 객체 이름입니다. | 필수 |
위치 | 소스 버킷의 위치입니다. | 선택사항 |
크기 | 객체의 크기입니다. | 선택사항 |
timeCreated | RFC 3339 형식의 객체 생성 시간입니다. | 선택사항 |
timeDeleted | RFC 3339 형식의 객체 삭제 시간입니다. 이 버전의 객체가 더 이상 서비스 중인 버전이 아니지만 버킷에 이전 버전으로 남아 있는 경우에만 반환됩니다. | 선택사항 |
업데이트됨 | RFC 3339 형식의 객체 메타데이터 수정 시간입니다. | 선택사항 |
storageClass | 객체의 스토리지 클래스입니다. | 선택사항 |
etag | 객체의 HTTP 1.1 항목 태그입니다. | 선택사항 |
retentionExpirationTime | 객체를 삭제할 수 있는 가장 이른 시간이며 객체에 설정된 보관 구성 및 객체가 포함된 버킷에 설정된 보관 정책에 따라 달라집니다. retentionExpriationTime 값은 RFC 3339 형식으로 제공됩니다. |
선택사항 |
crc32c | RFC 4960 부록 B의 설명대로 CRC32C 체크섬은 big-endian 바이트 순서로 base64를 사용하여 인코딩됩니다. CRC32C 체크섬에 대한 자세한 내용은 객체 메타데이터를 참조하세요. | 선택사항 |
md5Hash | base64를 사용하여 인코딩된 데이터의 MD5 해시입니다. 복합 객체에는 이 필드가 없습니다. MD5 해시에 대한 자세한 내용은 객체 메타데이터를 참조하세요. | 선택사항 |
이미지 생성 모델군 중 하나이며 | 이 객체의 콘텐츠 세대입니다. 객체 버전 관리에 사용됩니다. | 선택사항 |
metageneration | 이 세대에서 이 객체의 메타데이터 버전입니다. 전제조건과 메타데이터 변경사항 감지에 사용됩니다. metageneration 번호는 특정 객체의 특정 세대 컨텍스트에서만 의미가 있습니다. | 선택사항 |
contentType | 객체 데이터의 Content-Type입니다. 객체가 콘텐츠 유형 없이 저장되면 application/octet-stream으로 제공됩니다. | 선택사항 |
contentEncoding | 객체 데이터의 Content-Encoding입니다. | 선택사항 |
timeStorageClassUpdated | 객체의 스토리지 클래스가 마지막으로 변경된 시간입니다. 객체가 처음 생성되면 timeCreated로 설정됩니다. | 선택사항 |
객체 메타데이터 필드에 대한 자세한 내용은 객체 메타데이터를 참조하세요.
인벤토리 보고서 샤드
인벤토리 보고서에 1,000,000개 이상의 객체가 포함된 경우 Storage Insights가 하나 이상의 샤드 객체를 생성하여 인벤토리 보고서를 작성합니다. 인벤토리 보고서의 모든 샤드가 성공적으로 생성되면 샤드와 동일한 대상 버킷에 매니페스트 파일이 생성됩니다.
인벤토리 보고서 매니페스트 파일
매니페스트 파일이 있다는 것은 인벤토리 보고서를 구성하는 모든 샤드가 생성되었음을 나타냅니다. 매니페스트 파일은 인벤토리 보고서 샤드 객체의 이름도 제공합니다.
매니페스트 파일은 REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json
이름 지정 규칙 따릅니다. 각 항목의 의미는 다음과 같습니다.
REPORT_CONFIG_UUID
는 인벤토리 보고서 구성의 자동 생성된 UUID입니다.TARGET_DATETIME
은 인벤토리 보고서가 생성되는 자동 생성 UTC 날짜 및 시간입니다.
매니페스트 파일 이름의 예시는 fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json
입니다.
manifest.json
파일에는 다음과 같은 자동으로 입력된 필드가 포함됩니다.
{ "report_config": REPORT_CONFIG_FIELDS, "records_processed": NUMBER_OF_INCLUDED_OBJECTS, "snapshot_time": "SNAPSHOT_TIME, "target_datetime": "TARGET_DATETIME, "shard_count": SHARD_COUNT, "report_shards_file_names": [ SHARD_FILE_NAME ...] }
각 항목의 의미는 다음과 같습니다.
REPORT_CONFIG_FIELDS
에는 ReportConfig 리소스 내에 포함된 필드가 있습니다.NUMBER_OF_INCLUDED_OBJECTS
는 인벤토리 보고서에 포함된 객체 수입니다.SNAPSHOT_TIME
은 데이터 스냅샷이 발생하는 자동 생성된 UTC 날짜/시간입니다. 인벤토리 보고서의 모든 데이터가 스냅샷에서 캡처됩니다.TARGET_DATETIME
은 인벤토리 보고서가 생성되는 자동 생성 UTC 날짜/시간입니다.SHARD_COUNT
는 인벤토리 보고서를 구성하는 생성된 샤드의 총 개수입니다.SHARD_FILE_NAME
은 인벤토리 보고서를 구성하는 샤드의 이름입니다.
예시 manifest.json
파일은 다음과 같습니다.
{ "report_config": { "name": "projects/123456789098/locations/us/reportConfigs/fcec5187-afa6-48b0-938a-543d16493dc0", "createTime": "2023-06-08T08:07:53.397366139Z", "updateTime": "2023-06-08T08:07:53.552347723Z", "frequencyOptions": { "frequency": "DAILY", "startDate": { "year": 2023, "month": 6, "day": 9 } "endDate": { "year": 2023, "month": 6, "day": 23 } }, "csvOptions": { "recordSeparator": "\n", "delimiter": "," }, "objectMetadataReportOptions": { "metadataFields": [ "project", "bucket", "name", "location", "updated", "storageClass", ], "storageFilters": { "bucket": "my-test-bucket" }, "storageDestinationOptions": { "bucket": "example-bucket", "destinationPath": "folder/subfolder" } } }, "records_processed": 3993900, "snapshot_time" : "2023-06-06T00:07:27Z", "target_datetime": { "year": 2023, "month": 6, "day": 6 }, "shard_count": 4, "report_shards_file_names": [ "fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv", "fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_1.csv", ... ], }
가격 책정 및 지원되는 버킷 위치
Storage Insights에는 가격 책정이 적용되며 인벤토리 보고서에 포함된 100만 객체당 스토리지 위치에 따라 아래 가격으로 청구됩니다. 스토리지 위치에 대한 자세한 내용은 버킷 위치를 참조하세요.
지원되는 위치
위치 | 지역 | 가격 책정 |
---|---|---|
아시아 | ||
타이완(asia-east1 ) |
객체 100만 개당 $0.0025 | |
홍콩(asia-east2 ) |
객체 100만 개당 $0.0028 | |
도쿄(asia-northeast1 ) |
객체 100만 개당 $0.0028 | |
오사카(asia-northeast2 ) |
객체 100만 개당 $0.0028 | |
서울(asia-northeast3 ) |
객체 100만 개당 $0.0028 | |
싱가포르(asia-southeast1 ) |
객체 100만 개당 $0.0025 | |
오스트레일리아 | ||
시드니(australia-southeast1 ) |
객체 100만 개당 $0.0028 | |
멜버른(australia-southeast2 ) |
객체 100만 개당 $0.0028 | |
유럽 | ||
바르샤바(europe-central2 ) |
객체 100만 개당 $0.0028 | |
핀란드(europe-north1 ) |
객체 100만 개당 $0.0025 | |
마드리드(europe-southwest1 ) |
객체 100만 개당 $0.0028 | |
벨기에(europe-west1 ) |
객체 100만 개당 $0.0025 | |
런던(europe-west2 ) |
객체 100만 개당 $0.0028 | |
프랑크푸르트(europe-west3 ) |
객체 100만 개당 $0.0028 | |
네덜란드(europe-west4 ) |
객체 100만 개당 $0.0025 | |
취리히(europe-west6 ) |
객체 100만 개당 $0.0031 | |
밀라노(europe-west8 ) |
객체 100만 개당 $0.0028 | |
파리(europe-west9 ) |
객체 100만 개당 $0.0028 | |
인도 | ||
뭄바이(asia-south1 ) |
객체 100만 개당 $0.0028 | |
델리(asia-south2 ) |
객체 100만 개당 $0.0028 | |
인도네시아 | ||
자카르타(asia-southeast2 ) |
객체 100만 개당 $0.0028 | |
중동 | ||
텔아비브(me-west1 ) |
객체 100만 개당 $0.0026 | |
북미 | ||
몬트리올(northamerica-northeast1 ) |
객체 100만 개당 $0.0028 | |
토론토(northamerica-northeast2 ) |
객체 100만 개당 $0.0028 | |
아이오와(us-central1 ) |
객체 100만 개당 $0.0025 | |
사우스캐롤라이나(us-east1 ) |
객체 100만 개당 $0.0025 | |
북버지니아(us-east4 ) |
객체 100만 개당 $0.0028 | |
콜럼버스(us-east5 ) |
객체 100만 개당 $0.0025 | |
오리건(us-west1 ) |
객체 100만 개당 $0.0025 | |
로스앤젤레스(us-west2 ) |
객체 100만 개당 $0.0028 | |
솔트레이크시티(us-west3 ) |
객체 100만 개당 $0.0028 | |
라스베이거스(us-west4 ) |
객체 100만 개당 $0.0028 | |
댈러스(us-south1 ) |
객체 100만 개당 $0.0025 | |
남아메리카 | ||
상파울루(southamerica-east1 ) |
객체 100만 개당 $0.0043 | |
산티아고(southamerica-west1 ) |
객체 100만 개당 $0.0037 | |
멀티 리전 | ||
아시아(asia ) |
객체 100만 개당 $0.0028 | |
유럽(eu ) |
객체 100만 개당 $0.0028 | |
미국(us ) |
객체 100만 개당 $0.0028 | |
이중 리전 | ||
도쿄/오사카(asia1 ) |
객체 100만 개당 $0.0028 | |
핀란드/네덜란드(eur4 ) |
객체 100만 개당 $0.0028 | |
아이오와/사우스캐롤라이나(nam4 ) |
객체 100만 개당 $0.0028 |
감사 로깅
Cloud Storage는 인벤토리 보고서가 대상 버킷에 생성될 때 감사 로그를 만듭니다. Storage Insights는 인벤토리 보고서 구성이 생성, 업데이트, 삭제될 때마다 감사 로그를 생성합니다.
인벤토리 보고서 구성이 소스 버킷에서 객체 메타데이터를 읽을 때는 Cloud Storage가 감사 로그를 만들지 않습니다.
VPC 서비스 제어와 통합
VPC 서비스 제어를 사용하여 Storage Insights 리소스에 대한 추가 보안 레이어를 제공할 수 있습니다. VPC 서비스 제어를 사용하는 경우 경계 외부에서 발생하는 요청으로부터 리소스와 서비스를 보호하는 서비스 경계에 프로젝트를 추가합니다. VPC 서비스 제어 및 서비스 경계에 대한 자세한 내용은 서비스 경계 세부정보 및 구성을 참조하세요.
다음 단계
인벤토리 보고서 구성을 만들고 인벤토리 보고서 생성을 시작하는 방법을 알아보세요.