Cloud Run์์ PostgreSQL์ฉ Cloud SQL์ ์ฐ๊ฒฐ
Google Cloud ์ฝ์๊ณผ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ์ฌ PostgreSQLL ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋ Cloud Run์ ์ํ ์ฑ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.
๋ชจ๋ ๋จ๊ณ๋ฅผ ์ ์์ ์๋ฃํ๋ค๋ฉด ์ด ๋น ๋ฅธ ์์์์ ๋ง๋ ๋ฆฌ์์ค์ ๋น์ฉ์ ์ผ๋ฐ์ ์ผ๋ก 1๋ฌ๋ฌ(USD) ๋ฏธ๋ง์ ๋๋ค.
Google Cloud ์ฝ์์์ ์ด ํ์คํฌ์ ๋ํ ๋จ๊ณ๋ณ ์๋ด๋ฅผ ์ง์ ์ํํ๋ ค๋ฉด ๋๋ฌ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์์ํ๊ธฐ ์ ์
- 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.
-
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.
-
Cloud Run์์ Cloud SQL ์ํ ์ฑ์ ์คํํ๋ ๋ฐ ํ์ํ Cloud API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
์ฝ์
API ์ฌ์ฉ ์ค์ ์ ํด๋ฆญํ์ฌ ๋น ๋ฅธ ์์์ ํ์ํ API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ค์ API๊ฐ ์ฌ์ฉ ์ค์ ๋ฉ๋๋ค.
- Compute Engine API
- Cloud SQL Admin API
- Cloud Run API
- Container Registry API
- Cloud Build API
- Service Networking API
gcloud
๋ค์ ๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ธ๋ผ์ฐ์ ์์ ์ง์ Google Cloud ๋ฆฌ์์ค์ ๋ํด ๋ช ๋ น์ค ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ Cloud Shell์ ์ฝ๋๋ค. Cloud Shell์ ์ฌ์ฉํ์ฌ ์ด ๋น ๋ฅธ ์์ ์ ์ฒด์ ํ์๋
gcloud
๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์์ต๋๋ค.Cloud Shell์ ์ฌ์ฉํ์ฌ ๋ค์
gcloud
๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.gcloud services enable compute.googleapis.com sqladmin.googleapis.com run.googleapis.com \ containerregistry.googleapis.com cloudbuild.googleapis.com servicenetworking.googleapis.com
์ด ๋ช ๋ น์ด๋ ๋ค์ API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
- Compute Engine API
- Cloud SQL Admin API
- Cloud Run API
- Container Registry API
- Cloud Build API
- Service Networking API
Cloud SQL ์ค์
Cloud SQL ์ธ์คํด์ค ๋ง๋ค๊ธฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ
์ฝ์
-
Google Cloud ์ฝ์์์ Cloud SQL ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
quickstart-instance
๋ฅผ ์ ํํฉ๋๋ค.- SQL ํ์ ๋ฉ๋ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ํ์์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ ํ๋์
quickstart-db
๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
gcloud
sql databases create
๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ญ๋๋ค.
gcloud sql databases create quickstart-db --instance=quickstart-instance
์ฌ์ฉ์ ๋ง๋ค๊ธฐ
์ฝ์
-
Google Cloud ์ฝ์์์ Cloud SQL ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ์ธ์คํด์ค์ ๊ฐ์ ํ์ด์ง๋ฅผ ์ด๋ ค๋ฉด ์ธ์คํด์ค ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
- SQL ํ์ ๋ฉ๋ด์์ ์ฌ์ฉ์๋ฅผ ์ ํํฉ๋๋ค.
- ์ฌ์ฉ์ ๊ณ์ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- instance_name ํ์ด์ง์ ์๋ก์ด ์ฌ์ฉ์ ๊ณ์ ์ถ๊ฐ ํ์ด์ง์์ ๋ค์ ์ ๋ณด๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ์ฌ์ฉ์ ์ด๋ฆ ํ๋์
quickstart-user
๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๋น๋ฐ๋ฒํธ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ง์ ํฉ๋๋ค. ์ด ๋น ๋ฅธ ์์์ ์ดํ ๋จ๊ณ์์ ์ฌ์ฉํ ์ ์๋๋ก ๊ธฐ๋กํด ๋ก๋๋ค.
- ์ฌ์ฉ์ ์ด๋ฆ ํ๋์
- ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PASSWORD๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๋ก ๋ฐ๊ฟ๋๋ค. ์ด ๋น ๋ฅธ ์์์ ์ดํ ๋จ๊ณ์์ ์ฌ์ฉํ ์ ์๋๋ก ๊ธฐ๋กํด ๋ก๋๋ค.
gcloud sql users create
๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ ์ฌ์ฉ์๋ฅผ ๋ง๋ญ๋๋ค.
gcloud sql users create quickstart-user \ --instance=quickstart-instance \ --password=PASSWORD
Cloud SQL์ ์จํ๋ ๋ฏธ์ค PostgreSQL์ ์ฌ์ฉ์ ์ด๋ฆ ๊ธธ์ด ํ๋๋ ๋์ผํฉ๋๋ค.
Cloud Run์ ์ํ ์ฑ ๋ฐฐํฌ
Cloud Run ์๋น์ค ๊ณ์ ๊ตฌ์ฑ
์ฝ์
-
Google Cloud ์ฝ์์์ IAM ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ด๋ผ๋ ์๋น์ค ๊ณ์ ์์ ์ฐํ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.
- ๋ค๋ฅธ ์ญํ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- Cloud SQL ํด๋ผ์ด์ธํธ๋ผ๋ ์ญํ ์ ์ถ๊ฐํฉ๋๋ค.
- ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
gcloud
-
๋ค์
gcloud
๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ํ๋ก์ ํธ์ ์๋น์ค ๊ณ์ ๋ชฉ๋ก์ ๊ฐ์ ธ์ต๋๋ค.gcloud iam service-accounts list
- Compute Engine ์๋น์ค ๊ณ์ ์ ์ด๋ฉ์ผ์ ๋ณต์ฌํฉ๋๋ค.
- ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ Cloud SQL ํด๋ผ์ด์ธํธ ์ญํ ์ Compute Engine ์๋น์ค ๊ณ์ ์ ์ถ๊ฐํฉ๋๋ค.
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/cloudsql.client"
Cloud SQL ์ํ ์ฑ ๊ตฌ์ฑ
์ด์ ํด๋ผ์ด์ธํธ ๊ถํ์ด ์๋ Cloud SQL ์ธ์คํด์ค, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋๋๋ก ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ํ ์ฑ ๋ฐฐํฌ
Cloud Run์ ์ํ์ ๋ฐฐํฌํ๋ ๋จ๊ณ๋ Cloud SQL ์ธ์คํด์ค์ ํ ๋นํ IP ์ฃผ์ ์ ํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์ด๋ฏธ์ง ์ฐ๊ฒฐ ๋ฐฉ๋ฒ์ ์ค์ ๋ ํ๊ฒฝ ๋ณ์์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
- TCP๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ๋ ค๋ฉด
INSTANCE_HOST
ํ๊ฒฝ ๋ณ์์ ๊ฐ์ ์ค์ ํฉ๋๋ค. ์ด ์ฐ๊ฒฐ ๋ฐฉ๋ฒ์ ํ๊ฒฝ ๋ณ์๋ก ๊ตฌ์ฑ๋ ์ธ์ฆ์์ ํฌํธ๋ฅผ ๋ฐ๋ฆ ๋๋ค. - Unix ์์ผ์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ๋ ค๋ฉด
INSTANCE_UNIX_SOCKET
ํ๊ฒฝ ๋ณ์์ ๊ฐ์ ์ค์ ํฉ๋๋ค.INSTANCE_HOST
ํ๊ฒฝ ๋ณ์์ ๊ฐ์ ์ค์ ํ์ง ๋ง์ธ์.Unix ์์ผ์ Java์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์๋์ง ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด Java๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ๊ฒฝ์ฐ Cloud SQL Java ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- Cloud SQL ์ธ์ด ์ปค๋ฅํฐ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ๋ ค๋ฉด
INSTANCE_CONNECTION_NAME
ํ๊ฒฝ ๋ณ์์ ๊ฐ์ ์ค์ ํ์ธ์.๋ค์ ํ๊ฒฝ ๋ณ์์ ๊ฐ์ ์ค์ ํ์ง ๋ง์ธ์.
INSTANCE_HOST
INSTANCE_UNIX_SOCKET
DB_PORT
DB_ROOT_CERT
DB_CERT
DB_KEY
3307
์์ Cloud SQL์ ๋ํ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค.
์ญ์
์ด ํ์ด์ง์์ ์ฌ์ฉํ ๋ฆฌ์์ค ๋น์ฉ์ด Google Cloud ๊ณ์ ์ ์ฒญ๊ตฌ๋์ง ์๋๋ก ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
-
Google Cloud ์ฝ์์์ Cloud SQL ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
quickstart-instance
์ธ์คํด์ค๋ฅผ ์ ํํ์ฌ ์ธ์คํด์ค ์ธ๋ถ์ ๋ณด ํ์ด์ง๋ฅผ ์ฝ๋๋ค.- ํ์ด์ง ์๋จ์ ์์ด์ฝ ํ์์ค์์ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ธ์คํด์ค ์ญ์ ๋ํ์์์์
quickstart-instance
๋ฅผ ์ ๋ ฅํ ํ ์ญ์ ๋ฅผ ํด๋ฆญํ์ฌ ์ธ์คํด์ค๋ฅผ ์ญ์ ํฉ๋๋ค. -
Google Cloud ์ฝ์์์ Cloud Run ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
quickstart-service
์๋น์ค ์ด๋ฆ ์์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.- Cloud Run ํ์ด์ง ์๋จ์ ์๋ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ํ์ ์ธ ์ญ์ ๋จ๊ณ
Compute Engine ์๋น์ค ๊ณ์ ์ ํ ๋นํ Cloud SQL ํด๋ผ์ด์ธํธ ์ญํ ์ ์ฌ์ฉํ์ง ์์ ๋๋ ์ด๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
-
Google Cloud ์ฝ์์์ IAM ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ด๋ผ๋ IAM ๊ณ์ ์ ๋ํด ์์ ์์ด์ฝ(์ฐํ ๋ชจ์)์ ํด๋ฆญํฉ๋๋ค.
- Cloud SQL ํด๋ผ์ด์ธํธ ์ญํ ์ ์ญ์ ํฉ๋๋ค.
- ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
์ด ๋น ๋ฅธ ์์์ ์งํํ๋ ๋์ ์ฌ์ฉ ์ค์ ๋ API๋ฅผ ์ฌ์ฉํ์ง ์์ ๋๋ ์ด๋ฅผ ์ฌ์ฉ ์ค์งํ ์ ์์ต๋๋ค.
- ์ด ๋น ๋ฅธ ์์ ๋ด์์ ์ฌ์ฉ ์ค์ ๋ API:
- Compute Engine API
- Cloud SQL Admin API
- Cloud Run API
- Container Registry API
- Cloud Build API
Google Cloud ์ฝ์์์ API ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ฌ์ฉ ์ค์งํ๋ ค๋ API๋ฅผ ์ ํํ ํ API ์ฌ์ฉ ์ค์ง ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
๋ค์ ๋จ๊ณ
Cloud SQL ์ธ์คํด์ค ๋ง๋ค๊ธฐ ์์ธํ ์์๋ณด๊ธฐ(ํ์ํ ๊ฒฝ์ฐ)Cloud SQL ์ธ์คํด์ค์ PostgreSQL ์ฌ์ฉ์ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
๊ฐ๊ฒฉ ์ฑ ์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ PostgreSQL์ฉ Cloud SQL ๊ฐ๊ฒฉ ์ฑ ์ ์ ์ฐธ์กฐํ์ธ์.
๋ค์์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ
- ๊ณต๊ฐ IP ์ฃผ์๋ก Cloud SQL ์ธ์คํด์ค ๊ตฌ์ฑํ๊ธฐ
- ๋น๊ณต๊ฐ IP ์ฃผ์๋ก Cloud SQL ์ธ์คํด์ค ๊ตฌ์ฑํ๊ธฐ
๋ํ ๋ค๋ฅธ Google Cloud ์ ํ๋ฆฌ์ผ์ด์ ์์ Cloud SQL ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.