이 페이지에서는 Cloud Storage와 작동 방식을 간략하게 설명합니다.
Cloud Storage는Google Cloud에 객체를 저장하는 서비스입니다. 객체는 모든 형식의 파일로 구성된 변경할 수 없는 데이터 조각입니다. 객체는 버킷이라는 컨테이너에 저장합니다.
모든 버킷은 프로젝트와 연결되며, 프로젝트를 조직 아래에 그룹화할 수 있습니다. Google Cloud 의 각 프로젝트, 버킷, 관리형 폴더, 객체는 Compute Engine 인스턴스와 같은 Google Cloud의 리소스입니다.
프로젝트를 만든 후 Cloud Storage 버킷을 만들고, 버킷에 객체를 업로드하고, 버킷에서 객체를 다운로드할 수 있습니다. 또한 지정된 주 구성원 또는 공개 인터넷의 모든 사용자가 데이터에 액세스 가능하도록 권한을 부여할 수 있습니다.
Google Cloud 계층 구조
Cloud Storage 구조가 실제 사례에 적용되는 방법은 다음과 같습니다.
조직: Example Inc.라는 회사에서
exampleinc.org
라는 Google Cloud조직을 만듭니다.프로젝트: Example Inc.는 여러 애플리케이션을 빌드하며 각 애플리케이션은 프로젝트와 연결됩니다. 각 프로젝트에는 자체 Cloud Storage API 세트와 기타 리소스가 있습니다.
버킷: 각 프로젝트에는 객체를 저장할 컨테이너인 버킷이 여러 개 포함될 수 있습니다. 예를 들어 앱이 생성하는 모든 이미지 파일을 위한
photos
버킷 및 별도의videos
버킷을 만들 수 있습니다.객체: 각 버킷에는
puppy.png
라는 이미지와 같은 개별객체를 본질적으로 무제한 포함할 수 있습니다.관리형 폴더: 각 버킷에는 여러 관리형 폴더가 포함될 수 있으며, 이러한 폴더는 전체 버킷에 부여된 액세스 권한 이상의 추가 액세스 권한을 부여합니다. 이 추가 액세스 권한은 관리형 폴더 이름과 일치하는 프리픽스가 있는 객체에 적용됩니다. 예를 들어 지정된 사용자에게
animals/puppy.png
및animals/kitten.png
와 같은 객체에 대한 추가 액세스 권한을 부여하는animals/
관리형 폴더를 만들 수 있습니다.계층적 네임스페이스가 사용 설정된 버킷: 버킷에 계층적 네임스페이스가 사용 설정될 수 있습니다. 계층적 네임스페이스가 사용 설정된 버킷은 데이터를 논리적 파일 시스템 구조에 저장할 수 있습니다. 폴더 관리 작업은 폴더 만들기, 삭제, 나열, 이름 바꾸기 등의 안정성과 관리 기능을 제공합니다. 계층적 네임스페이스는 분석, AI, ML 워크로드와 같은 데이터 집약적인 작업에 유용합니다. 계층적 네임스페이스가 사용 설정되지 않은 버킷에 비해 객체 읽기 및 쓰기에 대한 초기 QPS 한도가 최대 8배 더 높기 때문입니다.
Cloud Storage용 기본 도구
다음은 Cloud Storage와 상호작용할 수 있는 기본적인 몇 가지 방법입니다.
콘솔: Google Cloud 콘솔은 브라우저에서 데이터를 관리할 수 있는 시각적 인터페이스를 제공합니다.
Google Cloud CLI: gcloud CLI는
gcloud storage
명령어를 사용하여 터미널을 통해 Cloud Storage와 상호작용할 수 있도록 합니다.클라이언트 라이브러리: Cloud Storage 클라이언트 라이브러리로 C++, C#, Go, 자바, Node.js, PHP, Python, Ruby 등 선호하는 언어 중 하나를 사용하여 데이터를 관리할 수 있습니다.
Terraform: Terraform은 Cloud Storage의 인프라를 프로비저닝하는 데 사용할 수 있는 코드형 인프라(IaC) 도구입니다.
Cloud Storage FUSE: Cloud Storage FUSE를 사용하면 Cloud Storage 버킷을 로컬 파일 시스템에 마운트할 수 있습니다. 이렇게 하면 애플리케이션이 표준 파일 시스템 시맨틱스를 사용하여 버킷에서 읽거나 버킷에 쓸 수 있습니다.
gRPC: gRPC를 사용하면 Cloud Storage와 상호작용할 수 있습니다. gRPC는 Google에서 개발한 고성능, 오픈소스 범용 RPC 프레임워크로, 프로토콜 버퍼를 사용하여 서비스를 정의하는 데 사용할 수 있습니다.
데이터 보안
객체를 Cloud Storage에 업로드하면 데이터를 보호하고 공유하는 방법을 세밀하게 제어할 수 있습니다. 다음은 Cloud Storage에 업로드하는 데이터를 보호하는 몇 가지 방법입니다.
Identity and Access Management: IAM을 사용하여 Google Cloud 프로젝트의 리소스에 액세스할 수 있는 사용자를 관리합니다. 리소스에는 Cloud Storage 버킷과 객체는 물론 Compute Engine 인스턴스와 같은 다른 Google Cloud 항목도 포함됩니다.
update
,create
,delete
등 버킷과 객체에 대한 특정 유형의 액세스 권한을 주 구성원에게 부여할 수 있습니다.데이터 암호화: Cloud Storage는 기본적으로 서버 측 암호화를 사용하여 데이터를 암호화합니다. 고객 관리 암호화 키 및 고객 제공 암호화 키와 같은 보조 데이터 암호화 옵션을 사용할 수도 있습니다.
인증: 데이터에 액세스하는 모든 사용자에게 적절한 사용자 인증 정보가 있는지 확인합니다.
버킷 잠금: 보관 정책을 지정하여 버킷의 객체를 보관할 기간을 지정합니다.
소프트 삭제: 최근에 삭제된 객체와 버킷을 보존하여 실수로 인한 삭제나 악의적인 삭제로부터 데이터 영구 손실을 방지합니다. 기본적으로 Cloud Storage는 보관 기간이 7일인 모든 버킷에 소프트 삭제를 사용 설정합니다.
객체 버전 관리: 객체 버전 관리를 사용 설정하면 교체되거나 삭제되는 객체의 라이브 버전을 현재 외 버전으로 유지할 수 있습니다.
버킷 IP 필터링(미리보기): 버킷 IP 필터링을 사용하면 요청의 소스 IP 주소를 기반으로 버킷에 대한 액세스를 제한하고 특정 IP 주소 또는 가상 프라이빗 클라우드(VPC)의 무단 액세스로부터 데이터를 보호할 수 있습니다.
리소스 이름
각 리소스에는 파일 이름과 마찬가지로 리소스를 식별하는 고유 이름이 있습니다. 버킷에는 projects/_/buckets/BUCKET_NAME
형태의 리소스 이름이 있으며, 여기서 BUCKET_NAME
은 버킷 ID입니다. 객체에는 projects/_/buckets/BUCKET_NAME/objects/OBJECT_NAME
형태의 리소스 이름이 있으며, 여기서 OBJECT_NAME
은 객체 ID입니다.
리소스 이름 끝에 추가되는 #NUMBER
는 객체의 특정 세대를 나타냅니다. #0
은 객체의 가장 최신 버전을 나타내는 특별 식별자입니다. 객체 이름이 문자열 끝에 있어 세대 번호로 해석될 우려가 있는 경우에 #0
을 추가하면 유용합니다.
빠른 시작 가이드
Cloud Storage 사용의 기본 사항을 알아보려면 다음 가이드를 참조하세요.
다음 단계
- Google Cloud 콘솔 또는 Google Cloud CLI를 통해 Cloud Storage의 기본 사항을 알아봅니다.
- Cloud Storage를 사용하는Google Cloud 점프 스타트 솔루션을 사용해 보세요.
- 클라이언트 라이브러리 시작하기
- Storage Transfer Service를 사용하여 Cloud Storage로 또는 Cloud Storage 버킷 사이에서 온라인 데이터 빠르게 가져오기