【GCP初心者必見】GCPが提供するコマンドをまとめてみた

GCP Associate Cloud EngineerコマンドラインアイキャッチAWS
この記事は約10分で読めます。

概要

クラウドを利用して開発するに当たって、構築者が特に意識する点は、クラウドサービスの利用の利便性です。例えば、AWSやGCPでは、マネジメントコンソールを利用して、コマンドを触ることなく、ブラウザ上から、マウスをポチポチするだけで、サーバーやストレージを構築する事ができます。

しかし、AWSやGCPの全ての操作がマネジメントコンソールから行えるわけではありません。例えば、オンプレのアプリケーションからストレージの情報を呼び出すときや、バッチ処理で様々なサービスを呼び出す際は、AWSやGCPにおけるサービスのAPIを指定して、コマンドを実行する必要があります。

本記事では、GCPリソースを操作する為のコマンドラインツールをまとめております。

  本記事でまとめているGCPコマンドラインについて

本記事でまとめているGCPコマンドラインツールは、以下の通りです。GCP ACE(Associate Cloud Engineer 認定資格)の出題範囲である、主要なコマンドと各コマンドに設定するオプションをまとめました。

  • gcloud
  • kubectl
  • bq
  • gsutil

GCPが提供する主要なコマンドラインの詳細

GCPコマンドラインの学習

GCPの各コマンドラインの詳細

では、GCPで利用する各コマンドラインを利用例を踏まえてご紹介していきます。

  gcloudコマンド

gcloud(Google Cloud CLI)は、Google Cloud 用の主要なコマンドラインツールです。コマンドライン及びスクリプト内の呼び出しにより、多くの一般的なプラットフォーム タスクを実行できます。

  gcloudが提供するcommandオプションについて

こちらでは、gloudが提供するcommandオプションについて、ご紹介します。


gcloud container

GCPのコンテナを利用する為のコマンド。コンテナの実行や、クラスタの設定及びデプロイ管理ができる。

例:コンテナを実行するためのクラスタを作成する

gcloud container clusters create

【補足】–enable-autoscalingフラグを指定することで、クラスタの自動スケーリングを有効化する

実行中のクラスタの認証情報を取得する

gcloud container clusters get-credentials

【補足】上記コマンド実行後、kubeconfigファイルが存在しない場合、Kubernetesの認証情報が記載された認証ファイルであるkubeconfigファイルを生成する。

既存のクラスタのサイズを変更する

gcloud container clusters resize

【補足】–num-nodesパラメーターを使用してノード数を調整することができる。また、–enable-autoscalingフラグを指定することで、クラスタの自動スケーリングを有効化することができる。

gcloud compute

Compute Engine リソースを管理するcommand

マネージド インスタンス グループを作成する。

gcloud compute instance-groups managed create

サブネット一覧を表示する   

gcloud compute networks subnets list

VPCを作成する   

gcloud compute networks create

Compute Engine サブネットワークの IP 範囲を拡張する

gcloud compute networks subnets expand-ip-range

【補足】–prefix-lengthオプションを指定する事で、CIDR範囲を変更することができる 

マネージド インスタンス グループを作成する

gcloud compute instance-groups managed create

イメージ名に「例:”ubuntu”」を含むイメージの一覧を取得する  

gcloud compute images list --filter="ubuntu*"

マネージドインスタンスグループの自動スケーリングを設定する

gcloud compute instance-groups managed set-autoscaling

スナップショットスケジュールを作成する   

gcloud compute resource-policies create snapshot-schedule

VMインスタンスにSSH接続する 

gcloud compute ssh

【補足】ユーザーの公開SSHキーがプロジェクトのメタデータに存在することを確認する。また、ユーザーが公開SSHキーを持っていない場合は、ssh-keygenを使用して公開SSHキーを生成し、プロジェクトのメタデータに追加する

Compute Engine新しいディスクを作成する

gcloud compute disks create

全てのインスタンスのipを表示する  

 gcloud compute instances list
gcloud config

Google Cloud CLI で使用されるプロパティを設定、表示、設定解除する

設定一覧を表示する

gcloud config configuration list

将来のgcloudコマンドのデフォルトのリージョン(ゾーン)を設定する   

gcloud config set compute / region(zone)

Google CloudCLIプロパティ(プロジェクト)を設定する   

gcloud config set project

ゾーンを修正する   

gcloud config unset compute/zone

cloud sdkのプロパティを表示する   

gcloud config list
gcloud app

GCPのPaasサービスであるApp Engine(GAE)を利用するcommand

App Engine のデプロイを管理する

 gcloud app deploy

トラフィックを受信して​​いるバージョンのみを一覧表示する

gcloud app versions list --hide-no-traffic
gcloud projects

プロジェクトアクセスポリシーを作成および管理するcommand

既存のポリシーをバインディングする

gcloud projects add-iam-policy-binding

【補足】プロジェクト内のユーザーとロールを一覧表示したい場合に利用する

プロジェクトの IAM ポリシーを取得する

gcloud projects get-iam-policy <プロジェクト名>
gcloud info

gcloud 環境に関する情報の詳細を表示する

gcloud build

GoogleCloudBuildのビルドを作成および管理する

コンテナイメージを指定したファイル形式でビルドする

gcloud build submit --config=<YAMLまたはJSONファイル>

【補足】–configフラグで、ビルド構成ファイルとして使用するYAMLまたはJSONファイルを指定する。また、–gcs-log-dirフラグを指定する事で、ビルドログを指定の場所にアップロードする

gcloud auth

Google Cloud CLI の oauth2 認証情報を管理する

JSONキーファイルを使用してサービスアカウントをアクティベートする

gcloud auth activate-service-account

  kubectlコマンド

Kubernetes クラスタを管理できるコマンドラインインターフェイス。gcloud containerコマンドと使い分けが難しいですが、gcloud containerコマンドはコンテナを利用する為のクラスタ作成などを行うコマンドであり、kubectlは、コンテナを管理するコマンドです。

  kubectlが提供するcommandオプションについて

こちらでは、kubectlが提供するcommandオプションについてご紹介します。

kubectl exec

DeploymentやJobの実行を行うコマンドであり、コンテナへのシェルにアクセスする。

kubectl apply

Kubernetesリソースを定義するファイルを通じてアプリケーションを管理する

その他のkubectlコマンド

eployment を公開することによって Service を作成する

kubectl expose deployment

ポッドを一覧表示する。(例:ラベルにPod名が付いたPodを取得する)

kubectl get pods -l "<Pod名>"

  bqコマンド

Python をベースにした BigQuery を利用する為のコマンドラインツール

  bqが提供するcommandオプションについて
bq extract

BigQueryでテーブルデータをエクスポートする

  gsutilコマンド

GCS用を利用する為のコマンドラインツールです。

  gsutilが提供するcommandオプション

こちらでは、gsutilコマンドが提供するcommandオプションについて、ご紹介します。

gsutil mb

GCSバケットを作成する

gsutil web

バケットでウェブサイトをホストする場合のメインページ及びエラーページの構成に使用する

その他のgsutilコマンド

バケットにアップロードされるファイルを一般公開する

gsutil defacl set public read

構成ファイルに基づいてバケットのライフサイクル構成を設定する

gsutil lifecycle set

まとめ

GCPが提供するコマンドラインについて、主要なcommandオプションについてまとめてみました。私の感覚では、AWSもGCP同様にAWS CLIといったcommandオプションについてツールが提供されていますが、GCPの方がよりコマンドラインを利用する機会が多いと思います。

こちらは、GCPの資格(GCP Associate Cloud Engineer)においても、コマンドラインは出題範囲であり、主要なコマンドラインは覚えておく必要があります。クラウドサービスとして、GCPを利用して構築を行う際は、基本公式ドキュメントでコマンドを調べながら構築していくと思いますが、主要なコマンドラインを知っておくことで、作業がスムーズに進むと思います。

コメント