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
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