์ด ํ์ด์ง์์๋ ๊ธฐ์กด Cloud SQL ์ธ์คํด์ค๋ฅผ ์์ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์ธ์คํด์ค๋ฅผ ๋ง๋ ํ์๋ ์ธ์คํด์ค ์คํ ์ค์ ์์ ํ์ฌ ํด๋น ์ค์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ธ์คํด์ค ์ค์ ๋ฐ ์ค์ ๋ณ๊ฒฝ์ด ์ธ์คํด์ค์ ๋ฏธ์น๋ ์ํฅ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ธ์คํด์ค ์ค์ ์ ์ฐธ์กฐํ์ธ์.
๋ฅผ ์ฐธ์กฐํ์ธ์.์ธ์คํด์ค ์์
๋๋ถ๋ถ์ ์์ ์ฌํญ์ ์ธ์คํด์ค ์คํ ์ค์๋ง ์ ์ฉํ ์ ์์ต๋๋ค.
์ฝ์
-
Google Cloud ์ฝ์์์ Cloud SQL ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ์ธ์คํด์ค์ ๊ฐ์ ํ์ด์ง๋ฅผ ์ด๋ ค๋ฉด ์ธ์คํด์ค ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
- ์์ ์ ํด๋ฆญํฉ๋๋ค.
- ์ธ์คํด์ค ๋ง์ถค์ค์ ์น์ ์์ ๊ตฌ์ฑ ์ต์ ํ์ ๋ฉ๋ด๊ฐ ๋ํ๋๋ฉด ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค์์ ์์ ๊ฐ๋ฅํ ์ค์ ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ธ์คํด์ค ์ค์ ์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ
- ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
gcloud
์ด ๋ช ๋ น์ด๋ ๋ฐฑ์ ์์ ์๊ฐ์ ์์ ํฉ๋๋ค.
gcloud sql instances patch INSTANCE_NAME \ --backup-start-time 16:00
์ด ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด BigQuery์ ๊ฐ์ ๋ค๋ฅธ Google Cloud ์๋น์ค์์ Cloud SQL์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๊ณ ๋ด๋ถ ์ฐ๊ฒฐ์ ํตํด ์ด ๋ฐ์ดํฐ์ ๋ํด ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
gcloud sql instances patch INSTANCE_NAME \ --enable-google-private-path
์ด ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด Cloud SQL ์ธ์คํด์ค๋ฅผ ์ ๋ฐ์ดํธํ์ฌ Vertex AI์ ํตํฉํ ์ ์์ต๋๋ค. ์ด ํตํฉ์ ์ฌ์ฉํ๋ฉด Vertex AI์์ ํธ์คํ ๋๋ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ(LLM)์ PostgreSQL์ฉ Cloud SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉํ ์ ์์ต๋๋ค.
gcloud sql instances patch INSTANCE_NAME \ --enable-google-ml-integration \ --database-flags cloudsql.enable_google_ml_integration=on
ํจ์น๊ฐ ์ฌ์์์ด ํ์ํ ๊ฐ์ ์์ ํ๋ฉด ๋ณ๊ฒฝ์ ์งํํ๊ฑฐ๋ ์ทจ์ํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
์ธ์คํด์ค ๊ตฌ์ฑ ํ๋๊ทธ์ ๊ดํ ์์ธํ ๋ด์ฉ์ gcloud sql instances patch๋ฅผ ์ฐธ์กฐํ์ธ์.
REST v1
์ด ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์์ ์ ์๋ฃํ ์ ์์ต๋๋ค.
- Vertex AI์ ํตํฉ๋ ์ ์๋๋ก ์ธ์คํด์ค๋ฅผ ์์ ํฉ๋๋ค. ์ด ํตํฉ์ ํตํด Vertex AI์์ ํธ์คํ ๋๋ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ(LLM)์ PostgreSQL์ฉ Cloud SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉํ ์ ์์ต๋๋ค.
- ๋ฐฑ์ ์์ ์๊ฐ์ ์์ ํฉ๋๋ค.
- BigQuery์ ๊ฐ์ ๋ค๋ฅธ Google Cloud์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ Cloud SQL์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๊ณ ๋ด๋ถ ์ฐ๊ฒฐ์ ํตํด ์ด ๋ฐ์ดํฐ์ ๋ํด ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: ํ๋ก์ ํธ ID
- INSTANCE_ID: ์ธ์คํด์ค ID์ ๋๋ค.
- PRIVATE_NETWORK: ๋น๊ณต๊ฐ ์ฐ๊ฒฐ์ ๋ง๋ค๊ธฐ ์ํด ์ถ๊ฐํ๊ฑฐ๋ ์ ํํ๋ ๋คํธ์ํฌ์ ๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "settings": { "enableGoogleMlIntegration": true, "databaseFlags": [ { "name": "cloudsql.enable_google_ml_integration", "value": "on" } ] "backupConfiguration": { "startTime": "16:00", "enabled": true, "binaryLogEnabled": true } } "ipConfiguration": { "privateNetwork": "PRIVATE_NETWORK", "authorizedNetworks": [], "ipv4Enabled": false, "enablePrivatePathForGoogleCloudServices": true } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
ํจ์น๊ฐ ์ฌ์์์ด ํ์ํ ๊ฐ์ ์์ ํ๋ฉด ๋ณ๊ฒฝ์ ์งํํ๊ฑฐ๋ ์ทจ์ํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
์ด ์์ ๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ณธ REST API ์์ฒญ์ด ์์ฑ๋๋ ๋ฐฉ์์ ํ์ธํ๋ ค๋ฉด instances:patch ํ์ด์ง์ API ํ์๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.REST v1beta4
์ด ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์์ ์ ์๋ฃํ ์ ์์ต๋๋ค.
- Vertex AI์ ํตํฉ๋ ์ ์๋๋ก ์ธ์คํด์ค๋ฅผ ์์ ํฉ๋๋ค. ์ด ํตํฉ์ ํตํด Vertex AI์์ ํธ์คํ ๋๋ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ(LLM)์ PostgreSQL์ฉ Cloud SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉํ ์ ์์ต๋๋ค.
- ๋ฐฑ์ ์์ ์๊ฐ์ ์์ ํฉ๋๋ค.
- BigQuery์ ๊ฐ์ ๋ค๋ฅธ Google Cloud์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ Cloud SQL์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๊ณ ๋ด๋ถ ์ฐ๊ฒฐ์ ํตํด ์ด ๋ฐ์ดํฐ์ ๋ํด ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: ํ๋ก์ ํธ ID
- INSTANCE_ID: ์ธ์คํด์ค ID์ ๋๋ค.
- PRIVATE_NETWORK: ๋น๊ณต๊ฐ ์ฐ๊ฒฐ์ ๋ง๋ค๊ธฐ ์ํด ์ถ๊ฐํ๊ฑฐ๋ ์ ํํ๋ ๋คํธ์ํฌ์ ๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "settings": { "enableGoogleMlIntegration": true, "databaseFlags": [ { "name": "cloudsql.enable_google_ml_integration", "value": "on" } ] "backupConfiguration": { "startTime": "16:00", "enabled": true, "binaryLogEnabled": true } } "ipConfiguration": { "privateNetwork": "PRIVATE_NETWORK", "authorizedNetworks": [], "ipv4Enabled": false, "enablePrivatePathForGoogleCloudServices": true } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
ํจ์น๊ฐ ์ฌ์์์ด ํ์ํ ๊ฐ์ ์์ ํ๋ฉด ๋ณ๊ฒฝ์ ์งํํ๊ฑฐ๋ ์ทจ์ํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
์ด ์์ ๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ณธ REST API ์์ฒญ์ด ์์ฑ๋๋ ๋ฐฉ์์ ํ์ธํ๋ ค๋ฉด instances:patch ํ์ด์ง์ API ํ์๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋ ์ธ์คํด์ค ์์
gcloud CLI ๋๋ API๋ฅผ ์ฌ์ฉํ์ฌ Private Service Connect๊ฐ ์ฌ์ฉ ์ค์ ๋ ์ธ์คํด์ค๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ๋ชฉ์ ์ผ๋ก ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋ ํ๋ก์ ํธ๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
- Private Service Connect ์๋ํฌ์ธํธ์์ Cloud SQL ์ธ์คํด์ค๋ก์ ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค.
- ํ์ฉ๋ ํ๋ก์ ํธ ๋ชฉ๋ก์์ ํ๋ก์ ํธ๋ฅผ ์ญ์ ํฉ๋๋ค. ์ญ์ ๋ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๊ธฐ์กด Private Service Connect ์๋ํฌ์ธํธ์ ๋ํ ์ฐ๊ฒฐ์ ๊ณ์ ์๋ํ์ง๋ง ์ ์๋ํฌ์ธํธ๋ ํ์ฉ๋์ง ์์ต๋๋ค.
gcloud
Private Service Connect๋ฅผ ์ฌ์ฉํ ์ ์๋ ํ๋ก์ ํธ๋ฅผ ์
๋ฐ์ดํธํ๋ ค๋ฉด gcloud sql instances patch
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud sql instances patch INSTANCE_NAME \ --project=PROJECT_ID \ --allowed-psc-projects=ALLOWED_PROJECTS
๋ค์์ ๋ฐ๊ฟ๋๋ค.
- INSTANCE_NAME: VPC ๋คํธ์ํฌ์ Private Service Connect ์๋ํฌ์ธํธ๊ฐ ์ฐ๊ฒฐํ ์ ์๋ Cloud SQL ์ธ์คํด์ค์ ์ด๋ฆ์ ๋๋ค.
- PROJECT_ID: VPC ๋คํธ์ํฌ์ Private Service Connect ์๋ํฌ์ธํธ๊ฐ ์ฐ๊ฒฐํ ์ ์๋ ์ธ์คํด์ค๊ฐ ํฌํจ๋ Google Cloud ํ๋ก์ ํธ์ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ์ ๋๋ค.
- ALLOWED_PROJECTS: ํ์ฉ๋๋ ํ๋ก์ ํธ ID ๋๋ ์ซ์์ ๋ชฉ๋ก(์ผํ๋ก ๊ตฌ๋ถ). ์ด๋ฌํ ํ๋ก์ ํธ๋ ์ด๋ฏธ Private Service Connect๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋ ํ๋ก์ ํธ๋ฅผ ์ฌ์ ์ํฉ๋๋ค. ํ๋ก์ ํธ๊ฐ ์ด ๋ชฉ๋ก์ ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ Private Service Connect๋ฅผ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
๋ค์ ์์์์๋ ๋ ํ๋ก์ ํธ(98765
๋ฐ 87654
)๊ฐ Private Service Connect ์๋ํฌ์ธํธ์์ 12345
ํ๋ก์ ํธ์ ํฌํจ๋ myinstance
Cloud SQL ์ธ์คํด์ค๋ก ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
gcloud sql instances patch myinstance \ --project=12345 \ --allowed-psc-projects='98765','87654'
ํ์ฉ๋๋ ํ๋ก์ ํธ๋ฅผ ๋ชจ๋ ์ญ์ ํ๋ ค๋ฉด gcloud sql instances patch
๋ช
๋ น์ด์ --clear-allowed-psc-projects
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud sql instances patch INSTANCE_NAME \ --project=PROJECT_ID \ --clear-allowed-psc-projects
์ด ํ๋๊ทธ๋ ์ค์๋ก ํ๋ก์ ํธ๊ฐ ํ์ฉ๋์ง ์๋๋ก ํฉ๋๋ค.
REST v1
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: VPC ๋คํธ์ํฌ์ Private Service Connect ์๋ํฌ์ธํธ๊ฐ ์ฐ๊ฒฐํ ์ ์๋ ์ธ์คํด์ค๊ฐ ํฌํจ๋ Google Cloud ํ๋ก์ ํธ์ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ์ ๋๋ค.
- INSTANCE_NAME: VPC ๋คํธ์ํฌ์ Private Service Connect ์๋ํฌ์ธํธ๊ฐ ์ฐ๊ฒฐํ ์ ์๋ Cloud SQL ์ธ์คํด์ค์ ์ด๋ฆ์ ๋๋ค.
- ALLOWED_PROJECTS: ํ์ฉ๋๋ ํ๋ก์ ํธ ID ๋๋ ์ซ์์ ๋ชฉ๋ก(์ผํ๋ก ๊ตฌ๋ถ)์ ๋๋ค. ์ด๋ฌํ ํ๋ก์ ํธ๋ ์ด๋ฏธ Private Service Connect๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋ ํ๋ก์ ํธ๋ฅผ ์ฌ์ ์ํฉ๋๋ค. ํ๋ก์ ํธ๊ฐ ์ด ๋ชฉ๋ก์ ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ Private Service Connect๋ฅผ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "kind": "sql#instance", "name": "INSTANCE_NAME", "project": "PROJECT_ID", "settings": { "ipConfiguration": { "pscConfig": { "allowedConsumerProjects": [ALLOWED_PROJECTS] } }, "kind": "sql#settings" } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
ํ์ฉ๋๋ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ์ญ์ ํ๋ ค๋ฉด clear-allowed-psc-projects
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ํ๋๊ทธ๋ ์ค์๋ก ํ๋ก์ ํธ๊ฐ ํ์ฉ๋์ง ์๋๋ก ํฉ๋๋ค.
REST v1beta4
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: VPC ๋คํธ์ํฌ์ Private Service Connect ์๋ํฌ์ธํธ๊ฐ ์ฐ๊ฒฐํ ์ ์๋ ์ธ์คํด์ค๊ฐ ํฌํจ๋ Google Cloud ํ๋ก์ ํธ์ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ์ ๋๋ค.
- INSTANCE_NAME: VPC ๋คํธ์ํฌ์ Private Service Connect ์๋ํฌ์ธํธ๊ฐ ์ฐ๊ฒฐํ ์ ์๋ Cloud SQL ์ธ์คํด์ค์ ์ด๋ฆ์ ๋๋ค.
- ALLOWED_PROJECTS: ํ์ฉ๋๋ ํ๋ก์ ํธ ID ๋๋ ์ซ์์ ๋ชฉ๋ก(์ผํ๋ก ๊ตฌ๋ถ)์ ๋๋ค. ์ด๋ฌํ ํ๋ก์ ํธ๋ ์ด๋ฏธ Private Service Connect๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋ ํ๋ก์ ํธ๋ฅผ ์ฌ์ ์ํฉ๋๋ค. ํ๋ก์ ํธ๊ฐ ์ด ๋ชฉ๋ก์ ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ Private Service Connect๋ฅผ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "kind": "sql#instance", "name": "INSTANCE_NAME", "project": "PROJECT_ID", "settings": { "ipConfiguration": { "pscConfig": { "allowedConsumerProjects": [ALLOWED_PROJECTS] } }, "kind": "sql#settings" } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
ํ์ฉ๋๋ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ์ญ์ ํ๋ ค๋ฉด clear-allowed-psc-projects
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ํ๋๊ทธ๋ ์ค์๋ก ํ๋ก์ ํธ๊ฐ ํ์ฉ๋์ง ์๋๋ก ํฉ๋๋ค.
์ธ์คํด์ค์ ์ปค์คํ SAN ์์
IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ ๋์ ์ปค์คํ DNS ์ด๋ฆ์ ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ค๋ฉด ์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋ ์ปค์คํ ์ฃผ์ฒด ๋์ฒด ์ด๋ฆ(SAN) ์ค์ ์ ๊ตฌ์ฑํฉ๋๋ค. ์ปค์คํ SAN ์ค์ ์ ์ฝ์ ํ ์ปค์คํ DNS ์ด๋ฆ์ด ์ธ์คํด์ค ์๋ฒ ์ธ์ฆ์์ SAN ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํธ์คํธ ์ด๋ฆ ๊ฒ์ฆ์ ๊ฑฐ์ณ ์ปค์คํ DNS ์ด๋ฆ์ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ ์ปค์คํ SAN์ ์ฌ์ฉํ์ฌ ๋ค์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
- ์ธ์คํด์ค์ DNS ์ด๋ฆ ์ถ๊ฐ: ์ปค์คํ SAN ์ค์ ์ ์ผํ๋ก ๊ตฌ๋ถ๋ ์ต๋ 3๊ฐ์ ์ปค์คํ DNS ์ด๋ฆ ๋ชฉ๋ก์ ์ถ๊ฐํฉ๋๋ค. Cloud SQL์ ์ด๋ฌํ ์ด๋ฆ์ ์๋ฒ ์ธ์ฆ์์ SAN ํ๋์ ์ถ๊ฐํฉ๋๋ค. ๋จ์ผ ์ธ์ฆ์๋ก ์ฌ๋ฌ DNS ์ด๋ฆ์ ๋ณดํธํ ์ ์์ต๋๋ค.
- ์ธ์คํด์ค์ DNS ์ด๋ฆ ์์ : ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ SAN ํ๋์ ์ถ๊ฐํ ์ปค์คํ DNS ์ด๋ฆ์ ๋ณ๊ฒฝํฉ๋๋ค.
- ์ธ์คํด์ค์์ DNS ์ด๋ฆ ์ญ์ : ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ SAN ํ๋์์ ๋ชจ๋ ์ปค์คํ DNS ์ด๋ฆ์ ์ญ์ ํฉ๋๋ค.
gcloud CLI ๋๋ API๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ปค์คํ SAN์ ์์ ํ ์ ์์ต๋๋ค.
gcloud
์ธ์คํด์ค์ ์ปค์คํ
SAN์ ์์ ํ๋ ค๋ฉด gcloud beta sql instances patch
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud beta sql instances patch INSTANCE_NAME \ --project=PROJECT_ID \ --custom-subject-alternative-names=DNS_NAMES
๋ค์์ ๋ฐ๊ฟ๋๋ค.
- INSTANCE_NAME: DNS ์ด๋ฆ์ ์ถ๊ฐ, ์์ ๋๋ ์ญ์ ํ ์๋ฒ ์ธ์ฆ์๊ฐ ์๋ Cloud SQL ์ธ์คํด์ค์ ์ด๋ฆ
- PROJECT_ID: ์ธ์คํด์ค๊ฐ ํฌํจ๋ Google Cloud ํ๋ก์ ํธ์ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ
- DNS_NAMES: ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ ์ถ๊ฐํ DNS ์ด๋ฆ ์ต๋ 3๊ฐ๊ฐ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก
Cloud SQL ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์์ ๋ชจ๋ DNS ์ด๋ฆ์ ์ญ์ ํ๋ ค๋ฉด
gcloud beta sql instances patch
๋ช
๋ น์ด์ --clear-custom-subject-alternative-names
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud beta sql instances patch INSTANCE_NAME \ --project=PROJECT_ID \ --clear-custom-subject-alternative-names
์ด ํ๋๊ทธ๋ ์๋์น ์๊ฒ ์ธ์ฆ์์ DNS ์ด๋ฆ์ด ์ถ๊ฐ๋์ง ์๋๋ก ํฉ๋๋ค.
REST
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: Google Cloud ํ๋ก์ ํธ์ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ์ ๋๋ค. ์ด ํ๋ก์ ํธ์๋ DNS ์ด๋ฆ์ ์ถ๊ฐ, ์์ ๋๋ ์ญ์ ํ ์๋ฒ ์ธ์ฆ์๊ฐ ํฌํจ๋ Cloud SQL ์ธ์คํด์ค๊ฐ ์์ต๋๋ค.
- INSTANCE_NAME: ์ธ์คํด์ค ์ด๋ฆ์ ๋๋ค.
DNS_NAMES: ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ ์ถ๊ฐํ DNS ์ด๋ฆ์ ์ผํ๋ก ๊ตฌ๋ถํ ๋ชฉ๋ก์ผ๋ก, ์ต๋ 3๊ฐ๊น์ง ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ธ์ฆ์์ ์ด๋ฏธ ์ถ๊ฐ๋ DNS ์ด๋ฆ์ด ์๊ณ ์ด ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ DNS ์ด๋ฆ์ ์ง์ ํ๋ฉด Cloud SQL์ด ์ธ์ฆ์์์ ์๋ DNS ์ด๋ฆ์ ์ญ์ ํฉ๋๋ค.
customSubjectAlternativeNames
ํ๋ผ๋ฏธํฐ์ DNS ์ด๋ฆ์ ์ง์ ํ์ง ์๊ณ ๋์ null[]
๊ฐ์ ์ ๊ณตํ๋ฉด Cloud SQL์์ ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์์ ๋ชจ๋ DNS ์ด๋ฆ์ ์ญ์ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ธ์ฆ์์ ์๋์น ์๊ฒ DNS ์ด๋ฆ์ด ์ถ๊ฐ๋์ง ์์ต๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
PATCH https://sqladmin.googleapis.com/sql/v1veta4/projects/PROJECT_ID/instances/INSTANCE_NAME
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "kind": "sql#instance", "name": "INSTANCE_NAME", "project": "PROJECT_ID", "settings": { "ipConfiguration": { "customSubjectAlternativeNames": "DNS_NAMES" }, "kind": "sql#settings" } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }