https://cloud.google.com/sql/docs/mysql/instance-settings
https://cloud.google.com/sql/pricing
https://cloud.google.com/vpc/docs/configure-private-services-access
-- 1. プロジェクト作成
gcloud init
gcloud auth list
gcloud --version
gcloud projects create project01-9999999 \
--name="project01"
gcloud config list
gcloud config set project project01-9999999
gcloud config set compute/region asia-northeast1 --quiet
gcloud config set compute/zone asia-northeast1-a --quiet
gcloud beta billing accounts list
gcloud beta billing projects link project01-9999999 --billing-account=111111-111111-111111
gcloud services enable compute.googleapis.com --project project01-9999999
-- 2. VPC、サブネット
cat <<-'EOF' > main.tf
provider "google" {
project = "project01-9999999"
region = "asia-northeast1"
}
resource "google_compute_network" "vpc01" {
name = "vpc01"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "subnet01" {
name = "subnet01"
ip_cidr_range = "10.0.0.0/16"
network = google_compute_network.vpc01.id
private_ip_google_access =true
}
EOF
terraform init
terraform fmt
terraform -version
terraform plan
terraform apply -auto-approve
# terraform destroy -auto-approve
-- 3. 限定公開サービス アクセスを構成
gcloud services enable sqladmin.googleapis.com --project project01-9999999
gcloud services enable servicenetworking.googleapis.com --project project01-9999999
IP アドレス範囲の作成
gcloud compute addresses create ar01 \
--global \
--purpose=VPC_PEERING \
--addresses=192.168.0.0 \
--prefix-length=16 \
--description="ad01" \
--network=vpc01
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
プライベート接続の作成
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=ar01 \
--network=vpc01
gcloud services vpc-peerings list \
--network=vpc01
IP アドレス範囲の削除
gcloud compute addresses delete ar01 \
--global \
--quiet
gcloud sql instances create mysql01 \
--availability-type=zonal \
--database-version=MYSQL_8_0_40 \
--enable-bin-log \
--no-deletion-protection \
--retained-backups-count=1 \
--retained-transaction-log-days=1 \
--root-password='password' \
--no-storage-auto-increase \
--storage-size=10 \
--storage-type=HDD \
--region=asia-northeast1 \
--cpu=1 \
--memory=3840MiB \
--enable-private-service-connect \
--no-assign-ip \
--network=vpc01 \
--edition=enterprise
gcloud sql instances list
gcloud sql instances describe mysql01
インスタンスの削除
gcloud sql instances delete mysql01 --quiet
gcloud sql instances patch mysql01 \
--cpu=2 \
--memory=3840MiB
gcloud sql instances patch mysql01 \
--cpu=1 \
--memory=3840MiB
-- 6. プロジェクト削除
gcloud projects list
gcloud projects delete project01-9999999 \
--quiet
gcloud beta billing projects unlink project01-9999999