์ด ํ์ด์ง์์๋ Cloud SQL ์ธ์คํด์ค์ ๋ํ ์ ๋ณด๋ฅผ ๋ณด๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์ธ์คํด์ค ์์ฝ ์ ๋ณด ๋ณด๊ธฐ
Google Cloud ์ฝ์, gcloud CLI ๋๋ API๋ฅผ ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์คํด์ค์ ์์ฝ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ Cloud SQL ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
Cloud SQL ์ธ์คํด์ค๋ก ์ด๋
Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋ Cloud SQL ์ธ์คํด์ค์ ๋ํ ๋ค์ ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
- ๋ด๋ถ ์ฐ๊ฒฐ ๋ฐฉ๋ฒ: ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ๋ฐ Private Service Connect ๋๋ ๋น๊ณต๊ฐ ์๋น์ค ์ก์ธ์ค๊ฐ ์ฌ์ฉ๋๋์ง ์ฌ๋ถ
- ๋น๊ณต๊ฐ IP ์ฃผ์: ์ธ์คํด์ค์ ์๋น์ค ์ฐ๊ฒฐ์ ์ฐ๊ฒฐ๋๋ VPC ๋คํธ์ํฌ์์ Private Service Connect ์๋ํฌ์ธํธ์ IP ์ฃผ์
- DNS ์ด๋ฆ: ์ธ์คํด์ค์ DNS ์ด๋ฆ
ํ์ฌ ์ธ์คํด์ค ์ํ๋ฅผ ๋ณด๋ ค๋ฉด ์ธ์คํด์ค ์ด๋ฆ ์์ ์ํ ์์ด์ฝ ์์ ๋ง์ฐ์ค ํฌ์ธํฐ๋ฅผ ๋์ต๋๋ค.
์ธ์คํด์ค๊ฐ
FAILED
๋๋MAINTENANCE
์ํ์ธ ๊ฒฝ์ฐ ๊ณผ๊ฑฐ์ ์๊ฐ์ ์ ํํ๊ณ ์ธ์คํด์ค๋ฅผ ํด๋น ์์ ์ ์ํ๋ก ๋ณต์ํ์ฌ ์ธ์คํด์ค๋ฅผ ๋ณต๊ตฌํ ์ ์์ต๋๋ค.์ธ์คํด์ค์ ๊ฐ์ ํ์ด์ง๋ฅผ ์ด๋ ค๋ฉด ์ธ์คํด์ค ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
์ด ์ธ์คํด์ค์ ์ฐ๊ฒฐ ์นด๋์์ Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋ Cloud SQL ์ธ์คํด์ค์ ๋ํด ๋ค์๊ณผ ๊ฐ์ ์ถ๊ฐ ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
- ๋น๊ณต๊ฐ IP ์ฐ๊ฒฐ: ์ธ์คํด์ค์ ๋ด๋ถ IP ์ฃผ์๊ฐ ์์ด์ผ ํ๋ฏ๋ก ์ฌ์ฉ ์ค์ ๋จ ์ํ์ ๋๋ค.
- ํ์ฉ๋ ํ๋ก์ ํธ: ์ด๋ฌํ ํ๋ก์ ํธ๋ Private Service Connect ์๋ํฌ์ธํธ์์ ์ธ์คํด์ค๋ก์ ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค.
- ์๋น์ค ์ฐ๊ฒฐ: ์ธ์คํด์ค์ ์๋น์ค ์ฐ๊ฒฐ์ ๋๋ค.
- ๊ณต๊ฐ IP ์ฐ๊ฒฐ: ์ธ๋ถ IP ์ฐ๊ฒฐ์ด ์ง์๋์ง ์์ผ๋ฏ๋ก ์ฌ์ฉ ์ค์ง๋จ ์ํ์ ๋๋ค.
์ธ์คํด์ค์ ๋ด๋ถ IP ์ฃผ์ ๋๋ ์ธ๋ถ IP ์ฃผ์๋ฅผ ์ถ๊ฐํ ์ง ์ฌ๋ถ, ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์น์ธ๋ ๋คํธ์ํฌ, BigQuery์ ๊ฐ์ ๋ค๋ฅธ Google Cloud ์๋น์ค๊ฐ ๋ด๋ถ ์ฐ๊ฒฐ์ ํตํด Cloud SQL์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๊ณ ์ด ๋ฐ์ดํฐ์ ๋ํด ์ฟผ๋ฆฌํ ์ ์๋์ง ์ฌ๋ถ ๋ฑ ์ธ์คํด์ค์ ๋ํ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ์ฐ๊ฒฐ ํญ์ ํด๋ฆญํฉ๋๋ค.
์ด ํญ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฐ๊ฒฐ ์ต์ ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ธ์.
๋คํธ์ํน ํญ์ ํด๋ฆญํฉ๋๋ค. Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋ ์ธ์คํด์ค์ ๋ํ ๋ค์ ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
- ๋น๊ณต๊ฐ IP ์ฒดํฌ๋ฐ์ค๊ฐ ์ ํ๋์์ง๋ง ๋นํ์ฑํ๋์์ต๋๋ค. ์ธ์คํด์ค์ ๋ด๋ถ IP ์ฃผ์๊ฐ ์์ด์ผ ํ๋ฉฐ ์ด ์ค์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- ์ธ์คํด์ค์ ํ์ฉ๋๋ ํ๋ก์ ํธ์ ๋๋ค.
- ๊ณต๊ฐ IP ์ฒดํฌ๋ฐ์ค๊ฐ ์ ํ๋์์ง๋ง ๋นํ์ฑํ๋์์ต๋๋ค.
- ์ธ์คํด์ค์์ ์ด ๊ธฐ๋ฅ์ ์ง์ํ์ง ์๋ Private Service Connect๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์น์ธ๋ ๋คํธ์ํฌ ํ๋๊ฐ ๋นํ์ฑํ๋ฉ๋๋ค.
gcloud
gcloud CLI ์ค์น ๋ฐ ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ gcloud CLI ์ค์น๋ฅผ ์ฐธ์กฐํ์ธ์. Cloud Shell ์์ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ Cloud Shell ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
์ธ์คํด์ค์ ์์ฝ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด
gcloud sql instances describe
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
๋ค์์ ๋ฐ๊ฟ๋๋ค.
- INSTANCE_NAME: Cloud SQL ์ธ์คํด์ค์ ์ด๋ฆ. ์ด ์ธ์คํด์ค์ Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋์ด ์์ผ๋ฉด VPC ๋คํธ์ํฌ์ Private Service Connect ์๋ํฌ์ธํธ๊ฐ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
- PROJECT_ID: ์ธ์คํด์ค๊ฐ ํฌํจ๋ Google Cloud ํ๋ก์ ํธ์ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ
๋ค์์ ์ด ๋ช ๋ น์ด๋ฅผ ์คํํ๊ธฐ ์ํ ์ถ๋ ฅ ์์์ ๋๋ค.
gcloud sql instances describe myinstance \ --project=12345 ... dnsName: mydnsname ... pscServiceAttachmentLink: projects/myproject/regions/myregion/serviceAttachments/myserviceattachment ... settings: ... ipConfiguration: ipv4Enabled: false pscConfig: allowedConsumerProjects: - projects/23456 - projects/34567 pscEnabled: true
- Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋ ์ธ์คํด์ค์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ๋ค์ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ค์ | ๋งค๊ฐ๋ณ์ | ์ฐธ๊ณ |
---|---|---|
DNS ์ด๋ฆ | dnsName |
์ธ์คํด์ค์ DNS ์ด๋ฆ์ ๋๋ค. ์ด ์ด๋ฆ์ผ๋ก DNS ๋ ์ฝ๋๋ฅผ ๋ง๋ค๊ณ Private Service Connect ์๋ํฌ์ธํธ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ์ด ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. |
์๋น์ค ์ฐ๊ฒฐ | pscServiceAttachmentLink |
์ธ์คํด์ค์ ์๋น์ค ์ฐ๊ฒฐ์ ๊ฐ๋ฆฌํค๋ URI์ ๋๋ค. ์ด URI๋ฅผ ์ฌ์ฉํ์ฌ Private Service Connect ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ญ๋๋ค. |
ํ์ฉ๋ ์๋น์ ํ๋ก์ ํธ | allowedConsumerProjects |
์ธ์คํด์ค์ ํ์ฉ๋๋ ํ๋ก์ ํธ ๋ชฉ๋ก์ ๋๋ค. ์ฌ์ฉ์๋ ์ด๋ฌํ ํ๋ก์ ํธ์ ๋ชจ๋ VPC ๋คํธ์ํฌ์์ ์ธ์คํด์ค์ ์๋น์ค ์ฐ๊ฒฐ์ ๋ํ Private Service Connect ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. |
Private Service Connect ์ฌ์ฉ ์ค์ | pscEnabled |
์ธ์คํด์ค์ Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋์๋์ง ์ฌ๋ถ์ ๋๋ค. |
Terraform
์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด Terraform ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ณ๊ฒฝ์ฌํญ ์ ์ฉ
ํ๋ก์ ํธ์ Terraform ๊ตฌ์ฑ์ ์ ์ฉํ๋ ค๋ฉด Google Cloud ๋ค์ ์น์ ์ ๋จ๊ณ๋ฅผ ์๋ฃํ์ธ์.
Cloud Shell ์ค๋น
- Cloud Shell์ ์คํํฉ๋๋ค.
-
Terraform ๊ตฌ์ฑ์ ์ ์ฉํ ๊ธฐ๋ณธ Google Cloud ํ๋ก์ ํธ๋ฅผ ์ค์ ํฉ๋๋ค.
์ด ๋ช ๋ น์ด๋ ํ๋ก์ ํธ๋น ํ ๋ฒ๋ง ์คํํ๋ฉด ๋๋ฉฐ ์ด๋ค ๋๋ ํฐ๋ฆฌ์์๋ ์คํํ ์ ์์ต๋๋ค.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Terraform ๊ตฌ์ฑ ํ์ผ์์ ๋ช ์์ ๊ฐ์ ์ค์ ํ๋ฉด ํ๊ฒฝ ๋ณ์๊ฐ ์ฌ์ ์๋ฉ๋๋ค.
๋๋ ํฐ๋ฆฌ ์ค๋น
๊ฐ Terraform ๊ตฌ์ฑ ํ์ผ์๋ ์์ฒด ๋๋ ํฐ๋ฆฌ(๋ฃจํธ ๋ชจ๋์ด๋ผ๊ณ ๋ ํจ)๊ฐ ์์ด์ผ ํฉ๋๋ค.
-
Cloud Shell์์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ํด๋น ๋๋ ํฐ๋ฆฌ ๋ด์ ์ ํ์ผ์ ๋ง๋์ธ์. ํ์ผ ์ด๋ฆ์๋
.tf
ํ์ฅ์๊ฐ ์์ด์ผ ํฉ๋๋ค(์:main.tf
). ์ด ํํ ๋ฆฌ์ผ์์๋ ํ์ผ์main.tf
๋ผ๊ณ ํฉ๋๋ค.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
ํํ ๋ฆฌ์ผ์ ๋ฐ๋ผ ํ๋ ๊ฒฝ์ฐ ๊ฐ ์น์ ์ด๋ ๋จ๊ณ์์ ์ํ ์ฝ๋๋ฅผ ๋ณต์ฌํ ์ ์์ต๋๋ค.
์ํ ์ฝ๋๋ฅผ ์๋ก ๋ง๋
main.tf
์ ๋ณต์ฌํฉ๋๋ค.ํ์ํ ๊ฒฝ์ฐ GitHub์์ ์ฝ๋๋ฅผ ๋ณต์ฌํฉ๋๋ค. ์ด๋ Terraform ์ค๋ํซ์ด ์๋ ํฌ ์๋ ์๋ฃจ์ ์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ์ ๊ถ์ฅ๋ฉ๋๋ค.
- ํ๊ฒฝ์ ์ ์ฉํ ์ํ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฒํ ํ๊ณ ์์ ํฉ๋๋ค.
- ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅํฉ๋๋ค.
-
Terraform์ ์ด๊ธฐํํฉ๋๋ค. ์ด ์์
์ ๋๋ ํฐ๋ฆฌ๋น ํ ๋ฒ๋ง ์ํํ๋ฉด ๋ฉ๋๋ค.
terraform init
์ํ๋ ๊ฒฝ์ฐ ์ต์ Google ๊ณต๊ธ์ ์ฒด ๋ฒ์ ์ ์ฌ์ฉํ๋ ค๋ฉด
-upgrade
์ต์ ์ ํฌํจํฉ๋๋ค.terraform init -upgrade
๋ณ๊ฒฝ์ฌํญ ์ ์ฉ
-
๊ตฌ์ฑ์ ๊ฒํ ํ๊ณ Terraform์์ ๋ง๋ค๊ฑฐ๋ ์
๋ฐ์ดํธํ ๋ฆฌ์์ค๊ฐ ์์๊ณผ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.
terraform plan
ํ์์ ๋ฐ๋ผ ๊ตฌ์ฑ์ ์์ ํฉ๋๋ค.
-
๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํ๊ณ ํ๋กฌํํธ์
yes
๋ฅผ ์ ๋ ฅํ์ฌ Terraform ๊ตฌ์ฑ์ ์ ์ฉํฉ๋๋ค.terraform apply
Terraform์ '์ ์ฉ ์๋ฃ' ๋ฉ์์ง๊ฐ ํ์๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
- ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ ค๋ฉด Google Cloud ํ๋ก์ ํธ๋ฅผ ์ฝ๋๋ค. Google Cloud ์ฝ์์์ UI์ ๋ฆฌ์์ค๋ก ์ด๋ํ์ฌ Terraform์ด ๋ฆฌ์์ค๋ฅผ ๋ง๋ค์๊ฑฐ๋ ์ ๋ฐ์ดํธํ๋์ง ํ์ธํฉ๋๋ค.
๋ณ๊ฒฝ์ฌํญ ์ญ์
๋ณ๊ฒฝ์ฌํญ์ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- Terraform ๊ตฌ์ฑ ํ์ผ์์ ์ญ์ ๋ณดํธ๋ฅผ ์ฌ์ฉ ์ค์งํ๋ ค๋ฉด
deletion_protection
์ธ์๋ฅผfalse
๋ก ์ค์ ํฉ๋๋ค.deletion_protection = "false"
- ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํ๊ณ ํ๋กฌํํธ์
yes
๋ฅผ ์ ๋ ฅํ์ฌ ์ ๋ฐ์ดํธ๋ Terraform ๊ตฌ์ฑ์ ์ ์ฉํฉ๋๋ค.terraform apply
-
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ๊ณ ํ๋กฌํํธ์
yes
๋ฅผ ์ ๋ ฅํ์ฌ ์ด์ ์ Terraform ๊ตฌ์ฑ์ ์ ์ฉ๋ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํฉ๋๋ค.terraform destroy
REST v1
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: ์ธ์คํด์ค๊ฐ ํฌํจ๋ Google Cloud ํ๋ก์ ํธ์ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ
- INSTANCE_NAME: Cloud SQL ์ธ์คํด์ค์ ์ด๋ฆ. ์ด ์ธ์คํด์ค์ Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋์ด ์์ผ๋ฉด VPC ๋คํธ์ํฌ์ Private Service Connect ์๋ํฌ์ธํธ๊ฐ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13", "settings": { "authorizedGaeApplications": [], "tier": "db-custom-2-7680", "kind": "sql#settings", "availabilityType": "REGIONAL", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscEnabled": true }, "ipv4Enabled": false }, ... "createTime": "2023-06-14T18:48:34.975Z", "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE", "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID", "dnsName": "DNS_NAME" }
Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋ ์ธ์คํด์ค์๋ ๋ค์ ํ๋๊ฐ ์์ต๋๋ค.
allowedConsumerProjects
: ์ธ์คํด์ค์ ํ์ฉ๋๋ ํ๋ก์ ํธ ๋ชฉ๋ก. ์ฌ์ฉ์๋ ์ด๋ฌํ ํ๋ก์ ํธ์ ๋ชจ๋ VPC ๋คํธ์ํฌ์์ ์ธ์คํด์ค์ ์๋น์ค ์ฐ๊ฒฐ์ ๋ํ Private Service Connect ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.pscEnabled
: ์ธ์คํด์ค์ Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋์๋์ง ์ฌ๋ถ์ ๋๋ค.pscServiceAttachmentLink
: ์ธ์คํด์ค์ ์๋น์ค ์ฐ๊ฒฐ์ ๊ฐ๋ฆฌํค๋ URI์ ๋๋ค. ์ด URI๋ฅผ ์ฌ์ฉํ์ฌ Private Service Connect ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ญ๋๋ค.dnsName
: ์ธ์คํด์ค์ DNS ์ด๋ฆ์ ๋๋ค. ์ด ์ด๋ฆ์ผ๋ก DNS ๋ ์ฝ๋๋ฅผ ๋ง๋ค๊ณ Private Service Connect ์๋ํฌ์ธํธ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ์ด ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด ํ์คํฌ์ ๋ํ ๊ธฐ๋ณธ REST API ์์ฒญ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ instances:get ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
REST v1beta4
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: ์ธ์คํด์ค๊ฐ ํฌํจ๋ Google Cloud ํ๋ก์ ํธ์ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ
- INSTANCE_NAME: Cloud SQL ์ธ์คํด์ค์ ์ด๋ฆ. ์ด ์ธ์คํด์ค์ Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋์ด ์์ผ๋ฉด VPC ๋คํธ์ํฌ์ Private Service Connect ์๋ํฌ์ธํธ๊ฐ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13", "settings": { "authorizedGaeApplications": [], "tier": "db-custom-2-7680", "kind": "sql#settings", "availabilityType": "REGIONAL", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscEnabled": true }, "ipv4Enabled": false }, ... "createTime": "2023-06-14T18:48:34.975Z", "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE", "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID", "dnsName": "DNS_NAME" }
Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋ ์ธ์คํด์ค์๋ ๋ค์ ํ๋๊ฐ ์์ต๋๋ค.
allowedConsumerProjects
: ์ธ์คํด์ค์ ํ์ฉ๋๋ ํ๋ก์ ํธ ๋ชฉ๋ก. ์ฌ์ฉ์๋ ์ด๋ฌํ ํ๋ก์ ํธ์ ๋ชจ๋ VPC ๋คํธ์ํฌ์์ ์ธ์คํด์ค์ ์๋น์ค ์ฐ๊ฒฐ์ ๋ํ Private Service Connect ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.pscEnabled
: ์ธ์คํด์ค์ Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋์๋์ง ์ฌ๋ถ์ ๋๋ค.pscServiceAttachmentLink
: ์ธ์คํด์ค์ ์๋น์ค ์ฐ๊ฒฐ์ ๊ฐ๋ฆฌํค๋ URI์ ๋๋ค. ์ด URI๋ฅผ ์ฌ์ฉํ์ฌ Private Service Connect ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ญ๋๋ค.dnsName
: ์ธ์คํด์ค์ DNS ์ด๋ฆ์ ๋๋ค. ์ด ์ด๋ฆ์ผ๋ก DNS ๋ ์ฝ๋๋ฅผ ๋ง๋ค๊ณ Private Service Connect ์๋ํฌ์ธํธ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ์ด ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์๋จ์ ์ํํ ์ ์๋ ์์ ์ ์ ์ํ๋ ๋ฐฐ๋๊ฐ ๋ช ๊ฐ์ง ํ์๋ ์ ์์ต๋๋ค.
์ฐ๊ธฐ ์๋ํฌ์ธํธ ๋ณด๊ธฐ
์ฐ๊ธฐ ์๋ํฌ์ธํธ๋ ํ์ฌ ๊ธฐ๋ณธ ์ธ์คํด์ค์ IP ์ฃผ์๋ก ์๋ ํ์ธ๋๋ ์ ์ญ ๋๋ฉ์ธ ์ด๋ฆ ์๋น์ค(DNS) ์ด๋ฆ์ ๋๋ค. ์ด ์๋ํฌ์ธํธ๋ ๋ณต์ ๋ณธ ์ฅ์ ์กฐ์น ๋๋ ์ ํ ์์ ์ ๋ค์ด์ค๋ ์ฐ๊ฒฐ์ ์๋ก์ด ๊ธฐ๋ณธ ์ธ์คํด์ค๋ก ์๋ ๋ฆฌ๋๋ ์ ํฉ๋๋ค. IP ์ฃผ์ ๋์ SQL ์ฐ๊ฒฐ ๋ฌธ์์ด์์ ์ฐ๊ธฐ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฐ๊ธฐ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์ ์๋น์ค ์ค๋จ์ด ๋ฐ์ํ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฐ๊ฒฐ์ ๋ณ๊ฒฝํ์ง ์์๋ ๋ฉ๋๋ค.
์ฐ๊ธฐ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฐ๊ธฐ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ฐ๊ฒฐ์ ์ฐธ์กฐํ์ธ์.
์ธก์ ํญ๋ชฉ
์ด ์น์ ์์๋ ์ธ์คํด์ค๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ฃผ์ ์ธ์คํด์ค ์ธก์ ํญ๋ชฉ์ ์ฌ์ฉ๋ ์ฐจํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ธก์ ํญ๋ชฉ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๋๋ ๋ค์ ์ฌํญ์ ์ ์ํ์ธ์.
- ์ธก์ ํญ๋ชฉ์ ๋ฐ์ดํฐ ํฌ์ธํธ๋ ์ธ์คํด์ค์์ ํธ์คํ ํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง๊ณ์ ๋๋ค.
- ๋ฐ์ดํฐ๋ ์ง์ญ ์๊ฐ์ผ๋ก ๋ณด๊ณ ๋ฉ๋๋ค.
- ๋ ๋๋ง๋ ์ฐจํธ๋ ์๋์ผ๋ก ์๋ก๊ณ ์นจ๋์ง ์์ต๋๋ค. ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ค๋ฉด ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํด์ผ ํฉ๋๋ค.
- ์ธก์ ํญ๋ชฉ ๋ฐ์ดํฐ๊ฐ ๊ธฐ๋ก๋๋ ์์ ๊ณผ ์ฌ์ฉ๋ ์ฐจํธ์ ํ์๋๋ ์์ ๊ฐ์ ๋ช ๋ถ ์ ๋ ์ง์ฐ์ด ๋ฐ์ํฉ๋๋ค.
์ฐจํธ์ ํ์๋ ์ธก์ ํญ๋ชฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ Cloud SQL ์ธ์คํด์ค ๋ชจ๋ํฐ๋ง์ ์ฐธ์กฐํ์ธ์.
Cloud Monitoring์์ ์ ๊ณตํ๋ Cloud SQL ์ธก์ ํญ๋ชฉ์ ์ ์ฒด ๋ชฉ๋ก์ Cloud SQL ์ธก์ ํญ๋ชฉ ๋ชฉ๋ก์ ์ฐธ์กฐํ์ธ์.
Google Cloud์ ํจ๊ป Cloud Monitoring์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ Cloud Monitoring ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด ์ธ์คํด์ค์ ์ฐ๊ฒฐ
์ด ์ธ์คํด์ค์ ์ฐ๊ฒฐ ์น์ ์์ ์ธ์คํด์ค์ IP ์ฃผ์, VPC ๋คํธ์ํฌ, ์ฐ๊ฒฐ ์ด๋ฆ์ ํ์ธํ ์ ์์ต๋๋ค.
ํฐ๋ฏธ๋์ ์ด๊ณ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ค๋ฉด Cloud Shell์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ์ ํด๋ฆญํฉ๋๋ค.
์ค๋ฅธ์ชฝ ์ฐฝ์์ ๊ด๋ จ ํํ ๋ฆฌ์ผ์ ์ด๋ ค๋ฉด Compute Engine VM ์ธ์คํด์ค์์ ์ฐ๊ฒฐ์ ํด๋ฆญํฉ๋๋ค.
์ฐ๊ฒฐ ์ต์ ์ผ๋ก ์ด๋ํ๋ ค๋ฉด ๋ชจ๋ ์ฐ๊ฒฐ ๋ฐฉ๋ฒ ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค ์ฐ๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฐ๊ฒฐ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์๋น์ค ๊ณ์
์ด ์น์ ์๋ ์ธ์คํด์ค์ ์๋น์ค ๊ณ์ ์ด๋ฉ์ผ ์ฃผ์๊ฐ ํ์๋ฉ๋๋ค.
์์ธํ ๋ด์ฉ์ IAM ์๋น์ค ๊ณ์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ตฌ์ฑ
์ด ์น์ ์๋ ์ธ์คํด์ค์ ํ์ฌ ๊ตฌ์ฑ ์ค์ ์ด ํ์๋ฉ๋๋ค.
๊ตฌ์ฑ ์ค์ ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ๊ตฌ์ฑ ์์ ์ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค ๊ตฌ์ฑ ์์ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ธ์คํด์ค ์์ ์ ์ฐธ์กฐํ์ธ์.
์์ ๋ฐ ๋ก๊ทธ
์ด ์น์ ์๋ ๋ฐฑ์ ๋ง๋ค๊ธฐ์ ๊ฐ์ ์ต๊ทผ ์ธ์คํด์ค ์์ ์ด ๋์ ์์ต๋๋ค.
์ต๊ทผ ์์ ์ ๋ณด๋ ค๋ฉด ๋ชจ๋ ์์ ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ก๊น ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด PostgreSQL ์ค๋ฅ ๋ก๊ทธ ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์์ ๋ฐ ๋ก๊ทธ ํ์๊ธฐ ํ์ด์ง์ ๋ํ ์์ธํ ๋ด์ฉ์ Cloud SQL ๋ก๊น ์ ์ฐธ์กฐํ์ธ์.
๋ก๊น ์ ๋ํ ์ผ๋ฐ ์ ๋ณด๋ ๋ก๊ทธ ๋ณด๊ธฐ ๋ฐ ๋ก๊ทธ ํ์์ ์ฐธ์กฐํ์ธ์.
์ ์ง๋ณด์
์ด ์น์ ์๋ ํ์ฌ ์ ์ง๋ณด์ ์ ๋ฐ์ดํธ ์ค์ ๊ณผ ์ผ์ ์ด ํ์๋ฉ๋๋ค.
ํ๊ฒฝ์ค์ ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ ์ง๋ณด์ ํ๊ฒฝ์ค์ ์์ ์ ํด๋ฆญํฉ๋๋ค.
์๋ฆผ ์ค์ ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ์๋ฆผ ํ๊ฒฝ์ค์ ์์ ์ ํด๋ฆญํฉ๋๋ค.
Cloud SQL ์ ์ง๋ณด์ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ ์ง๋ณด์ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋จ๊ณ
- Cloud SQL์ฉ Cloud Monitoring ์ธก์ ํญ๋ชฉ ์์ธํ ์์๋ณด๊ธฐ
- ์ธ์คํด์ค ์ค์ ์์ธํ ์์๋ณด๊ธฐ
- ์ธ์คํด์ค ์์ ์์ธํ ์์๋ณด๊ธฐ