GCPUG Shonan
vol.23 gcloud dojo
https://gcpug.jp
gcloudとは?
2
https://gcpug.jp
なぜgcloudか?
3
https://gcpug.jp
今日やること
4
https://gcpug.jp
今日はCloud Shellでやります
https://console.cloud.google.com/
Webコンソールからプロジェクト選んでない状態でCloud Shell起動!
今日はとりあえず全てのコマンドで --help から入ります。
5
https://gcpug.jp
補完
# Cloud shell は補完が設定されてるのでgcloud[スペース]Tabキーを押すと候補が出てきます
# これを全部説明していくとGCPのサービス全部説明になっちゃうので割愛
gcloud
alpha config deployment-manager firebase logging pubsub topic
app container dns help meta service-management version
auth dataflow docker iam ml services
beta dataproc domains info ml-engine source
components datastore endpoints init organizations spanner
compute debug feedback kms projects sql
# とりあえず gcloud [サブコマンド] [アクション] [オプション] みたいな感じのコマンドの形式になってます(例外もアリ)
# 各コマンドよくわからなかったら --help を付ければ大体わかります。
# Webの画面で指定できるけど、コマンドだとalpha/betaの時にしか指定できないオプションなどもあるので注意。
# ちょっとどんなコマンドがあるのか触ってみましょう。
# 補完で出てくるコマンド色々探るだけでもOKです。
6
https://gcpug.jp
基本
# グローバルオプションというのがあって、全てのコマンドで有効なオプションの紹介
gcloud help
# --account 認証済みアカウントを指定する。
# --configurations 設定プロファイルを指定する。(後述)
# --project プロジェクトを指定する。
# --format コマンドの出力フォーマットを指定する。
# 後から出てくるlist系のコマンドを使うときに指定してみて下さい。
# config, csv, default, diff, disable, flattened, get, json, list, multi, none, object, table, text, value, yaml が選べます。
# --help 各種コマンドのヘルプです。けっこう充実してるのでまずコレを見るといいでしょう。
# --quiet, -q 出力なしにする。
# --verbosity コマンドの出力レベルを指定する。
# debug, info, warning, errorを指定可能です。
# ヘルプの中で core/xxxx みたいに書いてあるオプションは、gcloud config set xxxx でデフォルト値を設定しておくことが可能です。
7
https://gcpug.jp
コンポーネント
8
# コンポーネントの確認
# ここでgcloudコマンド以外のコマンドラインツールを確認できます
gcloud version
gcloud components list # ← こっちだと詳細なやつ
# もしbq, gsutilコマンドが入ってなかったらインストールしましょう(流石に入ってると思う)
gcloud components install bq gsutil
# GAEのコマンドもここから入れられます。
gcloud components install app-engine-go
# beta, alpha も大体入れといた方が良いことが多い。
gcloud components install beta alpha
https://gcpug.jp
設定
9
# Cloud Shellではたぶんほぼ不要なんだけど、ローカルでコマンド使うときに便利な設定について。
# 認証やら設定のセットをプロファイルとしてひとまとめに出来ます。
gcloud config configurations list
gcloud config configurations create xxxxxx
# 認証を切り替えるだけだったらauthでいいけど、ほとんどの場合デフォルトのプロジェクトも変わると思うのでこっちで切り替えた方がいいです。
# 必要なアカウントの認証を済ませておく
gcloud auth login # 別のアカウントで認証
gcloud config set account # ↑ のアカウント
gcloud config set project $ANOTHER_PROJECT_ID # 別アカウントのプロジェクト
gcloud config set zone us-central1-c
gcloud config configurations describe default
gcloud config configurations describe xxxxxx
https://gcpug.jp
プロジェクトを作成する
10
# GCPプロジェクトの作成からコマンドラインで出来ます。知ってた?
# まずは確認…。
gcloud projects list
# 作成
gcloud projects create --name gcpug-shonan-vol23 $PROJECT_ID # ← PROJECT_IDだけ自分で適当にふってください。(gcpug-shonanはすでに予約語として使われてるのであしからず)
# 作成できたらデフォルトのプロジェクトとして設定しときましょ。
gcloud config set project $PROJECT_ID
# 作成しただけだと課金アカウントが紐付いていないので紐付けます。Billingコマンドは現時点だとBetaです。
gcloud beta billing accounts list # ← まずBillingIDを確認。コピって下さい。
gcloud beta billing projects link --billing-id $BILLING_ID $PROJECT_ID
# gcloud projects でプロジェクトのIAM設定とかもできます。
# このセッションの最後にプロジェクト削除します(取っときたい人は最後スキップでOKです)。
# なので思う存分色々作ってみて下さい。
https://gcpug.jp
ネットワークを操作してみる 1
11
# 一応GCEの枠の中ということで。
# LBを作成するのはぶっちゃけ画面でやった方が楽です。
# コマンドで作成すると必要なコンポーネントを全部自分で作成する必要があります。
# とりあえずネットワークから。
# オプションでサブネットの指定とか色々できます。今回はとりあえずデフォルトで。
gcloud compute networks create gcpug-network
# コマンドだと、この後ファイアウォールルールも自分で作らないといけません。注意。
# 作りましょう。
gcloud compute firewall-rules create gcpug-http --direction=INGRESS --network=gcpug-network --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http
https://gcpug.jp
ネットワークを操作してみる 2
12
# 静的IPも当然取れます。
gcloud compute addresses create gcpug-shonan-address --region=us-central1
# 作ったらアドレス確認
gcloud compute addresses describe gcpug-shonan-address --region=us-central1
# LBを作るのはけっこう骨が折れるので今回は割愛。
# 時間があれば試してみましょう。
https://gcpug.jp
GCEを操作してみる 1
13
# GCEインスタンスを立てて見ましょう
# gcloud compute instances create あとオプションという形のコマンドです。
# しかし、ゾーン何を指定すれば良いの?マシンタイプ指定するために何て打てばいいんだっけ?イメージ名は?とか色々な疑問がまず出てくると思います。
# そんなときは各種リソースの確認するためのコマンドがあります。
gcloud compute zones list
gcloud compute machine-types list
gcloud compute images list
# scopesだけは… instances create --help で確認してください。
gcloud compute instances create --help
https://gcpug.jp
GCEを操作してみる 2
14
# 色々オプションがあります
gcloud compute instances create gcpug-shonan-test1 # ← インスタンス名\
--image-family ubuntu-1710 --image-project ubuntu-os-cloud # ← インスタンスイメージ \
--deletion-protection # ← このオプションを付けると削除できなくなります(後で変更可能) \
--machine-type g1-small --zone=asia-east1-c # ← マシンタイプとゾーンの指定 \
--preemptible --scopes cloud-platform # ← スコープとか\
--network gcpug-network --address gcpug-shonan-address
# delete protectionを外したい場合はUpdate
gcloud compute instances update gcpug-shonan-test1 --zone us-central1-c --no-deletion-protection
# 起動中とかのインスタンスのコンソールを見たい場合は tail-serial-port-output。
gcloud compute instances tail-serial-port-output gcpug-shonan-test1
# 消す場合
gcloud compute instances delete gcpug-shonan-test1 --zone us-central1-c
# その他色々遊んでみましょう
https://gcpug.jp
Deep in gcloud
15
# alphaとかbetaとかに色々新機能が積み込まれているのでこちらを覗くと楽しいです。
# ただし、そのうち消えたりするので本番利用の際はご注意を。(消えるとかそういう問題ではない)
# alphaのコマンドは申し込んでないと使えなかったりすることが多いので注意して下さい。
gcloud alpha
gcloud beta
https://gcpug.jp
BigQuery
16
# BigQueryもコマンドがありますよ
# データセットとかテーブルのリスト
bq ls
# データセット作成
bq mk shonan_dataset
# ACLとか確認
bq show shonan_dataset
# コマンドで覚えといて役立ちそうなのはload
# GCSに置いてロードするのが早いらしい
bq load [table] [ソースURL] [スキーマ]
https://gcpug.jp
プロジェクトを削除する
17
# GCPプロジェクト削除します
gcloud projects delete $PROJECT_ID
https://gcpug.jp
まとめ
18
https://gcpug.jp