GCP CLI(VPC)

 

gcloud init
gcloud auth list


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

プロジェクト作成


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


gcloud projects list


プロジェクト削除

gcloud projects delete project01-9999999

 

---------------------------------------------
GCP CLI の構成

gcloud config configurations list
gcloud config configurations describe default
gcloud config configurations activate default

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

 


リージョン一覧

gcloud compute regions list


ゾーン一覧
gcloud compute zones list


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

VPC作成

gcloud compute networks create vpc01 \
--subnet-mode=custom \
--mtu=1460 \
--bgp-routing-mode=regional


gcloud compute networks list

gcloud compute networks describe vpc01


VPC削除
gcloud compute networks delete vpc01


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

サブネット作成

gcloud compute networks subnets create subnet01 \
--range=10.0.0.0/24 \
--stack-type=IPV4_ONLY \
--network=vpc01 \
--region=asia-northeast1

gcloud compute networks subnets list


gcloud compute networks subnets describe subnet01 \
--region=asia-northeast1


サブネット削除
gcloud compute networks subnets delete subnet01 \
--region=asia-northeast1

 

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

 

ファイアウォールルール作成


gcloud compute firewall-rules create fw01 \
--network vpc01 \
--allow tcp,udp,icmp \
--source-ranges 10.0.0.0/24

gcloud compute firewall-rules list
gcloud compute firewall-rules describe fw01


ファイアウォールルール削除
gcloud compute firewall-rules delete fw01


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


インターネットゲートウェイ
→ 作成不要


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


ルート作成

https://cloud.google.com/vpc/docs/using-routes?hl=ja

新しいすべてのネットワークにはシステムによって生成された 2 種類のルートがあります。
1 つ目はデフォルト ルートで、ユーザーが削除または置換できます。
2 つ目はサブネット ルートで、サブネットごとに 1 つあります。対応するサブネット自体を削除しない限り、サブネット ルートは削除できません。

システム生成ルートに加えて、他のカスタム静的ルートを作成することもできます。

カスタム静的ルートを変更するには、そのルートを削除して、代替ルートを作成する必要があります。
カスタム静的ルートには、VPC ネットワーク内のサブネット ルートによって使用されている送信先範囲と一致する、またはそれよりも限定された送信先範囲を設定することはできません。
自動モードのネットワークを使用する際の競合を回避するために、宛先が 10.128.0.0/9 内に収まる静的ルートを作成しないでください。

 


静的ルートを追加する


gcloud compute routes create r01 \
--destination-range=192.168.0.0/16 \
--network=vpc01 \
--next-hop-address=10.0.0.4

デフォルト ルート、サブネット ルート、カスタム静的ルートをリストする(動的ルートは表示されない)

gcloud compute routes list \
--filter="network=vpc01"


gcloud compute routes describe r01 \
--format="flattened()"


静的ルートを削除する

gcloud compute routes delete r01

 

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


静的外部 IP アドレス作成

https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address?hl=ja


新しい静的外部 IP アドレスを予約する

gcloud compute addresses create pip01 \
--region=asia-northeast1


gcloud compute addresses list

gcloud compute addresses describe pip01 \
--region=asia-northeast1

 

新しい VM へ静的外部 IP アドレスを割り当てる
※アドレス名ではなく予約済みの静的外部 IP アドレスを使用してください

gcloud compute instances create vm01 \
--project=project01-9999999 \
--zone=asia-northeast1-a \
--machine-type=e2-micro \
--image-project=centos-cloud \
--image=centos-7-v20221004 \
--address=192.0.2.1

 

静的外部 IP アドレスの割り当てを解除する

gcloud compute addresses list

gcloud compute instances describe vm01

gcloud compute instances delete-access-config vm01 \
--access-config-name="external-nat"

gcloud compute addresses list


静的外部 IP アドレスを解放する

gcloud compute addresses delete pip01

 

 

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

Cloud NAT作成

https://cloud.google.com/nat/docs/gce-example?hl=ja


外部 IP アドレスを持たない VM インスタンスを作成する

gcloud compute instances create vm01 \
--project=project01-9999999 \
--zone=asia-northeast1-a \
--machine-type=e2-micro \
--image-project=centos-cloud \
--image=centos-7-v20221004 \
--network vpc01 \
--subnet subnet01 \
--zone asia-northeast1-a \
--no-address


SSH 接続を許可するファイアウォール ルールを作成する
35.235.240.0/20 --> IAP(Identity-Aware Proxy) が TCP 転送に使用するすべての IP アドレスが含まれています

gcloud compute firewall-rules create allow-ssh \
--network vpc01 \
--source-ranges 35.235.240.0/20 \
--allow tcp:22

VM インスタンスの IAP SSH 権限を作成する

gcloud projects add-iam-policy-binding project01-9999999 \
--member=user:hoge@example.com \
--role=roles/iap.tunnelResourceAccessor

VM インスタンスにログインし、インターネットに接続できないことを確認する


gcloud compute ssh vm01 \
--zone "asia-northeast1-a" \
--tunnel-through-iap \
--project "project01-9999999" \
--command "curl www.google.com"

Cloud Router を使用して NAT 構成を作成する

gcloud compute routers create nat01 \
--network vpc01 \
--region=asia-northeast1

gcloud compute routers list
gcloud compute routers describe nat01

    
gcloud compute routers nats create natconfig01 \
--router-region asia-northeast1 \
--router nat01 \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips

gcloud compute routers nats list --router=nat01
gcloud compute routers nats describe natconfig01 --router=nat01 

 


VM インスタンスにログインし、インターネットに接続できることを確認する

gcloud compute ssh vm01 \
--zone "asia-northeast1-a" \
--tunnel-through-iap \
--project "project01-9999999" \
--command "curl www.google.com"


NAT構成削除
gcloud compute routers nats delete natconfig01 --router=nat01


Cloud Router削除
gcloud compute routers delete nat01