์ด ํ์ด์ง์์๋ PostgreSQL์ฉ Cloud SQL ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
๋ชจ๋ ์ธ์คํด์ค ์ค์ ์ ๊ดํ ์์ธํ ๋ด์ฉ์ ์ธ์คํด์ค ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์๋ก ์์ฑ๋ ์ธ์คํด์ค์๋ postgres
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ต๋๋ค.
๋จ์ผ ํ๋ก์ ํธ์ ๋ณด์ ํ ์ ์๋ ์ต๋ ์ธ์คํด์ค ์๋ ์ธ์คํด์ค์ ๋คํธ์ํฌ ์ํคํ ์ฒ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
- ์ SQL ๋คํธ์ํฌ ์ํคํ ์ฒ: ์ธ์คํด์ค๋ฅผ ํ๋ก์ ํธ๋น ์ต๋ 1,000๊ฐ๊น์ง ๋ณด์ ํ ์ ์์ต๋๋ค.
- ์ด์ SQL ๋คํธ์ํฌ ์ํคํ ์ฒ: ์ธ์คํด์ค๋ฅผ ํ๋ก์ ํธ๋น ์ต๋ 100๊ฐ๊น์ง ๋ณด์ ํ ์ ์์ต๋๋ค.
- ๋ ์ํคํ ์ฒ ๋ชจ๋ ์ฌ์ฉ: ๋ ์ํคํ ์ฒ์์์ ์ธ์คํด์ค ๋ฐฐํฌ ๋ฐฉ์์ ๋ฐ๋ผ ํ๋๋ 100~1,000๊ฐ์ ๋๋ค.
์ํฅ์ ์์ฒญํ๋ ค๋ฉด ์ง์ ์ผ์ด์ค๋ฅผ ์ ์ํ์ธ์. ์ฝ๊ธฐ ๋ณต์ ๋ณธ์ ์ธ์คํด์ค๋ก ๊ณ์ฐ๋ฉ๋๋ค.
์์ํ๊ธฐ ์ ์
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the gcloud CLI.
-
์ธ๋ถ ID ๊ณต๊ธ์ ์ฒด(IdP)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋จผ์ ์ ํด ID๋ก gcloud CLI์ ๋ก๊ทธ์ธํด์ผ ํฉ๋๋ค.
-
gcloud CLI๋ฅผ ์ด๊ธฐํํ๋ ค๋ฉด, ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the gcloud CLI.
-
์ธ๋ถ ID ๊ณต๊ธ์ ์ฒด(IdP)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋จผ์ ์ ํด ID๋ก gcloud CLI์ ๋ก๊ทธ์ธํด์ผ ํฉ๋๋ค.
-
gcloud CLI๋ฅผ ์ด๊ธฐํํ๋ ค๋ฉด, ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud init
- ์ฌ์ฉ์ ๊ณ์ ์ Cloud SQL ๊ด๋ฆฌ์ ๋ฐ Compute ๋ทฐ์ด ์ญํ ์ด ์๋์ง ํ์ธํฉ๋๋ค.
์ญํ ๋ฐ ๊ถํ์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ
-
Google Cloud ์ฝ์์์ Cloud SQL ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ์ธ์คํด์ค ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ธ์คํด์ค ๋ง๋ค๊ธฐ ํ์ด์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง ์ ํ ํจ๋์์ PostgreSQL ์ ํ์ ํด๋ฆญํฉ๋๋ค.
SQL Server ์ธ์คํด์ค ๋ง๋ค๊ธฐ ํ์ด์ง์ Cloud SQL ๋ฒ์ ์ ํ ์น์ ์์ ์ธ์คํด์ค์ Cloud SQL ๋ฒ์ (
Enterprise
๋๋Enterprise Plus
)์ ์ ํํฉ๋๋ค.Cloud SQL ๋ฒ์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ Cloud SQL ๋ฒ์ ์๊ฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ธ์คํด์ค์ ๋ฒ์ ์ฌ์ ์ค์ ์ ์ ํํฉ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ์ฌ์ ์ค์ ์ ๋ณด๋ ค๋ฉด ๋ฒ์ ์ฌ์ ์ค์ ๋ฉ๋ด๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ธ์คํด์ค ์ ๋ณด ์น์
์์ ์ธ์คํด์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ ์ ์ ํํฉ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฒ์ ์ ํ์ธํ๋ ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ ๋ฉ๋ด๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค๊ฐ ์์ฑ๋ ํ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ ์ ์์ ํ ์ ์์ต๋๋ค.
- ์ธ์คํด์ค ์ ๋ณด ์ฐฝ์ ์ธ์คํด์ค ID ํ๋์ ์ธ์คํด์ค ID๋ฅผ ์
๋ ฅํฉ๋๋ค.
์ธ์คํด์ค ์ด๋ฆ์ ํ๋ก์ ํธ ID๋ฅผ ํฌํจํ์ง ์์๋ ๋ฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์๋์ผ๋ก ํฌํจ๋ฉ๋๋ค(์: ๋ก๊ทธ ํ์ผ์์).
postgres
์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค.-
์ ํ์ฌํญ: ๋ค์๊ณผ ๊ฐ์ด ์ธ์คํด์ค์ ๋น๋ฐ๋ฒํธ ์ ์ฑ
์ ๊ตฌ์ฑํฉ๋๋ค.
- ๋น๋ฐ๋ฒํธ ์ ์ฑ ์ฌ์ฉ ์ค์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.
- ๋น๋ฐ๋ฒํธ ์ ์ฑ
์ค์ ๋ฒํผ์ ํด๋ฆญํ๊ณ ๋ค์ ์ต์
์ค ํ๋ ์ด์์ ์ค์ ํ ๋ค์ ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
- ์ต์ ๊ธธ์ด: ๋น๋ฐ๋ฒํธ์ ํ์ํ ์ต์ ๋ฌธ์ ์๋ฅผ ์ง์ ํฉ๋๋ค.
- ๋น๋ฐ๋ฒํธ ๋ณต์ก์ฑ: ๋น๋ฐ๋ฒํธ๊ฐ ์๋ฌธ์, ๋๋ฌธ์, ์ซ์, ์์ซ์๊ฐ ์๋ ๋ฌธ์์ ์กฐํฉ์ธ์ง ํ์ธํฉ๋๋ค.
- ๋น๋ฐ๋ฒํธ ์ฌ์ฌ์ฉ ์ ํ: ์ฌ์ฌ์ฉํ ์ ์๋ ์ด์ ๋น๋ฐ๋ฒํธ ์๋ฅผ ์ง์ ํฉ๋๋ค.
- ์ฌ์ฉ์ ์ด๋ฆ ์ฌ์ฉ ๊ธ์ง: ๋น๋ฐ๋ฒํธ์์ ์ฌ์ฉ์ ์ด๋ฆ์ ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ํฉ๋๋ค.
- ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ๊ฐ๊ฒฉ ์ค์ : ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ์ต์ ์๊ฐ์ ์ง์ ํฉ๋๋ค.
- ๋ฆฌ์ ๋ฐ ์์ญ ๊ฐ์ฉ์ฑ ์ ํ ์น์
์์ ์ธ์คํด์ค์ ๋ฆฌ์ ๊ณผ ์์ญ์ ์ ํํฉ๋๋ค. ๋ฆฌ์ ๊ฐ์ฉ์ฑ์ PostgreSQL์ฉ Cloud SQL ๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ธ์คํด์ค ์ค์ ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ธ์.
์ธ์คํด์ค๋ฅผ ์ธ์คํด์ค์ ์ก์ธ์คํ๋ ๋ฆฌ์์ค์ ๊ฐ์ ๋ฆฌ์ ์ ๋ฐฐ์นํฉ๋๋ค. ์ ํํ ๋ฆฌ์ ์ ๋์ค์ ์์ ํ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์์ญ์ ์ง์ ํ ํ์๊ฐ ์์ต๋๋ค.
์ธ์คํด์ค๋ฅผ ๊ณ ๊ฐ์ฉ์ฑ์ผ๋ก ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์์ญ๊ณผ ๋ณด์กฐ ์์ญ์ ๋ชจ๋ ์ ํํ ์ ์์ต๋๋ค.
์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๋์ ๋ณด์กฐ ์์ญ์ด ์ฌ์ฉ๋๋ฉด ๋ค์ ์กฐ๊ฑด์ด ์ ์ฉ๋ฉ๋๋ค.
- ์์ญ์ด ๊ธฐ๋ณธ ์์ญ์
Any
๋ก ๋ณด์กฐ ์์ญ์Any (different from primary)
๋ก ๊ธฐ๋ณธ ์ค์ ๋ฉ๋๋ค. - ๊ธฐ๋ณธ ์์ญ๊ณผ ๋ณด์กฐ ์์ญ์ ๋ชจ๋ ์ง์ ํ ๊ฒฝ์ฐ ์๋ก ๋ณ๋์ ์์ญ์ด์ด์ผ ํฉ๋๋ค.
- ์์ญ์ด ๊ธฐ๋ณธ ์์ญ์
- ์ธ์คํด์ค ๋ง์ถค์ค์ ์น์
์์ ์ธ์คํด์ค์ ์ค์ ์ ์
๋ฐ์ดํธํฉ๋๋ค.
๊ตฌ์ฑ ์ต์
ํ์๋ฅผ ํด๋ฆญํ์ฌ ์ค์ ๊ทธ๋ฃน์ ํ์ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ค์ ์ ๊ฒํ ํ๊ณ ๋ง์ถค์ค์ ํ ๊ทธ๋ฃน์ ํผ์นฉ๋๋ค.
์ ํํ ๋ชจ๋ ์ต์
์ ์์ฝ์ด ์ค๋ฅธ์ชฝ์ ํ์๋ฉ๋๋ค.
์ด๋ฌํ ์ธ์คํด์ค ์ค์ ์ ๋ง์ถค์ค์ ์ ์ ํ์ฌํญ์
๋๋ค. ๋ง์ถค์ค์ ์ด ์ํ๋์ง ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ๊ธฐ๋ณธ๊ฐ์ด ํ ๋น๋ฉ๋๋ค.
๋ค์ ํ๋ ์ธ์คํด์ค ์ค์ ์ ๋ํ ๋น ๋ฅธ ์ฐธ์กฐ์ ๋๋ค. ๊ฐ ์ค์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ธ์คํด์ค ์ค์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์ค์ ์ฐธ๊ณ ๋จธ์ ์ ํ ๋จธ์ ์ ํ ๊ณต์ ์ฝ์ด ๋๋ ์ ์ฉ ์ฝ์ด ์ค์์ ์ ํํฉ๋๋ค. ๊ณต์ ์ฝ์ด์ ๊ฒฝ์ฐ ๊ฐ ๋จธ์ ์ ํ์ CPU(์ฝ์ด) ์์ ์ธ์คํด์ค ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ๋ผ ๋ถ๋ฅ๋ฉ๋๋ค. ์ฝ์ด ์ธ์คํด์ค์ vCPU ์์ ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ๋ฉ๋ชจ๋ฆฌ ์ธ์คํด์ค์ ๋ฉ๋ชจ๋ฆฌ ์(GB)์ ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ์ปค์คํ ์ ์ฉ ์ฝ์ด ๋จธ์ ์ ํ์ ๊ฒฝ์ฐ ์ฌ์ ์ ์๋ ๊ตฌ์ฑ์ ์ ํํ๋ ๋์ ์ปค์คํ ๋ฒํผ์ ์ ํํ์ฌ ์ปค์คํ ๊ตฌ์ฑ์ผ๋ก ์ธ์คํด์ค๋ฅผ ๋ง๋ญ๋๋ค. ์ด ์ต์ ์ ์ ํํ ๋๋ ์ธ์คํด์ค์ ์ฝ์ด ์์ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ํํด์ผ ํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ์คํ ๋ฆฌ์ง ์คํ ๋ฆฌ์ง ์ ํ ์ธ์คํด์ค ์คํ ๋ฆฌ์ง ์ ํ(SSD ๋๋ HDD)์ ๊ฒฐ์ ํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ์คํ ๋ฆฌ์ง ์ฉ๋ ์ธ์คํด์ค์ ์ ๊ณต๋ ์ ์ฅ์ฉ๋์ ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ์คํ ๋ฆฌ์ง ์๋ ์ฆ๊ฐ ์ฌ์ฉ ์ค์ ์ธ์คํด์ค์ ์ฌ์ ๊ณต๊ฐ์ด ๋ถ์กฑํ ๋ Cloud SQL์์ ์๋์ผ๋ก ์คํ ๋ฆฌ์ง๋ฅผ ์ ๊ณตํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค ์์ธํ ์์๋ณด๊ธฐ ์ํธํ Google ๊ด๋ฆฌ ์ํธํ ๊ธฐ๋ณธ ์ต์ ์ ๋๋ค. ๊ณ ๊ฐ ํค ๊ด๋ฆฌ ์ํธํ ํค(CMEK) Google Cloud Key Management Service์์ ์์ฒด ํค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ ํํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ์ฐ๊ฒฐ ๋น๊ณต๊ฐ IP ์ธ์คํด์ค์ ๋น๊ณต๊ฐ IP ์ฃผ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ค๋ฉด ์ถ๊ฐ ๊ตฌ์ฑ์ด ํ์ํฉ๋๋ค.
ํ์ํ ๊ฒฝ์ฐ ์ฐ๊ฒฐ์ ์ฌ์ฉํ ์ธ์คํด์ค์ ํ ๋น๋ IP ๋ฒ์๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.- ํ ๋น๋ IP ๋ฒ์ ์ต์ ํ์๋ฅผ ํผ์นฉ๋๋ค.
- ๋๋กญ๋ค์ด ๋ฉ๋ด์์ IP ๋ฒ์๋ฅผ ์ ํํฉ๋๋ค.
์ธ์คํด์ค์๋ ๊ณต๊ฐ ๋ฐ ๋น๊ณต๊ฐ IP ์ฃผ์๊ฐ ๋ชจ๋ ํฌํจ๋ ์ ์์ต๋๋ค.
- ๋น๊ณต๊ฐ IP ์ฌ์ฉ์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
- ํ ๋น๋ IP ์ฃผ์ ๋ฒ์์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
๊ณต๊ฐ IP ์ธ์คํด์ค์ ๊ณต๊ฐ IP ์ฃผ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์น์ธ๋ ๋คํธ์ํฌ๋ฅผ ์ถ๊ฐํ์ฌ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ฉด ๋ฉ๋๋ค. ์ธ์คํด์ค์๋ ๊ณต๊ฐ ๋ฐ ๋น๊ณต๊ฐ IP ์ฃผ์๊ฐ ๋ชจ๋ ํฌํจ๋ ์ ์์ต๋๋ค.
๊ณต๊ฐ IP ์ฌ์ฉ์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
์น์ธ๋ ๋คํธ์ํฌ ์๋ก์ด ๋คํธ์ํฌ ์ด๋ฆ๊ณผ ๋คํธ์ํฌ ์ฃผ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ
Google Cloud ์๋น์ค ๋น๊ณต๊ฐ ๊ฒฝ๋ก ์ด ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๋ฉด BigQuery์ ๊ฐ์ ๋ค๋ฅธ Google Cloud ์๋น์ค๊ฐ Cloud SQL์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๊ณ ๋น๊ณต๊ฐ ์ฐ๊ฒฐ์ ํตํด ์ด ๋ฐ์ดํฐ์ ๋ํด ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋๋ก ํ์ฉํ ์ ์์ต๋๋ค.
๊ด๋ฆฌํ ์ฐ๊ฒฐ ํ๋ง ์ฌ์ฉ ์ค์ ์ด ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๋ฉด ์ธ์คํด์ค์ ๊ด๋ฆฌํ ์ฐ๊ฒฐ ํ๋ง์ด ์ฌ์ฉ ์ค์ ๋ฉ๋๋ค. ๊ด๋ฆฌํ ์ฐ๊ฒฐ ํ๋ง์ ์ฌ์ฉํ๋ฉด ํ๋ง ๋ฐ ๋ค์คํ๋ฅผ ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์คํด์ค์ ๋ฆฌ์์ค ์ฌ์ฉ๋ฅ ๊ณผ ์ฐ๊ฒฐ ์ง์ฐ ์๊ฐ์ ์ต์ ํํ์ฌ ์ํฌ๋ก๋๋ฅผ ํ์ฅํ ์ ์์ต๋๋ค. ๊ด๋ฆฌํ ์ฐ๊ฒฐ ํ๋ง์ ๋ํ ์์ธํ ๋ด์ฉ์ ๊ด๋ฆฌํ ์ฐ๊ฒฐ ํ๋ง ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ณด์ ์๋ฒ ์ธ์ฆ ๊ธฐ๊ด ๋ชจ๋ ์ด Cloud SQL ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ ์๋ช ํ๋ ์ธ์ฆ ๊ธฐ๊ด(CA)์ ์ ํ์ ์ ํํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ
๊ธฐ๋ณธ์ ์ผ๋ก Google Cloud ์ฝ์์์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ฉด ์ธ์คํด์ค๋ ์ธ์คํด์ค๋ณ CA ์ต์ ์ธ Google ๊ด๋ฆฌ ๋ด๋ถ ์ธ์ฆ ๊ธฐ๊ด(
GOOGLE_MANAGED_INTERNAL_CA
)์ ์ฌ์ฉํฉ๋๋ค.๋ฐ์ดํฐ ๋ณดํธ ๋ฐฑ์ ์๋ํ ๋ฐฑ์ ์ ์์ํ ์๊ฐ ๋ฒ์์ ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ๋ฐฑ์ ์ ์ ์ฅํ ์์น๋ฅผ ์ ํํ์ธ์. ๋๋ถ๋ถ์ ์ฌ์ฉ ์ฌ๋ก์์ ๋ฉํฐ ๋ฆฌ์ ์ ์ ํํ์ธ์. ํน์ ๋ฆฌ์ ์ ๋ฐฑ์ ์ ์ ์ฅํด์ผ ํ๋ ๊ฒฝ์ฐ(์๋ฅผ ๋ค์ด ๊ท์ ์ ๊ทธ๋ ๊ฒ ํด์ผ ํ ์ด์ ๊ฐ ์๋ ๊ฒฝ์ฐ) ๋ฆฌ์ ์ ์ ํํ๊ณ ์์น ๋๋กญ๋ค์ด ๋ฉ๋ด์์ ๋ฆฌ์ ์ ์ ํํฉ๋๋ค. ์ ์ฅํ ์๋ ๋ฐฑ์ ์ ์ ํ ๋ณด๊ดํ ์๋ ๋ฐฑ์ ์ ์์ ๋๋ค(1~365์ผ). ์์ธํ ์์๋ณด๊ธฐ point-in-time recovery ์ฌ์ฉ ์ค์ point-in-time recovery ๋ฐ ๋ฏธ๋ฆฌ ์ฐ๊ธฐ ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ์ญ์ ๋ณดํธ ์ฌ์ฉ ์ค์ ์ค์๋ก ์ธํ ์ธ์คํด์ค ์ญ์ ๋ฅผ ๋ณดํธํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ์ธ์คํด์ค ์ญ์ ํ ๋ณด๊ด๋ ๋ฐฑ์ ์ฌ์ฉ ์ค์ ์ธ์คํด์ค๊ฐ ์ญ์ ๋ ํ ์๋ ๋ฐ ์ฃผ๋ฌธํ ๋ฐฑ์ ์ ๋ณด๊ดํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ๋ก๊ทธ ๋ณด๊ด ์ผ์ ์ ํ ๋ฏธ๋ฆฌ ์ฐ๊ธฐ ๋ก๊ทธ ๋ณด๊ด ๊ธฐ๊ฐ์ 1~7์ผ๋ก ๊ตฌ์ฑํฉ๋๋ค. ๊ธฐ๋ณธ ์ค์ ์ 7์ผ์ ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ์ ์ง๋ณด์ ์ ํธ ๊ธฐ๊ฐ Cloud SQL์ด ์ธ์คํด์ค์ ์๋น์ค ์ค๋จ ์ ์ง๋ณด์ ์์ ์ ์ํํ ์๊ฐ(1์๊ฐ)์ ์ค์ ํฉ๋๋ค. ์ด ์๊ฐ์ ์ค์ ํ์ง ์์ผ๋ฉด ์์์น ๋ชปํ ๋์ ์ ๋ฌด์ ์ฐจ์ง์ ์ค ์ ์๋ ์ ์ง๋ณด์ ์์ ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ์ ๋ฐ์ดํธ ์์ ๋์ผํ ํ๋ก์ ํธ์ ๋ค๋ฅธ ์ธ์คํด์ค์ ๋น๊ตํ์ฌ ์ ํธํ๋ ์ ๋ฐ์ดํธ ์๊ฐ์ ์ค์ ํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ํ๋๊ทธ ํ๋๊ทธ ์ถ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ค์ ๊ณผ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ๋ผ๋ฒจ ๋ผ๋ฒจ ์ถ๊ฐ ์ถ๊ฐํ๋ ๊ฐ ๋ผ๋ฒจ์ ํค์ ๊ฐ์ ์ถ๊ฐํฉ๋๋ค. ๋ผ๋ฒจ์ ์ฌ์ฉํ๋ฉด ์ธ์คํด์ค๋ฅผ ์ ๋ฆฌํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ์บ์ ๋ฐ์ดํฐ ์บ์ ์ฌ์ฉ ์ค์ (์ ํ์ฌํญ) PostgreSQL์ฉ Cloud SQL Enterprise Plus ๋ฒ์ ์ธ์คํด์ค์ฉ ๋ฐ์ดํฐ ์บ์๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ๋ฐ์ดํฐ ์บ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ฐ์ดํฐ ์บ์๋ฅผ ์ฐธ์กฐํ์ธ์. - ์ธ์คํด์ค ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ฐธ๊ณ : ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๋ฐ ๋ช ๋ถ ์ ๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ธ์คํด์ค๊ฐ ์์ฑ๋๋ ๋์ ์ธ์คํด์ค์ ๋ํ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
gcloud sql instances create
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๋ฅผ ๋ง๋ญ๋๋ค.- vCPU๋ 1 ๋๋ 2~96 ์ฌ์ด์ ์ง์์ฌ์ผ ํฉ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
- vCPU๋น 0.9~6.5GB
- 256MB์ ๋ฐฐ์
- ์ต์ 3.75GB(3,840MB)
- ์์ญ์ด ์ ํจํ ์์ญ์ด์ด์ผ ํฉ๋๋ค.
- ๋ณด์กฐ ์์ญ์ด ์ง์ ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์์ญ๋ ์ง์ ํด์ผ ํฉ๋๋ค.
- ๊ธฐ๋ณธ ์์ญ๊ณผ ๋ณด์กฐ ์์ญ์ ์ง์ ํ ๊ฒฝ์ฐ ์๋ก ๋ณ๋์ ์์ญ์ด์ด์ผ ํฉ๋๋ค.
- ๊ธฐ๋ณธ ์์ญ๊ณผ ๋ณด์กฐ ์์ญ์ ์ง์ ํ ๊ฒฝ์ฐ ๋ ์์ญ์ด ๊ฐ์ ๋ฆฌ์ ์ ์์ด์ผ ํฉ๋๋ค.
--no-assign-ip
๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.--network
๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋น๊ณต๊ฐ ์ฐ๊ฒฐ์ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ VPC ๋คํธ์ํฌ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.GOOGLE_MANAGED_INTERNAL_CA
: ๊ธฐ๋ณธ๊ฐ์ ๋๋ค. ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด ๊ฐ Cloud SQL ์ธ์คํด์ค ์ ์ฉ ๋ด๋ถ CA๊ฐ ํด๋น ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ ์๋ช ํฉ๋๋ค.GOOGLE_MANAGED_CAS_CA
: ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด Cloud SQL์์ ๊ด๋ฆฌ๋๊ณ Google Cloud Certificate Authority Service(CA ์๋น์ค)์์ ํธ์คํ ๋๋ ๋ฃจํธ CA ๋ฐ ํ์ ์๋ฒ CA๋ก ๊ตฌ์ฑ๋ CA ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ฆฌ์ ์ ํ์ ์๋ฒ CA๋ ์๋ฒ ์ธ์ฆ์์ ์๋ช ํ๊ณ ๋ฆฌ์ ์ ์ธ์คํด์ค ๊ฐ์ ๊ณต์ ๋ฉ๋๋ค.CUSTOMER_MANAGED_CAS_CA
: ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด CA ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ CA ์ธ์ฆ์ ์ํ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ธ์คํด์ค์ ๋์ผํ ๋ฆฌ์ ์ ์๋ CA ์๋น์ค์์ CA ํ์ ๋ง๋ญ๋๋ค. ํ์ CA ์ค ํ๋๊ฐ ์๋ฒ ์ธ์ฆ์์ ์๋ช ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ณ ๊ฐ ๊ด๋ฆฌ CA ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.- ์์ญ์ด ์ ํจํ ์์ญ์ด์ด์ผ ํฉ๋๋ค.
- ๋ณด์กฐ ์์ญ์ด ์ง์ ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์์ญ๋ ์ง์ ํด์ผ ํฉ๋๋ค.
- ์๋ ํ ๋น๋ IP ์ฃผ์๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
Cloud SQL ์ธ์ฆ ํ๋ก์๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ์ด ์ฃผ์๋ฅผ ํธ์คํธ ์ฃผ์๋ก ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ๋๊ตฌ์์ ์ธ์คํด์ค๋ก ์ฐ๊ฒฐํฉ๋๋ค.
postgres
์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํฉ๋๋ค.gcloud sql users set-password postgres \ --instance=INSTANCE_NAME \ --password=PASSWORD
- Cloud Shell์ ์คํํฉ๋๋ค.
-
Terraform ๊ตฌ์ฑ์ ์ ์ฉํ ๊ธฐ๋ณธ Google Cloud ํ๋ก์ ํธ๋ฅผ ์ค์ ํฉ๋๋ค.
์ด ๋ช ๋ น์ด๋ ํ๋ก์ ํธ๋น ํ ๋ฒ๋ง ์คํํ๋ฉด ๋๋ฉฐ ์ด๋ค ๋๋ ํฐ๋ฆฌ์์๋ ์คํํ ์ ์์ต๋๋ค.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
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
- PROJECT_ID: ํ๋ก์ ํธ ID
- INSTANCE_ID: ์ธ์คํด์ค ID
- REGION: ๋ฆฌ์
- DATABASE_VERSION: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ ์ ์ด๊ฑฐํ ๋ฌธ์์ด(์:
POSTGRES_17
) - PASSWORD: ๋ฃจํธ ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ์ ๋๋ค.
- MACHINE_TYPE :
db-custom-[CPUS]-[MEMORY_MBS]
์ ๊ฐ์ ๋จธ์ (๋ฑ๊ธ) ์ ํ์ ์ด๊ฑฐํ ๋ฌธ์์ด์ ๋๋ค. EDITION_TYPE: Cloud SQL ๋ฒ์
- DATA_CACHE_ENABLED: (์ ํ์ฌํญ)
true
๋ก ์ค์ ํ์ฌ ์ธ์คํด์ค์ ๋ฐ์ดํฐ ์บ์ ์ฌ์ฉ ์ค์ - PRIVATE_NETWORK: ์ด ์ธ์คํด์ค์ ์ฌ์ฉํ๋ ค๋ Virtual Private Cloud(VPC) ๋คํธ์ํฌ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ๋น๊ณต๊ฐ ์๋น์ค ์ก์ธ์ค๊ฐ ์ด๋ฏธ ๋คํธ์ํฌ์ ๊ตฌ์ฑ๋์ด ์์ด์ผ ํฉ๋๋ค.
- AUTHORIZED_NETWORKS: ๊ณต๊ฐ IP ์ฐ๊ฒฐ์ ๊ฒฝ์ฐ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ์ ์๋ ์น์ธ๋ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ์ ์ง์ ํฉ๋๋ค.
- CA_MODE: ์ธ์คํด์ค์ ์ธ์ฆ ๊ธฐ๊ด ๊ณ์ธต ๊ตฌ์กฐ(
GOOGLE_MANAGED_INTERNAL_CA
๋๋GOOGLE_MANAGED_CAS_CA
)๋ฅผ ์ง์ ํฉ๋๋ค.serverCaMode
๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ ๊ตฌ์ฑ์GOOGLE_MANAGED_INTERNAL_CA
์ ๋๋ค. ์ด ๊ธฐ๋ฅ์ ํ๋ฆฌ๋ทฐ ๋ฒ์ ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. - DNS_NAMES: Cloud SQL ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ ์ผํ๋ก ๊ตฌ๋ถ๋ DNS ์ด๋ฆ ๋ชฉ๋ก์ ์ต๋ 3๊ฐ๊น์ง ์ถ๊ฐํฉ๋๋ค. ๋จ์ผ ์ธ์ฆ์๋ก ์ฌ๋ฌ DNS ์ด๋ฆ์ ๋ณดํธํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ํ๋ฆฌ๋ทฐ ๋ฒ์ ์ผ๋ก ์ ๊ณต๋๊ณ
CUSTOMER_MANAGED_CAS_CA
์ธ์คํด์ค์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. enablePasswordPolicy
:true
๋ก ์ค์ ํ๋ฉด ๋น๋ฐ๋ฒํธ ์ ์ฑ ์ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.๋น๋ฐ๋ฒํธ ์ ์ฑ ์ ์ญ์ ํ๋ ค๋ฉด
null
์ ์ฌ์ฉํ์ฌPATCH
์์ฒญ์enablePasswordPolicy
๊ฐ์ผ๋ก ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ค๋ฅธ ๋น๋ฐ๋ฒํธ ์ ์ฑ ๋งค๊ฐ๋ณ์๊ฐ ์ฌ์ค์ ๋ฉ๋๋ค.minLength
: ๋น๋ฐ๋ฒํธ์ ํ์ํ ์ต์ ๋ฌธ์ ์๋ฅผ ์ง์ ํฉ๋๋ค.complexity
: ๋น๋ฐ๋ฒํธ๊ฐ ์๋ฌธ์, ๋๋ฌธ์, ์ซ์, ์์ซ์๊ฐ ์๋ ๋ฌธ์์ ์กฐํฉ์ธ์ง ํ์ธํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์COMPLEXITY_DEFAULT
์ ๋๋ค.reuseInterval
: ์ฌ์ฌ์ฉํ ์ ์๋ ์ด์ ๋น๋ฐ๋ฒํธ์ ์๋ฅผ ์ง์ ํฉ๋๋ค.disallowUsernameSubstring
:true
๋ก ์ค์ ํ๋ฉด ๋น๋ฐ๋ฒํธ์ ์ฌ์ฉ์ ์ด๋ฆ์ ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ํฉ๋๋ค.passwordChangeInterval
: ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ์ต์ ๊ธฐ๊ฐ์ ์ง์ ํฉ๋๋ค. ๊ฐ์ ์ด ๋จ์์ด๋ฉฐ, ์์์ ์๋ 9์๋ฆฌ๊น์ง ์ง์ ๊ฐ๋ฅํ๊ณs
๋ก ๋๋ฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด3.5s
์ ๋๋ค.enableGoogleMlIntegration
: ์ด ํ๋ผ๋ฏธํฐ๊ฐtrue
๋ก ์ค์ ๋๋ฉด Cloud SQL ์ธ์คํด์ค๊ฐ Vertex AI์ ์ฐ๊ฒฐํ์ฌ ์ค์๊ฐ ์์ธก ๋ฐ ํต๊ณ ์์ฒญ์ AI์ ์ ๋ฌํ ์ ์์ต๋๋ค.cloudsql.enable_google_ml_integration
: ์ด ํ๋ผ๋ฏธํฐ๊ฐon
์ผ๋ก ์ค์ ๋๋ฉด Cloud SQL์ด Vertex AI์ ํตํฉ๋ ์ ์์ต๋๋ค.- project-id: ํ๋ก์ ํธ ID
- instance-id: ์ด์ ๋จ๊ณ์์ ์์ฑํ ์ธ์คํด์ค ID
- PROJECT_ID: ํ๋ก์ ํธ ID
- INSTANCE_ID: ์ธ์คํด์ค ID
- REGION: ๋ฆฌ์
- DATABASE_VERSION: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ ์ ์ด๊ฑฐํ ๋ฌธ์์ด(์:
POSTGRES_17
) - PASSWORD: ๋ฃจํธ ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ์ ๋๋ค.
- MACHINE_TYPE :
db-custom-[CPUS]-[MEMORY_MBS]
์ ๊ฐ์ ๋จธ์ (๋ฑ๊ธ) ์ ํ์ ์ด๊ฑฐํ ๋ฌธ์์ด์ ๋๋ค. EDITION_TYPE: Cloud SQL ๋ฒ์
- DATA_CACHE_ENABLED: (์ ํ์ฌํญ)
true
๋ก ์ค์ ํ์ฌ ์ธ์คํด์ค์ ๋ฐ์ดํฐ ์บ์ ์ฌ์ฉ ์ค์ - PRIVATE_NETWORK: ์ด ์ธ์คํด์ค์ ์ฌ์ฉํ๋ ค๋ ๊ฐ์ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋(VPC) ๋คํธ์ํฌ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ๋น๊ณต๊ฐ ์๋น์ค ์ก์ธ์ค๊ฐ ์ด๋ฏธ ๋คํธ์ํฌ์ ๊ตฌ์ฑ๋์ด ์์ด์ผ ํฉ๋๋ค.
- AUTHORIZED_NETWORKS: ๊ณต๊ฐ IP ์ฐ๊ฒฐ์ ๊ฒฝ์ฐ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ์ ์๋ ์น์ธ๋ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ์ ์ง์ ํฉ๋๋ค.
- CA_MODE: ์ธ์คํด์ค์ ์ธ์ฆ ๊ธฐ๊ด ๊ณ์ธต ๊ตฌ์กฐ(
GOOGLE_MANAGED_INTERNAL_CA
๋๋GOOGLE_MANAGED_CAS_CA
)๋ฅผ ์ง์ ํฉ๋๋ค.serverCaMode
๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ ๊ตฌ์ฑ์GOOGLE_MANAGED_INTERNAL_CA
์ ๋๋ค. ์ด ๊ธฐ๋ฅ์ ํ๋ฆฌ๋ทฐ ๋ฒ์ ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. - DNS_NAMES: Cloud SQL ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ ์ผํ๋ก ๊ตฌ๋ถ๋ DNS ์ด๋ฆ ๋ชฉ๋ก์ ์ต๋ 3๊ฐ๊น์ง ์ถ๊ฐํฉ๋๋ค. ๋จ์ผ ์ธ์ฆ์๋ก ์ฌ๋ฌ DNS ์ด๋ฆ์ ๋ณดํธํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ํ๋ฆฌ๋ทฐ ๋ฒ์ ์ผ๋ก ์ ๊ณต๋๊ณ
CUSTOMER_MANAGED_CAS_CA
์ธ์คํด์ค์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. enablePasswordPolicy
:true
๋ก ์ค์ ํ๋ฉด ๋น๋ฐ๋ฒํธ ์ ์ฑ ์ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.๋น๋ฐ๋ฒํธ ์ ์ฑ ์ ์ญ์ ํ๋ ค๋ฉด
null
์ ์ฌ์ฉํ์ฌPATCH
์์ฒญ์enablePasswordPolicy
๊ฐ์ผ๋ก ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ค๋ฅธ ๋น๋ฐ๋ฒํธ ์ ์ฑ ๋งค๊ฐ๋ณ์๊ฐ ์ฌ์ค์ ๋ฉ๋๋ค.minLength
: ๋น๋ฐ๋ฒํธ์ ํ์ํ ์ต์ ๋ฌธ์ ์๋ฅผ ์ง์ ํฉ๋๋ค.complexity
: ๋น๋ฐ๋ฒํธ๊ฐ ์๋ฌธ์, ๋๋ฌธ์, ์ซ์, ์์ซ์๊ฐ ์๋ ๋ฌธ์์ ์กฐํฉ์ธ์ง ํ์ธํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์COMPLEXITY_DEFAULT
์ ๋๋ค.reuseInterval
: ์ฌ์ฌ์ฉํ ์ ์๋ ์ด์ ๋น๋ฐ๋ฒํธ์ ์๋ฅผ ์ง์ ํฉ๋๋ค.disallowUsernameSubstring
:true
๋ก ์ค์ ํ๋ฉด ๋น๋ฐ๋ฒํธ์ ์ฌ์ฉ์ ์ด๋ฆ์ ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ํฉ๋๋ค.passwordChangeInterval
: ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ์ต์ ๊ธฐ๊ฐ์ ์ง์ ํฉ๋๋ค. ๊ฐ์ ์ด ๋จ์์ด๋ฉฐ, ์์์ ์๋ 9์๋ฆฌ๊น์ง ์ง์ ๊ฐ๋ฅํ๊ณs
๋ก ๋๋ฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด3.5s
์ ๋๋ค.enableGoogleMlIntegration
: ์ด ํ๋ผ๋ฏธํฐ๊ฐtrue
๋ก ์ค์ ๋๋ฉด Cloud SQL ์ธ์คํด์ค๊ฐ Vertex AI์ ์ฐ๊ฒฐํ์ฌ ์ค์๊ฐ ์์ธก ๋ฐ ํต๊ณ ์์ฒญ์ AI์ ์ ๋ฌํ ์ ์์ต๋๋ค.cloudsql.enable_google_ml_integration
: ์ด ํ๋ผ๋ฏธํฐ๊ฐon
์ผ๋ก ์ค์ ๋๋ฉด Cloud SQL์ด Vertex AI์ ํตํฉ๋ ์ ์์ต๋๋ค.- project-id: ํ๋ก์ ํธ ID
- instance-id: ์ด์ ๋จ๊ณ์์ ์์ฑํ ์ธ์คํด์ค ID
- ๋น๊ณต๊ฐ ์๋น์ค ์ฐ๊ฒฐ์ ํ ๋น๋ IP ๋ฒ์์ ํฌ๊ธฐ๊ฐ /24๋ณด๋ค ์์ต๋๋ค.
- ๋น๊ณต๊ฐ ์๋น์ค ์ฐ๊ฒฐ์ ํ ๋น๋ IP ๋ฒ์์ ํฌ๊ธฐ๊ฐ Cloud SQL ์ธ์คํด์ค ์์ ๋นํด ๋๋ฌด ์์ต๋๋ค.
- ์ธ์คํด์ค๊ฐ ์ฌ๋ฌ ๋ฆฌ์ ์์ ์์ฑ๋๋ ๊ฒฝ์ฐ ํ ๋น๋ IP ๋ฒ์์ ํฌ๊ธฐ ์๊ตฌ์ฌํญ์ด ๋ ์ปค์ง๋๋ค. ํ ๋น๋ ๋ฒ์ ํฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์์ผ๋ ์นด๋ ๋ฌธ์๊ฐ ์์ต๋๋ค.
- ํํ ์ ์ด ์์ต๋๋ค.
- RFC 1034 ์ฌ์์ ์ถฉ์กฑํฉ๋๋ค.
- ์ธ์คํด์ค์ PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ
- ์ธ์คํด์ค์ PostgreSQL ์ฌ์ฉ์ ๋ง๋ค๊ธฐ
- ์ธ์คํด์ค ์ก์ธ์ค ๋ณด์ ๋ฐ ์ ์ด
- ์ธ์คํด์ค์ PostgreSQL ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
- ์ธ์คํด์ค ์ค์ ์์๋ณด๊ธฐ
PostgreSQL ์ธ์คํด์ค ๋ง๋ค๊ธฐ
์ฝ์
๋น๋ฐ๋ฒํธ๋ฅผ ์ผ๋ฐ ํ ์คํธ๋ก ๋ณด๋ ค๋ฉด ๋น๋ฐ๋ฒํธ ํ์ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.
๋น๋ฐ๋ฒํธ๋ฅผ ์ง์ ์ ๋ ฅํ๊ฑฐ๋ Cloud SQL์์ ์๋์ผ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ๋ง๋ค๋๋ก ์์ฑ์ ํด๋ฆญํ ์ ์์ต๋๋ค.
gcloud
gcloud CLI ์ค์น ๋ฐ ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ gcloud CLI ์ค์น๋ฅผ ์ฐธ์กฐํ์ธ์. Cloud Shell ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ Cloud Shell ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Cloud SQL Enterprise Plus ๋ฒ์ ์ธ์คํด์ค์ ๊ฒฝ์ฐ:
gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --region=REGION \ --tier=TIER \ --edition=ENTERPRISE_PLUS
Cloud SQL Enterprise ๋ฒ์ ์ธ์คํด์ค์ ๊ฒฝ์ฐ:
gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --region=REGION \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE \ --edition=ENTERPRISE
db-f1-micro
๋๋ db-g1-small
์ ์ ํํ ๊ฒฝ์ฐ --tier
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
gcloud sql instances create INSTANCE_NAME \ --tier=API_TIER_STRING \ --region=REGION
vCPU ๋ฐ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ ๊ฐ์๋ ๋ค์๊ณผ ๊ฐ์ ์ ํ์ด ์ ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ๋ช ๋ น์ด๋ vCPU๊ฐ 2๊ฐ์ด๊ณ ๋ฉ๋ชจ๋ฆฌ๊ฐ 7,680MB์ธ Cloud SQL Enterprise ๋ฒ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ญ๋๋ค.
gcloud sql instances create myinstance \ --database-version=POSTGRES_16 \ --cpu=2 \ --memory=7680MB \ --region=us-central1
๋ค์ ๋ช ๋ น์ด๋ ์ฝ์ด 4๊ฐ๊ฐ ์๋ Cloud SQL Enterprise Plus ๋ฒ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ญ๋๋ค.
gcloud sql instances create myinstance \ --database-version=POSTGRES_16 \ --tier=db-perf-optimized-N-4 \ --edition=ENTERPRISE_PLUS \ --region=us-central1
--cpu
๋ฐ --memory
์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ปค์คํ
์ธ์คํด์ค ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์.
REGION์ ๊ธฐ๋ณธ๊ฐ์ us-central1
์
๋๋ค.
์ธ์คํด์ค ์ด๋ฆ์ ์ธ๋ถ์ ๊ณต๊ฐ๋๋ฏ๋ก ์ธ์คํด์ค ์ด๋ฆ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ ๊ฐ์ธ ์๋ณ ์ ๋ณด๋ฅผ ํฌํจํ์ง ๋ง์ธ์.
์ธ์คํด์ค ์ด๋ฆ์ ํ๋ก์ ํธ ID๋ฅผ ํฌํจํ์ง ์์๋ ๋ฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์๋์ผ๋ก ํฌํจ๋ฉ๋๋ค(์: ๋ก๊ทธ ํ์ผ์์).
๊ณ ๊ฐ์ฉ์ฑ ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ --zone
๋งค๊ฐ๋ณ์์ --secondary-zone
๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์์ญ๊ณผ ๋ณด์กฐ ์์ญ์ ๋ชจ๋ ์ง์ ํ ์ ์์ต๋๋ค. ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ์์ ํ๋ ๋์ ๋ณด์กฐ ์์ญ์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ์๋ ๋ค์ ์กฐ๊ฑด์ด ์ ์ฉ๋ฉ๋๋ค.
ํ๋ผ๋ฏธํฐ๋ฅผ ๋ ์ถ๊ฐํ์ฌ ๋ค๋ฅธ ์ธ์คํด์ค ์ค์ ์ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
์ค์ | ๋งค๊ฐ๋ณ์ | ์ฐธ๊ณ |
---|---|---|
ํ์ ๋งค๊ฐ๋ณ์ | ||
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ | --database-version |
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ ์ Cloud SQL ๋ฒ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. |
์ง์ญ | --region |
์ ํจํ ๊ฐ ์์๋ณด๊ธฐ |
๋น๋ฐ๋ฒํธ ์ ์ฑ ์ค์ | ||
๋น๋ฐ๋ฒํธ ์ ์ฑ ์ฌ์ฉ ์ค์ | --enable-password-policy |
๋น๋ฐ๋ฒํธ ์ ์ฑ
์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋น๋ฐ๋ฒํธ ์ ์ฑ
์ ์ฌ์ฉ ์ค์ง๋์ด ์์ต๋๋ค. --clear-password-policy ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ ์ค์งํ๋ฉด ๋ค๋ฅธ ๋น๋ฐ๋ฒํธ ์ ์ฑ
ํ๋ผ๋ฏธํฐ๊ฐ ์ฌ์ค์ ๋ฉ๋๋ค.
|
์ต์ ๊ธธ์ด | --password-policy-min-length |
๋น๋ฐ๋ฒํธ์ ํ์ํ ์ต์ ๋ฌธ์ ์๋ฅผ ์ง์ ํฉ๋๋ค. |
๋น๋ฐ๋ฒํธ ๋ณต์ก์ฑ | --password-policy-complexity |
๋น๋ฐ๋ฒํธ ๋ณต์ก์ฑ ๊ฒ์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ฐ๋ฒํธ์ ์๋ฌธ์, ๋๋ฌธ์, ์ซ์, ์์ซ์๊ฐ ์๋ ๋ฌธ์ ๋ฑ ๊ฐ ๋ฌธ์ ์ ํ ์ค ํ๋๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ๊ฐ์ COMPLEXITY_DEFAULT ๋ก ์ค์ ํฉ๋๋ค. |
๋น๋ฐ๋ฒํธ ์ฌ์ฌ์ฉ ์ ํ | --password-policy-reuse-interval |
์ฌ์ฌ์ฉํ ์ ์๋ ์ด์ ๋น๋ฐ๋ฒํธ์ ์๋ฅผ ์ง์ ํฉ๋๋ค. |
์ฌ์ฉ์ ์ด๋ฆ ํ์ฉ ์ํจ | --password-policy-disallow-username-substring |
๋น๋ฐ๋ฒํธ์์ ์ฌ์ฉ์ ์ด๋ฆ์ ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ํฉ๋๋ค. ๊ฒ์ฌ๋ฅผ ์ฌ์ฉ ์ค์งํ๋ ค๋ฉด --no-password-policy-disallow-username-substring ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. |
๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ๊ฐ๊ฒฉ ์ค์ | --password-policy-password-change-interval |
๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ์ต์ ๊ธฐ๊ฐ์ ์ง์ ํฉ๋๋ค(์: 2๋ถ์ ๊ฒฝ์ฐ 2m). |
์ฐ๊ฒฐ | ||
๋น๊ณต๊ฐ IP | --network
|
--network : ์ด ์ธ์คํด์ค์ ์ฌ์ฉํ VPC ๋คํธ์ํฌ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ๋น๊ณต๊ฐ ์๋น์ค ์ก์ธ์ค๊ฐ ์ด๋ฏธ ๋คํธ์ํฌ์ ๊ตฌ์ฑ๋์ด ์์ด์ผ ํฉ๋๋ค. ๋ฒ ํ ๋ช
๋ น์ด(gcloud beta sql instances create )์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ๋งค๊ฐ๋ณ์๋ ๋ค์ ๊ฒฝ์ฐ์๋ง ์ ํจํฉ๋๋ค. |
๊ณต๊ฐ IP | --authorized-networks |
๊ณต๊ฐ IP ์ฐ๊ฒฐ์ ๊ฒฝ์ฐ ์น์ธ๋ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ง ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ |
SSL ์ํ |
|
|
์๋ฒ CA ๋ชจ๋ | --server-ca-mode |
|
๋จธ์ ์ ํ ๋ฐ ์คํ ๋ฆฌ์ง | ||
๋จธ์ ์ ํ | --tier |
๊ณต์ ์ฝ์ด ์ธ์คํด์ค(db-f1-micro ๋๋db-g1-small )๋ฅผ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ปค์คํ
์ธ์คํด์ค ๊ตฌ์ฑ์ ๊ฒฝ์ฐ ๋์ --cpu ๋๋ --memory ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ปค์คํ
์ธ์คํด์ค ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์.
|
์คํ ๋ฆฌ์ง ์ ํ | --storage-type |
์ธ์คํด์ค ์คํ ๋ฆฌ์ง ์ ํ(SSD ๋๋ HDD)์ ๊ฒฐ์ ํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ |
์คํ ๋ฆฌ์ง ์ฉ๋ | --storage-size |
์ธ์คํด์ค์ ์ ๊ณต๋ ์คํ ๋ฆฌ์ง ์ฉ๋(GB)์ ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ |
์ ์ฅ์ฉ๋ ์๋ ์ฆ๊ฐ | --storage-auto-increase |
์ธ์คํด์ค์ ์ฌ์ ๊ณต๊ฐ์ด ๋ถ์กฑํ ๋ Cloud SQL์์ ์๋์ผ๋ก ์ ์ฅ์ฉ๋์ ์ ๊ณตํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ |
์คํ ๋ฆฌ์ง ์๋ ์ฆ๊ฐ ํ๋ | --storage-auto-increase-limit |
Cloud SQL์ด ์๋์ผ๋ก ์คํ ๋ฆฌ์ง๋ฅผ ๋๋ฆด ์ ์๋ ์ ๋๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
๋ฒ ํ ๋ช
๋ น์ด(gcloud beta sql instances create )์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ธํ ์์๋ณด๊ธฐ
|
๋ฐ์ดํฐ ์บ์(์ ํ์ฌํญ) | --enable-data-cache |
์ธ์คํด์ค์ ๋ฐ์ดํฐ ์บ์๋ฅผ ์ฌ์ฉ ์ค์ ๋๋ ๋นํ์ฑํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฐ์ดํฐ ์บ์๋ฅผ ์ฐธ๊ณ ํ์ธ์. |
์๋ ๋ฐฑ์ ๋ฐ ๊ณ ๊ฐ์ฉ์ฑ | ||
๊ณ ๊ฐ์ฉ์ฑ | --availability-type |
๊ณ ๊ฐ์ฉ์ฑ ์ธ์คํด์ค์ ๊ฒฝ์ฐ REGIONAL ๋ก ์ค์ ํฉ๋๋ค.
์์ธํ ์์๋ณด๊ธฐ
|
๋ณด์กฐ ์์ญ | --secondary-zone |
๊ณ ๊ฐ์ฉ์ฑ ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ --zone ๋ฐ --secondary-zone parameters ๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์์ญ๊ณผ ๋ณด์กฐ ์์ญ์ ๋ชจ๋ ์ง์ ํ ์ ์์ต๋๋ค. ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ์์ ํ๋ ๋์ ๋ณด์กฐ ์์ญ์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ์๋ ๋ค์ ์ ํ ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
๊ธฐ๋ณธ ์์ญ๊ณผ ๋ณด์กฐ ์์ญ์ ์ง์ ํ ๊ฒฝ์ฐ ์๋ก ๋ณ๋์ ์์ญ์ด์ด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ ์์ญ๊ณผ ๋ณด์กฐ ์์ญ์ ์ง์ ํ ๊ฒฝ์ฐ ๋ ์์ญ์ด ๊ฐ์ ๋ฆฌ์ ์ ์์ด์ผ ํฉ๋๋ค. |
์๋ ๋ฐฑ์ | --backup-start-time |
๋ฐฑ์ ์ ์์ํ ์๊ฐ ์์ธํ ์์๋ณด๊ธฐ |
์๋ ๋ฐฑ์ ๋ณด๊ด ์ค์ | --retained-backups-count |
๋ณด๊ดํ ์๋ ๋ฐฑ์ ์์ ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ |
๋ฐ์ด๋๋ฆฌ ๋ก๊น ๋ณด๊ด ์ค์ | --retained-transaction-log-days |
PITR(point-in-time recovery)์ ๋ํ ๋ฏธ๋ฆฌ ์ฐ๊ธฐ ๋ก๊ทธ๋ฅผ ๋ณด๊ดํ ์ผ์์ ๋๋ค. ์ฌ๊ธฐ์ ์์ธํ ์์๋ณด์ธ์. |
point-in-time recovery | --enable-point-in-time-recovery |
point-in-time recovery ๋ฐ ๋ฏธ๋ฆฌ ์ฐ๊ธฐ ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ์์ธํ ์์๋ณด๊ธฐ |
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋๊ทธ ์ถ๊ฐ | ||
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋๊ทธ | --database-flags |
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ค์ ๊ณผ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋๊ทธ ์์ธํ ์์๋ณด๊ธฐ |
์ ์ง๋ณด์ ์ผ์ | ||
์ ์ง๋ณด์ ๊ธฐ๊ฐ | --maintenance-window-day ,
--maintenance-window-hour |
Cloud SQL์ด ์ธ์คํด์ค์ ๋ฐฉํด๊ฐ ๋๋ ์ ์ง๋ณด์ ์์ ์ ์ํํ ๊ธฐ๊ฐ(1์๊ฐ)์ ์ค์ ํฉ๋๋ค. ์ด ๊ธฐ๊ฐ์ ์ค์ ํ์ง ์์ผ๋ฉด ์๋น์ค ์ค๋จ์ ์ด๋ํ๋ ์ ์ง๋ณด์ ์์ ์ด ์ธ์ ๋ ์ง ๋ฐ์ํ ์ ์์ต๋๋ค. ์์ธํ ์์๋ณด๊ธฐ |
์ ์ง๋ณด์ ์์ | --maintenance-release-channel |
๋์ผํ ํ๋ก์ ํธ์ ๋ค๋ฅธ ์ธ์คํด์ค์ ๋น๊ตํ์ฌ ์ ํธํ๋ ์
๋ฐ์ดํธ ์๊ฐ์ ์ค์ ํฉ๋๋ค. ์ด์ ์
๋ฐ์ดํธ์๋ preview ๋ฅผ ์ฌ์ฉํ๊ณ ์ดํ ์
๋ฐ์ดํธ์๋ production ์ ์ฌ์ฉํฉ๋๋ค.
์์ธํ ์์๋ณด๊ธฐ
|
Vertex AI์์ ํตํฉ | ||
--enable-google-ml-integration |
Cloud SQL ์ธ์คํด์ค๊ฐ Vertex AI์ ์ฐ๊ฒฐํ์ฌ ์ค์๊ฐ ์์ธก ๋ฐ ํต๊ณ ์์ฒญ์ AI์ ์ ๋ฌํ ์ ์์ต๋๋ค. | |
--database-flags cloudsql.enable_google_ml_integration=on |
์ด ํ๋๊ทธ๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ฉด Cloud SQL์ Vertex AI์ ํตํฉํ ์ ์์ต๋๋ค. | |
์ปค์คํ SAN | ||
์ปค์คํ ์ฃผ์ฒด ๋์ฒด ์ด๋ฆ(SAN) ์ถ๊ฐ | --custom-subject-alternative-names=DNS_NAMES |
IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ ๋์ ์ปค์คํ DNS ์ด๋ฆ์ ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ค๋ฉด ์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋ ์ปค์คํ ์ฃผ์ฒด ๋์ฒด ์ด๋ฆ(SAN) ์ค์ ์ ๊ตฌ์ฑํฉ๋๋ค. ์ปค์คํ SAN ์ค์ ์ ์ฝ์ ํ ์ปค์คํ DNS ์ด๋ฆ์ด ์ธ์คํด์ค ์๋ฒ ์ธ์ฆ์์ SAN ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํธ์คํธ ์ด๋ฆ ๊ฒ์ฆ๊ณผ ํจ๊ป ์ปค์คํ DNS ์ด๋ฆ์ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ปค์คํ DNS ์ด๋ฆ์ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ DNS ์ด๋ฆ๊ณผ IP ์ฃผ์ ์ฌ์ด์ ๋งคํ์ ์ค์ ํด์ผ ํฉ๋๋ค. ์ด๋ฅผ DNS ๋ณํ์ด๋ผ๊ณ ํฉ๋๋ค. ์ปค์คํ SAN ์ค์ ์ ์ผํ๋ก ๊ตฌ๋ถ๋ ์ปค์คํ DNS ์ด๋ฆ ๋ชฉ๋ก์ ์ต๋ 3๊ฐ๊น์ง ์ถ๊ฐํ ์ ์์ต๋๋ค. |
Terraform
์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด Terraform ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ณ๊ฒฝ์ฌํญ ์ ์ฉ
ํ๋ก์ ํธ์ Terraform ๊ตฌ์ฑ์ ์ ์ฉํ๋ ค๋ฉด Google Cloud ๋ค์ ์น์ ์ ๋จ๊ณ๋ฅผ ์๋ฃํ์ธ์.
Cloud Shell ์ค๋น
๋๋ ํฐ๋ฆฌ ์ค๋น
๊ฐ Terraform ๊ตฌ์ฑ ํ์ผ์๋ ์์ฒด ๋๋ ํฐ๋ฆฌ(๋ฃจํธ ๋ชจ๋์ด๋ผ๊ณ ๋ ํจ)๊ฐ ์์ด์ผ ํฉ๋๋ค.
๋ณ๊ฒฝ์ฌํญ ์ ์ฉ
๋ณ๊ฒฝ์ฌํญ ์ญ์
๋ณ๊ฒฝ์ฌํญ์ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
REST v1
์ธ์คํด์ค ๋ง๋ค๊ธฐ
์ด ์์์์๋ ์ธ์คํด์ค๋ฅผ ๋ง๋ญ๋๋ค. ๋ฐฑ์ ๋ฐ ๋ฐ์ด๋๋ฆฌ ๋ก๊น ๊ณผ ๊ฐ์ ์ผ๋ถ ์ ํ์ ๋งค๊ฐ๋ณ์๋ ํฌํจ๋ฉ๋๋ค. ์ด ํธ์ถ์ ์ ์ฒด ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก์ ์ธ์คํด์ค ์ฝ์ ์ ์ฐธ์กฐํ์ธ์. ๋ฆฌ์ ์ ๋ฐ๋ฅธ ์ ํจ๊ฐ์ ํฌํจํ ์ธ์คํด์ค ์ค์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ธ์คํด์ค ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์ธ์คํด์ค ID๋ ์ธ๋ถ์ ๊ณต๊ฐ๋๋ฏ๋ก ์ธ์คํด์ค ID์ ๋ฏผ๊ฐํ ์ ๋ณด๋ ๊ฐ์ธ ์๋ณ ์ ๋ณด๋ฅผ ํฌํจํ์ง ๋ง์ธ์.
์ธ์คํด์ค ์ด๋ฆ์ ํ๋ก์ ํธ ID๋ฅผ ํฌํจํ์ง ์์๋ ๋ฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์๋์ผ๋ก ํฌํจ๋ฉ๋๋ค(์: ๋ก๊ทธ ํ์ผ์์).
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋ ๋น๋ฐ๋ฒํธ ์ ์ฑ ์ ์ค์ ํ๋ ค๋ฉด ์์ฒญ์ passwordValidationPolicy ๊ฐ์ฒด๋ฅผ ํฌํจํฉ๋๋ค. ํ์์ ๋ฐ๋ผ ๋ค์ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.
Vertex AI์ ํตํฉ๋๋๋ก ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด ์์ฒญ์ enableGoogleMlIntegration ๊ฐ์ฒด๋ฅผ ํฌํจํฉ๋๋ค. ์ด ํตํฉ์ ํตํด Vertex AI์์ ํธ์คํ ๋๋ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ(LLM)์ PostgreSQL์ฉ Cloud SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉํ ์ ์์ต๋๋ค.
ํ์์ ๋ฐ๋ผ ๋ค์ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" "databaseFlags": [ { "name": "cloudsql.enable_google_ml_integration", "value": "on" | "off" } ] "dataCacheConfig": { "dataCacheEnabled": DATA_CACHE_ENABLED }, "backupConfiguration": { "enabled": true }, "passwordValidationPolicy": { "enablePasswordPolicy": true "minLength": "MIN_LENGTH", "complexity": COMPLEXITY_DEFAULT, "reuseInterval": "REUSE_INTERVAL", "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING", "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL" } "ipConfiguration": { "privateNetwork": "PRIVATE_NETWORK", "authorizedNetworks": [AUTHORIZED_NETWORKS], "ipv4Enabled": false, "enablePrivatePathForGoogleCloudServices": true, "serverCaMode": "CA_MODE", "customSubjectAlternativeNames": "DNS_NAMES" } } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2019-09-25T22:19:33.735Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
์๋ต์ ์ฅ๊ธฐ ์คํ ์์ ์ด๋ฏ๋ก ์๋ฃํ๋ ๋ฐ ๋ช ๋ถ ์ ๋ ์์๋ ์ ์์ต๋๋ค.
IPv4 ์ฃผ์ ๊ฒ์
์๋ก์ด ์ธ์คํด์ค์ ์๋์ผ๋ก ํ ๋น๋ IPv4 ์ฃผ์๋ฅผ ๊ฒ์ํฉ๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_8_0_18", "settings": { "authorizedGaeApplications": [], "tier": "db-f1-micro", "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "ipv4Enabled": true }, "locationPreference": { "zone": "us-west1-a", "kind": "sql#locationPreference" }, "dataDiskType": "PD_SSD", "backupConfiguration": { "startTime": "18:00", "kind": "sql#backupConfiguration", "enabled": true, "binaryLogEnabled": true }, "settingsVersion": "1", "storageAutoResizeLimit": "0", "storageAutoResize": true, "dataDiskSizeGb": "10" }, "etag": "--redacted--", "ipAddresses": [ { "type": "PRIMARY", "ipAddress": "10.0.0.1" } ], "serverCaCert": { ... }, "instanceType": "CLOUD_SQL_INSTANCE", "project": "project-id", "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com", "backendType": "SECOND_GEN", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "connectionName": "project-id:region:instance-id", "name": "instance-id", "region": "us-west1", "gceZone": "us-west1-a" }
์๋ต์์ ipAddress
ํ๋๋ฅผ ์ฐพ์ต๋๋ค.
REST v1beta4
์ธ์คํด์ค ๋ง๋ค๊ธฐ
์ด ์์์์๋ ์ธ์คํด์ค๋ฅผ ๋ง๋ญ๋๋ค. ๋ฐฑ์ ๋ฐ ๋ฐ์ด๋๋ฆฌ ๋ก๊น ๊ณผ ๊ฐ์ ์ผ๋ถ ์ ํ์ ๋งค๊ฐ๋ณ์๋ ํฌํจ๋ฉ๋๋ค. ์ด ํธ์ถ์ ์ ์ฒด ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก์ instances:insert ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์. ๋ฆฌ์ ์ ๋ฐ๋ฅธ ์ ํจ๊ฐ์ ํฌํจํ ์ธ์คํด์ค ์ค์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ธ์คํด์ค ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์ธ์คํด์ค ID๋ ์ธ๋ถ์ ๊ณต๊ฐ๋๋ฏ๋ก ์ธ์คํด์ค ID์ ๋ฏผ๊ฐํ ์ ๋ณด๋ ๊ฐ์ธ ์๋ณ ์ ๋ณด๋ฅผ ํฌํจํ์ง ๋ง์ธ์.
์ธ์คํด์ค ์ด๋ฆ์ ํ๋ก์ ํธ ID๋ฅผ ํฌํจํ์ง ์์๋ ๋ฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์๋์ผ๋ก ํฌํจ๋ฉ๋๋ค(์: ๋ก๊ทธ ํ์ผ์์).
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋ ๋น๋ฐ๋ฒํธ ์ ์ฑ ์ ์ค์ ํ๋ ค๋ฉด ์์ฒญ์ passwordValidationPolicy ๊ฐ์ฒด๋ฅผ ํฌํจํฉ๋๋ค. ํ์์ ๋ฐ๋ผ ๋ค์ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.
Vertex AI์ ํตํฉ๋๋๋ก ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด ์์ฒญ์ enableGoogleMlIntegration ๊ฐ์ฒด๋ฅผ ํฌํจํฉ๋๋ค. ์ด ํตํฉ์ ํตํด Vertex AI์์ ํธ์คํ ๋๋ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ(LLM)์ PostgreSQL์ฉ Cloud SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉํ ์ ์์ต๋๋ค.
ํ์์ ๋ฐ๋ผ ๋ค์ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" "databaseFlags": [ { "name": "cloudsql.enable_google_ml_integration", "value": "on" | "off" } ] "dataCacheConfig": { "dataCacheEnabled": DATA_CACHE_ENABLED }, "backupConfiguration": { "enabled": true }, "passwordValidationPolicy": { "enablePasswordPolicy": true "minLength": "MIN_LENGTH", "complexity": COMPLEXITY_DEFAULT, "reuseInterval": "REUSE_INTERVAL", "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING", "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL" } "ipConfiguration": { "privateNetwork": "PRIVATE_NETWORK", "authorizedNetworks": [AUTHORIZED_NETWORKS], "ipv4Enabled": false, "enablePrivatePathForGoogleCloudServices": true, "serverCaMode": "CA_MODE", "customSubjectAlternativeNames": "DNS_NAMES" } } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ 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-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
์๋ต์ ์ฅ๊ธฐ ์คํ ์์ ์ด๋ฏ๋ก ์๋ฃํ๋ ๋ฐ ๋ช ๋ถ ์ ๋ ์์๋ ์ ์์ต๋๋ค.
IPv4 ์ฃผ์ ๊ฒ์
์๋ก์ด ์ธ์คํด์ค์ ์๋์ผ๋ก ํ ๋น๋ IPv4 ์ฃผ์๋ฅผ ๊ฒ์ํฉ๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_8_0_18", "settings": { "authorizedGaeApplications": [], "tier": "db-f1-micro", "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "ipv4Enabled": true }, "locationPreference": { "zone": "us-west1-a", "kind": "sql#locationPreference" }, "dataDiskType": "PD_SSD", "backupConfiguration": { "startTime": "18:00", "kind": "sql#backupConfiguration", "enabled": true, "binaryLogEnabled": true }, "settingsVersion": "1", "storageAutoResizeLimit": "0", "storageAutoResize": true, "dataDiskSizeGb": "10" }, "etag": "--redacted--", "ipAddresses": [ { "type": "PRIMARY", "ipAddress": "10.0.0.1" } ], "serverCaCert": { ... }, "instanceType": "CLOUD_SQL_INSTANCE", "project": "project-id", "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com", "backendType": "SECOND_GEN", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "connectionName": "project-id:region:instance-id", "name": "instance-id", "region": "us-west1", "gceZone": "us-west1-a" }
์๋ต์์ ipAddress
ํ๋๋ฅผ ์ฐพ์ต๋๋ค.
์ฐ๊ธฐ ์๋ํฌ์ธํธ ์์ฑ
์ฐ๊ธฐ ์๋ํฌ์ธํธ๋ ํ์ฌ ๊ธฐ๋ณธ ์ธ์คํด์ค์ IP ์ฃผ์๋ก ์๋ ํ์ธ๋๋ ์ ์ญ ๋๋ฉ์ธ ์ด๋ฆ ์๋น์ค(DNS) ์ด๋ฆ์ ๋๋ค. ์ด ์๋ํฌ์ธํธ๋ ๋ณต์ ๋ณธ ์ฅ์ ์กฐ์น ๋๋ ์ ํ ์์ ์ ๋ค์ด์ค๋ ์ฐ๊ฒฐ์ ์๋ก์ด ๊ธฐ๋ณธ ์ธ์คํด์ค๋ก ์๋ ๋ฆฌ๋๋ ์ ํฉ๋๋ค. IP ์ฃผ์ ๋์ SQL ์ฐ๊ฒฐ ๋ฌธ์์ด์์ ์ฐ๊ธฐ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฐ๊ธฐ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์ ์๋น์ค ์ค๋จ์ด ๋ฐ์ํ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฐ๊ฒฐ์ ๋ณ๊ฒฝํ์ง ์์๋ ๋ฉ๋๋ค.
์ฐ๊ธฐ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฐ๊ธฐ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ฐ๊ฒฐ์ ์ฐธ์กฐํ์ธ์.
์ปค์คํ ์ธ์คํด์ค ๊ตฌ์ฑ
Cloud SQL ์ธ์คํด์ค์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ์ฝ์ด๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ๋จธ์ ์ ํ์ ๋จธ์ ์๋ฆฌ์ฆ์ ์ํ๋ฉฐ ๋จธ์ ์๋ฆฌ์ฆ ๊ฐ์ฉ์ฑ์ Cloud SQL ๋ฒ์ ์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค.
Cloud SQL Enterprise Plus ๋ฒ์ ์ธ์คํด์ค์ ๊ฒฝ์ฐ Cloud SQL์ N2
๋ฐ C4A
๋จธ์ ์๋ฆฌ์ฆ์์ ์ธ์คํด์ค์ ์ฌ์ ์ ์๋ ๋จธ์ ์ ํ์ ์ ๊ณตํฉ๋๋ค.
Cloud SQL Enterprise ๋ฒ์ ์ธ์คํด์ค์ ๊ฒฝ์ฐ Cloud SQL์ ์ฌ์ ์ ์๋ ๋จธ์ ์ ํ๊ณผ ์ปค์คํ ๋จธ์ ์ ํ์ ์ ๊ณตํฉ๋๋ค.
์จ๋ผ์ธ ํธ๋์ญ์ ์ฒ๋ฆฌ(OLTP)์ ๊ฐ์ด ์ค์๊ฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ธ์คํด์ค์ ์ ์ฒด ์์ ์ธํธ๋ฅผ ํฌํจํ ๋งํผ ์ถฉ๋ถํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ์ฌํญ์ ์ํฅ์ ์ค ์ ์๋ ๋ค๋ฅธ ์์ธ(์: ํ์ฑ ์ฐ๊ฒฐ ์ ๋ฐ ๋ด๋ถ ์ค๋ฒํค๋ ํ๋ก์ธ์ค)๋ ์์ต๋๋ค. ํ๋ก๋์ ํ๊ฒฝ์์ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ๋ถํ ํ ์คํธ๋ฅผ ์ํํฉ๋๋ค.
์ธ์คํด์ค๋ฅผ ๊ตฌ์ฑํ ๋ ๋์ฆ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ์ถฉ๋ถํ ๋ฉ๋ชจ๋ฆฌ์ vCPU๋ฅผ ์ ํํ๊ณ ์๊ตฌ์ฌํญ์ด ์ฆ๊ฐํ๋ฉด ์ธ์คํด์ค๋ฅผ ์์ง ํ์ฅํฉ๋๋ค. vCPU๊ฐ ๋ถ์กฑํ ๋จธ์ ๊ตฌ์ฑ์๋ SLA๊ฐ ์ ์ฉ๋์ง ์์ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ด์ ๊ฐ์ด๋๋ผ์ธ์ ์ฐธ์กฐํ์ธ์.
Cloud SQL ์ธ์คํด์ค์ ์ฌ์ฉํ ์ ์๋ ๋จธ์ ์ ํ๊ณผ ๋จธ์ ์๋ฆฌ์ฆ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋จธ์ ์๋ฆฌ์ฆ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฌธ์ ํด๊ฒฐ
๋ฌธ์ | ๋ฌธ์ ํด๊ฒฐ |
---|---|
์ค๋ฅ ๋ฉ์์ง: Failed to create subnetwork. Couldn't
find free blocks in allocated IP ranges. Please allocate new ranges for
this service provider . |
ํ ๋น๋ IP ๋ฒ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฃผ์๊ฐ ๋ ์ด์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์๋๋ฆฌ์ค๊ฐ ์์ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๊ธฐ์กด ํ ๋น๋ IP ๋ฒ์๋ฅผ ํ์ฅํ๊ฑฐ๋ ์ถ๊ฐ IP ๋ฒ์๋ฅผ ๋น๊ณต๊ฐ ์๋น์ค ์ฐ๊ฒฐ์ ํ ๋นํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ IP ์ฃผ์ ๋ฒ์ ํ ๋น์ ์ฐธ์กฐํ์ธ์. Cloud SQL ์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋ ์ ๋ฒ์๋ฅผ ํ ๋นํ ๊ฒฝ์ฐ ํ ๋น์ด ๊ธฐ์กด ํ ๋น๊ณผ ๊ฒน์น์ง ์๋๋ก ํฉ๋๋ค. ์ IP ๋ฒ์๋ฅผ ๋ง๋ ํ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ VPC ํผ์ด๋ง์ ์ ๋ฐ์ดํธํฉ๋๋ค. gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID \ --force ๊ธฐ์กด ํ ๋น์ ํ์ฅํ๋ ๊ฒฝ์ฐ ํ ๋น ๋ฒ์๋ฅผ ๋๋ฆฌ๊ธฐ๋ง ํ๊ณ ์ค์ด์ง ์๋๋ก ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๋ ํ ๋น์ด 10.0.10.0/24์ธ ๊ฒฝ์ฐ ์ ํ ๋น์ ์ต์ 10.0.10.0/23์ผ๋ก ๋ง๋ญ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก /24 ํ ๋น์์ ์์ํ๋ ๊ฒฝ์ฐ ๊ฐ ์กฐ๊ฑด(์ถ๊ฐ ์ธ์คํด์ค ์ ํ ๊ทธ๋ฃน, ์ถ๊ฐ ๋ฆฌ์ )์ ๋ํด /mask๋ฅผ 1๋งํผ ์ค์ด๋ ๊ฒ์ด ์ข์ ๊ท์น์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋์ผํ ํ ๋น์์ ๋ ์ธ์คํด์ค ์ ํ ๊ทธ๋ฃน์ ๋ชจ๋ ๋ง๋ค๋ ค๋ ๊ฒฝ์ฐ /24์์ /23์ผ๋ก ์ ํํ๋ฉด ์ถฉ๋ถํฉ๋๋ค. ๊ธฐ์กด IP ๋ฒ์๋ฅผ ํ์ฅํ ํ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ VPC ํผ์ด๋ง์ ์ ๋ฐ์ดํธํฉ๋๋ค. gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID |
์ค๋ฅ ๋ฉ์์ง: Failed to create subnetwork. Router status is
temporarily unavailable. Please try again later. Help Token:
[token-ID] . |
Cloud SQL ์ธ์คํด์ค๋ฅผ ๋ค์ ๋ง๋ค์ด ๋ณด์ธ์. |
์ค๋ฅ ๋ฉ์์ง: HTTPError 400: Invalid request: Incorrect Service Networking config for instance: PROJECT_ID:INSTANCE_NAME:SERVICE_NETWORKING_NOT_ENABLED. |
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ Service Networking API๋ฅผ ์ฌ์ฉ ์ค์ ํ๊ณ Cloud SQL ์ธ์คํด์ค๋ฅผ ๋ค์ ๋ง๋ค์ด ๋ณด์ธ์. gcloud services enable servicenetworking.googleapis.com \ --project=PROJECT_ID |
์ค๋ฅ ๋ฉ์์ง: Failed to create subnetwork. Required
'compute.projects.get' permission for PROJECT_ID . |
๋น๊ณต๊ฐ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ฉด Service Networking API๋ฅผ ์ฌ์ฉํ์ฌ ์ ์์ ์๋น์ค ๊ณ์ ์ด ์์ฑ๋ฉ๋๋ค. ์ต๊ทผ์ Service Networking API๋ฅผ ์ฌ์ฉ ์ค์ ํ ๊ฒฝ์ฐ ์๋น์ค ๊ณ์ ์ด ์์ฑ๋์ง ์๊ณ ์ธ์คํด์ค ๋ง๋ค๊ธฐ๊ฐ ์คํจํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์๋น์ค ๊ณ์ ์ด ์์คํ ์ ์ฒด์ ์ ํ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ ํ์ํ ๊ถํ์ ์๋์ผ๋ก ์ถ๊ฐํด์ผ ํฉ๋๋ค. |
์ค๋ฅ ๋ฉ์์ง: More than 3 subject alternative names are not
allowed. |
์ปค์คํ SAN์ ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ DNS ์ด๋ฆ์ 3๊ฐ ์ด์ ์ถ๊ฐํ๋ ค๊ณ ํฉ๋๋ค. ์ธ์คํด์ค์ DNS ์ด๋ฆ์ 3๊ฐ ์ด์ ์ถ๊ฐํ ์ ์์ต๋๋ค. |
์ค๋ฅ ๋ฉ์์ง: Subject alternative names %s is too long. The
maximum length is 253 characters. |
Cloud SQL ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ ์ถ๊ฐํ๋ ค๋ DNS ์ด๋ฆ์ด 253์(์๋ฌธ ๊ธฐ์ค)๋ฅผ ์ด๊ณผํ์ง ์๋์ง ํ์ธํฉ๋๋ค. |
์ค๋ฅ ๋ฉ์์ง: Subject alternative name %s is invalid. |
Cloud SQL ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์์ ์ถ๊ฐํ๋ ค๋ DNS ์ด๋ฆ์ด ๋ค์ ๊ธฐ์ค์ ์ถฉ์กฑํ๋์ง ํ์ธํฉ๋๋ค. |