Bird
Raised Fist0
GCPcloud~10 mins

Creating a Cloud SQL instance in GCP - Visual Walkthrough

Choose your learning style10 modes available
Process Flow - Creating a Cloud SQL instance
Start: Define instance config
↓
Call API to create instance
↓
Cloud SQL service processes request
↓
Instance provisioning begins
↓
Instance status: PENDING
↓
Instance status: CREATING
↓
Instance status: RUNNABLE
↓
Instance ready for connections
This flow shows how defining a Cloud SQL instance configuration leads to API call, provisioning, and finally a ready-to-use database instance.
Execution Sample
GCP
gcloud sql instances create my-instance \
  --database-version=POSTGRES_15 \
  --tier=db-f1-micro \
  --region=us-central1
This command creates a small PostgreSQL Cloud SQL instance in the us-central1 region.
Process Table
StepActionAPI RequestInstance StatusResult
1Define instance parametersN/AN/AParameters set: name=my-instance, version=POSTGRES_15, tier=db-f1-micro, region=us-central1
2Send create instance commandCreateInstance API calledPENDINGRequest accepted, provisioning starts
3Cloud SQL service provisions resourcesN/ACREATINGCompute and storage allocated
4Initialize database engineN/ACREATINGDatabase software installed and configured
5Instance becomes runnableN/ARUNNABLEInstance ready to accept connections
6Connect to instanceN/ARUNNABLEConnection successful, instance operational
💡 Instance status RUNNABLE means creation finished and instance is ready
Status Tracker
VariableStartAfter Step 2After Step 3After Step 5Final
instance_statusN/APENDINGCREATINGRUNNABLERUNNABLE
api_requestNoneCreateInstance API calledN/AN/AN/A
connection_readyFalseFalseFalseTrueTrue
Key Moments - 2 Insights
Why does the instance status change from PENDING to CREATING before it becomes RUNNABLE?
The execution_table shows that after the API call (PENDING), Cloud SQL allocates resources and installs software (CREATING) before the instance is ready (RUNNABLE). This is normal provisioning progress.
Can you connect to the instance immediately after sending the create command?
No. According to the execution_table, connection_ready is False until the instance status is RUNNABLE (Step 5). Trying earlier will fail.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the instance_status at Step 3?
ACREATING
BPENDING
CRUNNABLE
DTERMINATED
💡 Hint
Check the 'Instance Status' column at Step 3 in the execution_table
At which step does connection_ready become True according to variable_tracker?
AAfter Step 2
BAfter Step 3
CAfter Step 5
DAfter Step 1
💡 Hint
Look at the 'connection_ready' row in variable_tracker and see when it changes to True
If the API request failed at Step 2, what would be the instance_status in the execution_table?
ARUNNABLE
BNo status or error
CCREATING
DPENDING
💡 Hint
Consider what happens if the CreateInstance API call does not succeed at Step 2
Concept Snapshot
Creating a Cloud SQL instance:
- Use 'gcloud sql instances create [NAME]'
- Specify database version, tier, and region
- Instance status moves: PENDING -> CREATING -> RUNNABLE
- Only connect when status is RUNNABLE
- Provisioning includes resource allocation and software setup
Full Transcript
Creating a Cloud SQL instance starts by defining the instance parameters like name, database version, machine tier, and region. Then, a create instance API call is made. The Cloud SQL service processes this request and begins provisioning resources. The instance status changes from PENDING to CREATING as compute and storage are allocated and the database engine is installed. When provisioning finishes, the status becomes RUNNABLE, meaning the instance is ready to accept connections. Only after this point can you connect to the database instance successfully.

Practice

(1/5)
1. What is the main purpose of creating a Cloud SQL instance in Google Cloud?
easy
A. To store files and objects in the cloud
B. To set up a managed database service without handling server maintenance
C. To create a virtual machine for running applications
D. To configure network firewalls for security

Solution

  1. Step 1: Understand Cloud SQL service

    Cloud SQL is a managed database service that handles database setup and maintenance for you.
  2. Step 2: Identify the purpose of creating an instance

    Creating a Cloud SQL instance means setting up a database server managed by Google Cloud, so you don't manage the server yourself.
  3. Final Answer:

    To set up a managed database service without handling server maintenance -> Option B
  4. Quick Check:

    Cloud SQL = Managed database service [OK]
Hint: Cloud SQL means managed database, not VM or storage [OK]
Common Mistakes:
  • Confusing Cloud SQL with virtual machines
  • Thinking Cloud SQL is for file storage
  • Mixing Cloud SQL with network configuration
2. Which of the following is the correct command to create a Cloud SQL instance named my-instance with MySQL version 8.0 in the region us-central1?
easy
A. gcloud sql instances create my-instance --database-version=MYSQL_8_0 --region=us-central1
B. gcloud sql create instance my-instance --version=MYSQL8 --location=us-central1
C. gcloud sql instances new my-instance --db-version=8.0 --zone=us-central1
D. gcloud sql instances create my-instance --db-version=MYSQL8 --region=us-central1

Solution

  1. Step 1: Recall correct gcloud command syntax

    The correct command starts with gcloud sql instances create followed by the instance name.
  2. Step 2: Check flags for database version and region

    The flag for database version is --database-version and for region is --region. The version value for MySQL 8.0 is MYSQL_8_0.
  3. Final Answer:

    gcloud sql instances create my-instance --database-version=MYSQL_8_0 --region=us-central1 -> Option A
  4. Quick Check:

    Correct flags and syntax = gcloud sql instances create my-instance --database-version=MYSQL_8_0 --region=us-central1 [OK]
Hint: Use --database-version and --region flags exactly [OK]
Common Mistakes:
  • Using incorrect flag names like --version or --db-version
  • Swapping region flag with zone
  • Wrong command order or missing 'instances create'
3. What will be the output of the following command if executed successfully?
gcloud sql instances create test-instance --database-version=POSTGRES_14 --tier=db-f1-micro --region=us-east1
medium
A. An error because tier db-f1-micro is not supported
B. An error because region us-east1 is invalid
C. A new Cloud SQL instance with MySQL 14 in us-east1 region
D. A new Cloud SQL instance named test-instance with PostgreSQL 14 in us-east1 region

Solution

  1. Step 1: Analyze command parameters

    The command creates a Cloud SQL instance named test-instance with PostgreSQL version 14, machine tier db-f1-micro, in region us-east1.
  2. Step 2: Validate parameters

    db-f1-micro is a valid machine tier for small instances, us-east1 is a valid region, and POSTGRES_14 is a valid database version.
  3. Final Answer:

    A new Cloud SQL instance named test-instance with PostgreSQL 14 in us-east1 region -> Option D
  4. Quick Check:

    Valid flags and values create instance = A new Cloud SQL instance named test-instance with PostgreSQL 14 in us-east1 region [OK]
Hint: Check database version and tier validity carefully [OK]
Common Mistakes:
  • Confusing PostgreSQL with MySQL versions
  • Assuming db-f1-micro is invalid tier
  • Mistaking region names
4. You tried to create a Cloud SQL instance with this command:
gcloud sql instances create mydb --database-version=MYSQL_5_7 --tier=n1-standard-1 --region=us-west1

But you get an error saying the tier is invalid. What is the likely cause?
medium
A. The tier name is correct but the database version is invalid
B. The region us-west1 does not support MySQL 5.7
C. The tier name should be db-n1-standard-1 with 'db-' prefix
D. The tier name requires a different format for MySQL

Solution

  1. Step 1: Check tier naming conventions

    Cloud SQL machine tiers use the 'db-' prefix. The correct tier name is 'db-n1-standard-1'.
  2. Step 2: Validate other parameters

    MySQL 5.7 is valid, and us-west1 supports it. The error is due to missing 'db-' prefix in tier name.
  3. Final Answer:

    The tier name should be db-n1-standard-1 with 'db-' prefix -> Option C
  4. Quick Check:

    Tier names include 'db-' prefix [OK]
Hint: Add 'db-' prefix to tier names for Cloud SQL [OK]
Common Mistakes:
  • Omitting 'db-' prefix in tier names
  • Assuming region limits cause tier errors
  • Mixing database version errors with tier errors
5. You want to create a highly available Cloud SQL instance with PostgreSQL 13 in region us-central1. Which command correctly sets up a primary instance with high availability enabled?
hard
A. gcloud sql instances create ha-instance --database-version=POSTGRES_13 --region=us-central1 --availability-type=REGIONAL
B. gcloud sql instances create ha-instance --database-version=POSTGRES_13 --region=us-central1 --high-availability
C. gcloud sql instances create ha-instance --database-version=POSTGRES_13 --region=us-central1 --availability=HIGH
D. gcloud sql instances create ha-instance --database-version=POSTGRES_13 --region=us-central1 --replica-type=PRIMARY

Solution

  1. Step 1: Identify flag for high availability

    The correct flag to enable high availability in Cloud SQL is --availability-type=REGIONAL.
  2. Step 2: Confirm other parameters

    Database version POSTGRES_13 and region us-central1 are valid. The command uses correct syntax for creating a highly available instance.
  3. Final Answer:

    gcloud sql instances create ha-instance --database-version=POSTGRES_13 --region=us-central1 --availability-type=REGIONAL -> Option A
  4. Quick Check:

    Use --availability-type=REGIONAL for HA [OK]
Hint: Use --availability-type=REGIONAL to enable high availability [OK]
Common Mistakes:
  • Using non-existent flags like --high-availability
  • Confusing replica-type with availability
  • Using incorrect availability flag names
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard