Google Cloud Storage에 데이터 백업

이 페이지에서는 Cloud Tools for PowerShell을 사용하여 로컬 머신의 데이터를 Cloud Storage로 백업하는 방법을 보여줍니다. 대부분의 리소스와 달리 Cloud Tools for PowerShell은 Cloud Storage 리소스, cmdlet, PowerShell 공급자에 액세스하는 두 가지 방법을 제공합니다.

공급자를 사용하면 이미 익숙한 파일 시스템 명령어를 사용하여 저장소 버킷과 파일 시스템 같은 객체에 액세스할 수 있습니다. 하지만 공급자에는 몇 가지 제한사항이 있습니다. 모든 올바른 객체 이름이 올바른 공급자 경로로 변환되지는 않습니다. 공급자를 사용하여 ACL을 관리할 수는 없습니다. 이러한 고급 사례에는 cmdlet을 사용합니다. Cloud Storage cmdlet에 대한 자세한 내용은 Cloud Tools for PowerShell cmdlet 참조 문서를 참조하세요.

데이터 업로드

Cloud Storage의 데이터는 버킷으로 구성됩니다. 새 버킷을 만들려면 다음과 같이 하세요.

cmdlet

새 버킷을 만들려면 New-GcsBucket cmdlet을 사용하세요.

$bucket = "my-gcs-bucket"
New-GcsBucket $bucket

제공자

버킷은 gs:\ 드라이브의 루트에 있는 폴더입니다. 이 수준에서 새 항목을 만들면 새 버킷이 만들어집니다.

cd gs:\
$bucket = "my-gcs-bucket"
mkdir $bucket

버킷에 파일 업로드

파일 하나 또는 전체 디렉토리를 버킷에 업로드할 수 있습니다.

cmdlet

New-GcsObject를 사용하세요. 이를 위해서는 대상 버킷과 객체 이름이 매개변수로 필요합니다. 새로운 저장소 객체의 콘텐츠가 어디에서 유래하는지는 어떤 매개변수 집합을 사용하는지에 따라 달라집니다.

-File 매개변수를 사용하고 파일 경로를 지정하여 로컬 파일의 콘텐츠를 Cloud Storage로 업로드할 수 있습니다. 또는 객체의 콘텐츠를 PowerShell 파이프라인을 통해 문자열로 전달하거나, -Value 매개변수를 사용할 수 있습니다.

-Folder 매개변수를 사용하고 폴더 경로를 지정하면 전체 디렉토리를 로컬 디스크에서 Cloud Storage로 업로드할 수 있습니다. 폴더를 Cloud Storage 버킷의 루트로 바로 업로드하지 않으려면 -ObjectNamePrefix를 사용하여 업로드된 모든 객체에 지정할 프리픽스를 지정하세요.

# Upload the folder LogFiles and its content to the root of the widget bucket.
New-GcsObject -Bucket "widget" -Folder "C:\inetpub\logs\LogFiles"

# Upload the folder LogFiles and its content to directory Test in the widget bucket.
New-GcsObject -Bucket "widget" -Folder "C:\inetpub\logs\LogFiles" -ObjectNamePrefix "Test"

제공자

New-Item을 사용하세요. 여기에는 생성되는 항목에 대한 경로가 필요합니다. 이 경로는 절대 경로 또는 상대 경로일 수 있습니다. 새로운 저장소 객체의 콘텐츠는 -Value 매개변수에 문자열로 지정되거나, -File 매개변수에 파일 경로를 지정하여 지정될 수 있습니다.

New-Item gs:\my-gcs-bucket\new-object -File $file

다음 스니펫은 전체 디렉토리를 로컬 디스크에서 Cloud Storage로 업로드합니다.

cd $folder
$files = Get-ChildItem -Recurse
$data = @()
foreach ($file in $files) {
      $objectPath = $file | Resolve-Path -Relative
      $data += @{file = $file; objectPath = $objectPath}
}
cd gs:\my-gcs-bucket
foreach($element in $data) {
      Write-Host "`t${$element.objectPath}"
      New-Item $element.objectPath -File $element.file
}

데이터 검색

데이터를 검색하는 방법은 cmdlet을 사용하거나, 일반적인 파일 검색 cmdlet을 통해 공급자를 사용하는 것입니다.

cmdlet

Get-GcsObject를 사용하여 버킷의 객체를 검색할 수 있습니다. 이를 Out-GridView cmdlet과 함께 사용하면 데이터를 시각화하는 데 유용합니다.

Get-GcsObject $bucket | Select Name, Size | Out-GridView

제공자

Get-ChildItem 또는 별칭 dir, ls, gci 중 하나를 사용할 수 있습니다. -Recurse 매개변수를 사용하여 모든 논리 폴더 안을 볼 수 있습니다.

cd gs:\my-gcs-bucket
ls -Recurse

데이터 읽기

공급자를 통해 데이터를 읽으려면 표준 Get-Content cmdlet을 사용하세요. 또는 Read-GcsObject cmdlet을 사용하세요.

cmdlet

Cloud Storage 객체의 콘텐츠를 읽으려면 Read-GcsObject cmdlet을 사용하세요. 기본적으로 이 cmdlet은 객체의 콘텐츠를 문자열로 읽고 PowerShell 파이프라인에 씁니다. 대신 이 객체의 콘텐츠를 로컬 디스크에 다운로드하려면 -OutFile 매개변수를 지정하세요.

Read-GcsObject $bucket "timestamp.txt" | Write-Host
Read-GcsObject $bucket "logo.png" `
    -OutFile "$Env:UserProfile\pictures\logo.png"

제공자

Cloud Storage 객체의 콘텐츠를 읽으려면 Get-Content cmdlet 또는 별칭 cat, gc, type 중 하나를 사용하세요.

cd gs:\my-gcs-bucket
cat my-object-name

데이터 삭제

공급자를 통해 데이터를 삭제하려면 표준 Remove-Item cmdlet을 사용하세요. 또는 Remove-GcsObject cmdlet을 사용하세요.

cmdlet

Cloud Storage에서 데이터를 제거하려면 Remove-GcsObject cmdlet을 사용하세요.

Get-GcsObject $bucket | Remove-GcsObject

제공자

Cloud Storage에서 데이터를 제거하려면 Remove-Item cmdlet 또는 별칭 del, rm, erase 중 하나를 사용하세요.

cd gs:\my-gcs-bucket
rm my-object-name