GCP CLI(EC2)

 

https://www.sky365.co.jp/blog/gcp/gce-linuxssh.html
https://cloud.google.com/compute/docs/instances/ssh
https://akamist.com/blog/archives/639

https://cloud.google.com/vpc/docs/multiple-interfaces-concepts?hl=ja
https://cloud.google.com/compute/docs/disks/add-persistent-disk?hl=ja
https://laid-back-scientist.com/gcp-snapshot
https://laid-back-scientist.com/custom-image
https://cloud.google.com/compute/docs/instances/define-instance-placement

 

前作業

gcloud init
gcloud auth list

gcloud --version

gcloud projects create project01-9999999 \
--name="project01"

gcloud projects list


gcloud config list
gcloud config set project project01-9999999
gcloud config set compute/region asia-northeast1
gcloud config set compute/zone asia-northeast1-a


gcloud beta billing accounts list
gcloud beta billing projects link project01-9999999 --billing-account=111111-111111-111111

gcloud services enable compute.googleapis.com


---------------------------------------------

 

プロジェクトレベル公開鍵を設定する

ssh-keygen

ls -l ~/.ssh/

val=$(cat ~/.ssh/id_rsa.pub)

echo $val


gcloud compute project-info add-metadata \
--metadata=ssh-keys="$(whoami):$val"


gcloud compute project-info describe


プロジェクトレベル公開鍵を削除する

gcloud compute project-info \
remove-metadata --keys=ssh-keys

 

---------------------------------------------
VMインスタンスの作成


gcloud compute instances create vm01 \
--machine-type=e2-micro \
--image-project=centos-cloud \
--image=centos-7-v20221004 \
--network-interface=network-tier=STANDARD

gcloud compute instances list
gcloud compute instances describe vm01


(1)プロジェクトレベル公開鍵を使用する場合

gcloud compute ssh vm01 \
--ssh-key-file=~/.ssh/id_rsa


(2)公開鍵を自動で作成する場合
gcloud compute ssh vm01

ls -l ~/.ssh/google_compute*

 

gcloud compute instances stop vm01
gcloud compute instances start vm01


VMインスタンスの削除

gcloud compute instances delete vm01 --quiet

 


---------------------------------------------

ネットワークインターフェースの作成

ネットワークインタフェース単独では作成できない模様


---------------------------------------------


ディスクの作成


gcloud compute disk-types list --zones asia-northeast1-a


gcloud compute disks create disk01 \
--size 10 \
--type pd-standard

gcloud compute disks list

gcloud compute disks describe disk01

 


ディスクのアタッチ

gcloud compute instances attach-disk vm01 \
--disk disk01


ディスクのデタッチ
gcloud compute instances detach-disk vm01 \
--disk disk01

 

ディスクの削除
gcloud compute disks delete disk01

 

 

---------------------------------------------

スナップショットの作成


gcloud compute disks list

gcloud compute snapshots create snap01 \
--source-disk vm01


gcloud compute snapshots list

gcloud compute snapshots describe snap01

 

スナップショットからvmを作成

gcloud compute instances create vm02 \
--source-snapshot snap01 \
--machine-type=e2-micro \
--network-interface=network-tier=STANDARD


スナップショットの削除
gcloud compute snapshots delete snap01

 

 

---------------------------------------------

イメージの作成

gcloud compute disks list

gcloud compute instances stop vm01

gcloud compute images create image01 \
--source-disk vm01

gcloud compute images list 
gcloud compute images describe image01

 

gcloud compute instances start vm01

 

イメージからvmを作成

gcloud compute instances create vm03 \
--image image01 \
--machine-type=e2-micro \
--network-interface=network-tier=STANDARD

 

イメージの削除

gcloud compute images delete image01

 

---------------------------------------------


プレースメントポリシーの作成


スプレッド プレースメントポリシー。ホストのシステム障害の影響を軽減するために VM を分散させる場合には、スプレッド ポリシーを使用します。
コンパクト プレースメントポリシー。VM 間のネットワーク レイテンシを低くするために VM を相互に近い場所に配置する場合は、コンパクト ポリシーを使用します。

スプレッド プレースメントポリシー:
ポリシーごとに最大 8 台の VM をサポート
N1、N2、N2D、C2 マシンタイプのみをサポート

コンパクト プレースメントポリシー:
ポリシーごとに最大 150 台の VM をサポート
A2、C2、C2D、N2、N2D マシンタイプのみをサポート


スプレッド プレースメントポリシーを作成する
gcloud compute resource-policies create group-placement policy01 \
--availability-domain-count 2


コンパクト プレースメントポリシーを作成する

gcloud compute resource-policies create group-placement policy02 \
--collocation COLLOCATED


gcloud compute resource-policies list

gcloud compute resource-policies describe policy01
gcloud compute resource-policies describe policy02

 


プレースメントポリシーを適用してインスタンスを起動する


gcloud compute instances create vm04 \
--resource-policies policy01 \
--machine-type=f1-micro \
--image-project=centos-cloud \
--image=centos-7-v20221004 \
--network-interface=network-tier=STANDARD \
--maintenance-policy=terminate \
--no-restart-on-failure \
--zone asia-northeast1-b


gcloud compute instances create vm05 \
--resource-policies policy02 \
--machine-type=n2d-standard-2 \
--image-project=centos-cloud \
--image=centos-7-v20221004 \
--network-interface=network-tier=STANDARD \
--maintenance-policy=terminate \
--no-restart-on-failure

 


プレースメントポリシーの削除

gcloud compute resource-policies delete policy01
gcloud compute resource-policies delete policy02

 


---------------------------------------------


クリーンアップ

gcloud projects list

gcloud projects delete project01-9999999 --quiet