PowerShell용 Cloud Tools 설치 및 사용

1. 개요

PowerShell은 .NET Framework를 기반으로 구축된 명령줄 셸 및 관련 스크립트 언어입니다. Windows 환경에서 사용되는 기본 작업 자동화 및 구성 관리 도구입니다. PowerShell cmdlet은 파워셸 내에서 호출되는 경량 명령입니다.

PowerShell용 Cloud Tools는 Google Compute Engine, Google Cloud Storage, Google Cloud SQL, Google Cloud DNS와 같은 Google Cloud 리소스에 액세스하고 이를 조작하기 위한 cmdlet 모음입니다. 앞으로 더 많은 것이 추가될 예정입니다.

이 실습을 따라 PowerShell에서 Google Cloud 리소스와 상호작용하는 방법을 알아보세요.

학습할 내용

  • PowerShell용 Cloud Tools 설치 방법
  • Google Cloud SDK로 인증하는 방법
  • PowerShell에서 Google Compute Engine을 만들고 관리하는 방법
  • PowerShell에서 Google Cloud Storage로 데이터를 백업하는 방법

필요한 항목

  • Google Cloud Platform 프로젝트
  • 브라우저(Chrome 또는 Firefox)
  • 윈도우즈 머신

본 가이드를 어떻게 사용하실 계획인가요?

읽기만 할 계획입니다. 읽은 다음 연습 활동을 완료할 계획입니다.

귀하의 Google Cloud Platform 사용 경험을 평가해 주세요.

<ph type="x-smartling-placeholder"></ph> 초보자 중급 숙련도

2. 설정 및 요구사항

이 Codelab에서는 PowerShell과 상호작용하기 위한 Google Cloud 프로젝트가 필요합니다. 기존 프로젝트가 있으면 기존 프로젝트를 사용하거나 다음 단계에 따라 새 프로젝트를 만들 수 있습니다.

자습형 환경 설정

아직 Google 계정 (Gmail 또는 G Suite)이 없다면 계정을 만들어야 합니다. Google Cloud 콘솔 ( console.cloud.google.com)에 로그인하고 새 프로젝트를 만듭니다.

aa2b71cbc7c28c59.png

60b154eb0fd9569a.png

모든 Google Cloud Platform 프로젝트에서 고유한 이름인 프로젝트 ID를 기억해 두세요. 이 ID는 나중에 이 Codelab에서 PROJECT_ID라고 부릅니다.

다음으로, Google Cloud Datastore 및 Cloud Storage와 같은 Google Cloud Platform 리소스를 사용할 수 있도록 Google Cloud 콘솔에서 결제를 사용 설정해야 합니다.

Google Cloud Platform의 신규 사용자에게는 $300의 무료 체험판이 제공됩니다. 이 Codelab을 실행하는 데는 몇 달러 이상의 비용이 들지 않지만 더 많은 리소스를 사용하기로 결정하거나 리소스를 실행 상태로 두는 경우에는 비용이 더 많이 들 수 있습니다 (이 문서 끝부분의 '삭제' 섹션 참조).

3. 설치

자습형 환경 설치

PowerShell cmdlet은 Windows용 Cloud SDK의 일부로 제공됩니다. 아직 설치하지 않았다면 Windows용 빠른 시작 가이드의 설명에 따라 Windows용 Google Cloud SDK를 다운로드하여 설치합니다. Cloud SDK를 설치할 때 PowerShell 옵션을 선택했는지 확인합니다.

d6df1af5b5b08e41.png

4. 인증

PowerShell용 Cloud Tools는 Cloud SDK에 저장된 사용자 인증 정보와 설정을 사용합니다. 따라서 cmdlet를 사용하려면 먼저 Cloud SDK를 사용하여 로그인해야 합니다.

자습형 환경 인증

Google Cloud SDK Shell을 시작하고 다음 명령어를 실행합니다.

gcloud init

Google 사용자 계정을 사용하여 로그인하는 옵션을 수락합니다.

To continue, you must log in. Would you like to log in (Y/n)? Y

브라우저에 메시지가 표시되면 Google 사용자 계정에 로그인하고 허용을 클릭하여 Google Cloud Platform 리소스에 대한 액세스 권한을 부여합니다.

명령 프롬프트에서 소유자, 편집자 또는 뷰어 권한이 있는 프로젝트 목록에서 Cloud Platform 프로젝트를 선택합니다.

Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:

5. PowerShell 내에서 Google Cloud cmdlet 실행

인증이 완료되면 PowerShell에서 Google Cloud cmdlet을 사용할 수 있습니다. PowerShell 명령줄 셸을 찾아 엽니다.

66b0c5d9b1cd7c68.png

Google Cloud cmdlet이 올바르게 설치되었는지 확인하려면 Get-GceInstance cmdlet을 실행하세요. 이렇게 하면 프로젝트에 있는 Compute Engine 인스턴스가 나열됩니다.

3ffd420f66f76b06.png

6. Google Compute Engine 인스턴스 생성 및 관리

이 섹션에서는 PowerShell용 Google Cloud Tools 내에서 Google Compute Engine을 만들고 관리합니다.

인스턴스 구성 만들기

인스턴스를 만들기 전에 먼저 인스턴스 구성을 만들어야 합니다. 최소한 이름, 머신 유형, 부팅 디스크 이미지 또는 기존 부팅 디스크가 필요합니다. Get-GceImage를 사용하여 디스크 이미지를 만들고 New-GceInstanceConfig를 사용하여 구성을 만듭니다.

$disk = Get-GceImage "windows-cloud" -Family "windows-2012-r2"
$config = New-GceInstanceConfig "my-vm-1" `
    -MachineType "n1-standard-4" `
    -DiskImage $disk

이제 인스턴스를 만드는 데 사용할 수 있는 구성이 준비되었습니다.

인스턴스 만들기

새 Compute Engine 인스턴스를 만들려면 Add-GceInstance cmdlet을 사용하세요. 프로젝트와 영역을 지정할 수 있지만 생략하면 기본적으로 현재 활성 Cloud SDK 구성에 있는 매개변수 값으로 지정됩니다. 프로젝트를 지정하는 경우 PROJECT_ID를 자체 프로젝트 ID로 바꿔야 합니다.

$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b

인스턴스 관리

Get-GceInstance cmdlet을 사용하여 프로젝트의 가상 머신 인스턴스를 검색할 수 있습니다. 인스턴스 이름이 프로젝트 또는 영역에서 고유하지 않을 수 있으므로 프로젝트 또는 영역 매개변수를 지정하여 검색 범위를 좁힐 수 있습니다. 기본적으로 cmdlet는 활성 Cloud SDK 구성에 있는 값을 사용합니다.

$instance = Get-GceInstance "my-vm-1"

Set-GceInstance cmdlet을 사용하여 인스턴스를 만든 후에 인스턴스 태그, 디스크, 액세스 구성, 기타 메타데이터를 설정할 수 있습니다. 다음과 같이 메타데이터를 추가한 후 삭제하세요.

Set-GceInstance $instance -AddMetadata @{"newKey" = "newValue"}
Set-GceInstance $instance -RemoveMetadata "newKey"
Set-GceInstance $instance -RemoveTag "beta" -AddTag "alpha"

이제 나중에 인스턴스를 삭제하는 데 사용할 태그를 추가합니다.

Set-GceInstance $instance -AddTag "to-be-removed"

다양한 cmdlet를 사용하여 인스턴스를 시작하거나 중지하거나 다시 시작할 수 있습니다. Get-GceInstance cmdlet에서 반환된 이름 또는 강력한 유형의 객체를 사용하여 인스턴스를 참조할 수 있습니다. 다음과 같은 명령어를 사용해 보세요.

Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"

마지막으로 인스턴스 작업을 완료했으면 Remove-GceInstance cmdlet을 사용하고 앞에서 지정한 태그를 제공하여 Compute Engine에서 인스턴스를 삭제합니다.

Get-GceInstance -Project $project |
    Where { $_.Tags.Items -contains "to-be-removed" } |
    Remove-GceInstance -WhatIf

7. Google Cloud Storage에 데이터 백업

Codelab의 이 부분에서는 PowerShell용 Cloud Tools를 사용하여 로컬 머신의 데이터를 Google Cloud Storage로 백업합니다.

버킷 만들기

Cloud Storage에 파일을 업로드하기 전에 버킷을 만들어야 합니다. 새 버킷을 만들려면 New-GcsBucket cmdlet을 사용하세요.

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

버킷에 파일 업로드하기

New-GcsObject를 사용하여 파일 또는 전체 폴더를 버킷에 업로드할 수 있습니다.

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

다음과 같이 머신에서 로컬 파일을 선택하고 버킷에 업로드합니다.

New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"

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

다음과 같이 머신에서 로컬 폴더를 선택하고 버킷에 업로드합니다.

New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"

검색 데이터

데이터를 검색할 때는 cmdlet을 사용하거나, 일반적인 파일 검색 cmdlet을 통해 공급자를 사용하여 데이터를 검색할 수 있습니다. 버킷에서 다음 명령어를 실행합니다.

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

이름과 크기가 포함된 그리드 팝업이 표시됩니다.

59d92a6bfec86f89.png

데이터 읽기

Read-GcsObject cmdlet을 사용하여 데이터를 읽을 수 있습니다. 예를 들어 다음 명령어를 사용하여 hello.txt 파일을 데스크톱으로 읽을 수 있습니다.

Read-GcsObject $bucket "hello.txt" `
    -OutFile "$Env:UserProfile\Desktop\hello.txt"

데이터 삭제

마지막으로, Remove-GcsObject cmdlet을 사용하여 데이터를 삭제할 수 있습니다. 다음 명령어를 사용하여 버킷의 모든 콘텐츠를 삭제합니다.

Get-GcsObject $bucket | Remove-GcsObject

8. 축하합니다.

이 Codelab에서는 PowerShell에서 Compute Engine 인스턴스와 Cloud Storage 버킷을 관리하는 방법을 배웠지만, 이외에도 더 많은 방법이 있습니다. PowerShell을 사용하여 Cloud SQL 및 Cloud CDN 리소스를 관리할 수도 있습니다. 자세히 알아보려면 아래에 나온 다음 단계 목록을 확인하세요.

학습한 내용

  • PowerShell용 Cloud Tools 설치 방법
  • Google Cloud SDK로 인증하는 방법
  • PowerShell에서 Google Compute Engine을 만들고 관리하는 방법
  • PowerShell에서 Google Cloud Storage로 데이터를 백업하는 방법

다음 단계