Cloud SDK(Software Development Kit)は、Google Cloud Platform (GCP) のリソースを管理するためのツールセットです。コマンドラインインターフェース、ライブラリ、APIを提供し、開発者やIT管理者がGCPサービスを効率的に操作、自動化、管理できるようにします。Cloud SDKを使用することで、GCPリソースの作成、設定、デプロイ、監視などの操作をローカル環境から簡単に実行できます。
Cloud SDKは、様々なプラットフォームにインストールできます:
# Homebrewを使用したインストール
brew install --cask google-cloud-sdk
# インタラクティブインストーラを使用したインストール
curl https://sdk.cloud.google.com | bash
# Debian/Ubuntuの場合
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt-get update && sudo apt-get install google-cloud-sdk
# インタラクティブインストーラを使用したインストール
curl https://sdk.cloud.google.com | bash
# インストーラを使用したインストール
# https://cloud.google.com/sdk/docs/install-sdk#windows からインストーラをダウンロードして実行
# Chocolateyを使用したインストール
choco install gcloudsdk
# 公式Dockerイメージの使用
docker pull gcr.io/google.com/cloudsdktool/google-cloud-cli:latest
docker run -ti gcr.io/google.com/cloudsdktool/google-cloud-cli:latest
Cloud SDKをインストールした後、初期設定を行います:
gcloud init
gcloud auth login
gcloud config set project PROJECT_ID
gcloud config set compute/region REGION
gcloud config set compute/zone ZONE
gcloudは、Cloud SDKの主要なコマンドラインツールで、GCPリソースを管理するための様々なコマンドを提供します:
gcloud help
gcloud COMMAND --help
# インストール済みコンポーネントの一覧表示
gcloud components list
# コンポーネントのインストール
gcloud components install COMPONENT_ID
# コンポーネントの更新
gcloud components update
# 現在の構成の表示
gcloud config list
# 構成の設定
gcloud config set PROPERTY VALUE
# 構成のエクスポート
gcloud config configurations export CONFIG_FILE
コマンドグループ | 説明 |
---|---|
gcloud compute | Compute Engineリソース(VM、ディスク、ネットワークなど)の管理 |
gcloud app | App Engineアプリケーションの管理とデプロイ |
gcloud functions | Cloud Functionsの管理とデプロイ |
gcloud container | Google Kubernetes Engineクラスタの管理 |
gcloud storage | Cloud Storageの管理(gsutilの代替) |
gcloud iam | Identity and Access Management(IAM)の設定 |
gcloud kms | Cloud Key Management Serviceの管理 |
gcloud sql | Cloud SQLインスタンスの管理 |
gcloud pubsub | Pub/Subトピックとサブスクリプションの管理 |
gcloud run | Cloud Runサービスの管理とデプロイ |
gcloud compute instances create my-instance \
--machine-type=e2-medium \
--zone=us-central1-a \
--image-family=debian-10 \
--image-project=debian-cloud
gcloud app deploy app.yaml
gcloud functions deploy my-function \
--runtime=nodejs14 \
--trigger-http \
--entry-point=helloWorld
gcloud container clusters create my-cluster \
--num-nodes=3 \
--zone=us-central1-a
bqは、BigQueryを操作するためのコマンドラインツールです:
bq query --use_legacy_sql=false 'SELECT * FROM `project.dataset.table` LIMIT 10'
bq mk --dataset project:dataset
bq mk --table project:dataset.table field1:STRING,field2:INTEGER
bq load --source_format=CSV dataset.table data.csv field1:STRING,field2:INTEGER
gsutilは、Cloud Storageを操作するためのコマンドラインツールです:
gsutil mb gs://my-bucket
gsutil cp local-file.txt gs://my-bucket/
gsutil cp gs://my-bucket/remote-file.txt local-file.txt
gsutil ls gs://my-bucket
gsutil rm gs://my-bucket/file-to-delete.txt
Cloud SDKは、様々なプログラミング言語向けのクライアントライブラリを提供しています:
from google.cloud import storage
# クライアントの初期化
storage_client = storage.Client()
# バケットの一覧表示
buckets = storage_client.list_buckets()
for bucket in buckets:
print(bucket.name)
# バケットからファイルのダウンロード
bucket = storage_client.bucket('my-bucket')
blob = bucket.blob('my-file.txt')
blob.download_to_filename('local-file.txt')
const {Storage} = require('@google-cloud/storage');
// クライアントの初期化
const storage = new Storage();
async function listBuckets() {
const [buckets] = await storage.getBuckets();
console.log('Buckets:');
buckets.forEach(bucket => {
console.log(bucket.name);
});
}
listBuckets();
import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
public class StorageExample {
public static void main(String[] args) {
// クライアントの初期化
Storage storage = StorageOptions.getDefaultInstance().getService();
// バケットの一覧表示
System.out.println("Buckets:");
for (Bucket bucket : storage.list().iterateAll()) {
System.out.println(bucket.getName());
}
}
}
Cloud SDKには、一部のGCPサービスをローカルでエミュレートするためのエミュレータが含まれています:
gcloud beta emulators datastore start
gcloud beta emulators pubsub start
$(gcloud beta emulators datastore env-init)
Cloud SDKを効果的に活用するためのベストプラクティス:
gcloud auth login
を実行して再認証するgcloud components install COMPONENT
を実行して必要なコンポーネントをインストールする--verbosity=debug
オプションを使用するCloud SDKは以下のようなユースケースに適しています:
#!/bin/bash
# アプリケーションの自動デプロイスクリプト
# 変数の設定
PROJECT_ID="my-project"
REGION="us-central1"
SERVICE_NAME="my-service"
IMAGE_NAME="gcr.io/${PROJECT_ID}/${SERVICE_NAME}:latest"
# プロジェクトの設定
gcloud config set project ${PROJECT_ID}
# Dockerイメージのビルドとプッシュ
docker build -t ${IMAGE_NAME} .
docker push ${IMAGE_NAME}
# Cloud Runへのデプロイ
gcloud run deploy ${SERVICE_NAME} \
--image=${IMAGE_NAME} \
--platform=managed \
--region=${REGION} \
--allow-unauthenticated
echo "デプロイが完了しました!"
Cloud SDK は、Google Cloud Platform のリソースを管理するための強力なツールセットです。コマンドラインインターフェース、ライブラリ、API を提供し、開発者や IT 管理者が GCP サービスを効率的に操作、自動化、管理できるようにします。
Cloud SDK の主な利点は以下の通りです:
Cloud SDK を効果的に活用するには、定期的な更新、構成プロファイルの活用、サービスアカウントの使用、フィルタリングの活用、出力形式の指定などのベストプラクティスを適用することが重要です。また、繰り返し行うタスクはスクリプトで自動化し、CI/CD パイプラインに統合することで、開発と運用の効率を向上させることができます。