์ด ํ์ด์ง์๋ Cloud Run Functions์์ ์คํ๋๋ ์๋น์ค์์ Cloud SQL ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด์ ์์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
Cloud SQL์ ์ฐ๊ฒฐ๋ Cloud Run Functions ์ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋จ๊ณ๋ณ ์๋ด๋ ๋น ๋ฅธ ์์: Cloud Run Functions์์ ์ฐ๊ฒฐ์ ์ฐธ์กฐํ์ธ์.
Cloud SQL์ ํด๋ผ์ฐ๋์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์ , ์ ์ง, ๊ด๋ฆฌํ ์ ์๋ ์์ ๊ด๋ฆฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค์ ๋๋ค.
Cloud Run Functions๋ ๊ฐ๋ฐ์๊ฐ ์๋ฒ๋ ๋ฐํ์ ํ๊ฒฝ์ ๊ด๋ฆฌํ์ง ์๊ณ ๋ Cloud ์ด๋ฒคํธ์ ์๋ตํ๋ ๋จ์ผ ์ฉ๋์ ๋ ๋ฆฝ ์คํํ ํจ์๋ฅผ ๋ง๋ค ์ ์๋ ๊ฒฝ๋ํ ์ปดํจํ ์๋ฃจ์ ์ ๋๋ค.
Cloud SQL ์ธ์คํด์ค ์ค์
- ์์ง ์ฌ์ฉ ์ค์ ํ์ง ์์์ผ๋ฉด ์ฐ๊ฒฐ ์ค์ธ Google Cloud ํ๋ก์ ํธ์์ Cloud SQL Admin API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
- PostgreSQL์ฉ Cloud SQL ์ธ์คํด์ค๋ฅผ ๋ง๋์ธ์. ์ง์ฐ ์๊ฐ์ ๊ฐ์ ํ๊ณ , ์ผ๋ถ ๋คํธ์ํน ๋น์ฉ ๋ฐ์์ ๋ฐฉ์งํ๊ณ , ๋ฆฌ์ ๊ฐ ์ฅ์ ์ํ์ ์ค์ด๋ ค๋ฉด Cloud Run ์๋น์ค์ ๋์ผํ ๋ฆฌ์ ์ ์๋ Cloud SQL ์ธ์คํด์ค ์์น๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก Cloud SQL์ ๊ณต๊ฐ IP ์ฃผ์๋ฅผ ์ ์ธ์คํด์ค์ ํ ๋นํฉ๋๋ค. ๋น๊ณต๊ฐ IP ์ฃผ์๋ฅผ ํ ๋นํ ์๋ ์์ต๋๋ค. ๋ ์ต์ ์ ์ฐ๊ฒฐ ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฐ๊ฒฐ ๊ฐ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋ ์ธ์คํด์ค์ ์๋ฒ ์ธ์ฆ์(CA) ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ ํํ ๋ค์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ธ์คํด์ค์
serverCaMode
๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฐ๊ฒฐํ ์ธ์คํด์ค์ ์๋ฒ CA ๋ชจ๋๋ก ์ธ์คํด์ค๋ณ CA ์ต์ (GOOGLE_MANAGED_INTERNAL_CA
)์ ์ ํํด์ผ ํฉ๋๋ค.
Cloud Run Functions ๊ตฌ์ฑ
Cloud Run Functions๋ฅผ ๊ตฌ์ฑํ๋ ๋จ๊ณ๋ Cloud SQL ์ธ์คํด์ค์ ํ ๋น๋ IP ์ฃผ์ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.๊ณต๊ฐ IP(๊ธฐ๋ณธ๊ฐ)
Cloud Run Functions๋ฅผ Cloud SQL ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋๋ก ๊ตฌ์ฑํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์์์ ๋ง๋ ์ธ์คํด์ค์ ๊ณต๊ฐ IP ์ฃผ์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. Google Cloud ์ฝ์์์ ์ธ์คํด์ค์ ๊ฐ์ ํ์ด์ง์์ ์ด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ๊ณต๊ฐ IP ์ฃผ์๋ฅผ ์ถ๊ฐํด์ผ ํ๋ ๊ฒฝ์ฐ ๊ณต๊ฐ IP ๊ตฌ์ฑ์ ์ฐธ๊ณ ํ์ธ์.
- ์ธ์คํด์ค์ INSTANCE_CONNECTION_NAME์ ๊ฐ์ ธ์ต๋๋ค. ์ด ๊ฐ์ ๋ค์์ ํตํด ์ ๊ณต๋ฉ๋๋ค.
- ์ธ์คํด์ค์ ๊ฐ์ ํ์ด์ง, Google Cloud ์ฝ์ ๋๋
gcloud sql instances describe [INSTANCE_NAME]
๋ช ๋ น์ด ์คํ
- ํจ์์ ์๋น์ค ๊ณ์ ์ ๊ตฌ์ฑํฉ๋๋ค. ์น์ธ ์๋น์ค ๊ณ์ ์ด Cloud SQL ์ธ์คํด์ค์ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ํ๋ ๊ฒฝ์ฐ Cloud SQL Admin API๋ฅผ ์ฌ์ฉ ์ค์ ํ๊ณ ๋ ํ๋ก์ ํธ์
Cloud SQL Client
IAM ์ญํ ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. - ์๋น์ค ๊ณ์ ์ ์ด ์ญํ ์ด ์๋์ง ํ์ธํ์ฌ ํด๋น ๊ณ์ ์ด Cloud SQL์ ์ฐ๊ฒฐํ ์ ์๋๋ก ํฉ๋๋ค.
- Cloud Run Functions(1์ธ๋)๊ฐ ์๋ Cloud Run Functions๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์์ด ํ์ํฉ๋๋ค(Cloud Run ๊ตฌ์ฑ ์ฐธ์กฐ).
- ์ฒ์์ ํจ์๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
Google Cloud ์ฝ์์์ Cloud Run ํจ์๋ฅผ ์ฒ์ ๋ง๋ค ๋๋ ๊ธฐ๋ณธ Cloud Run ์๋น์ค๊ฐ ์์ง ์์ฑ๋์ง ์์ต๋๋ค. Cloud run ํจ์๋ฅผ ๋ฐฐํฌํ์ฌ ์๋น์ค๊ฐ ์์ฑ๋ ๋๊น์ง๋ Cloud SQL ์ฐ๊ฒฐ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. - Google Cloud ์ฝ์์ ํจ์ ์ธ๋ถ์ ๋ณด ํ์ด์ง ์ค๋ฅธ์ชฝ ์์ ์๋ Cloud Run ์ ๊ณต ์๋์์ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๊ธฐ๋ณธ Cloud Run ์๋น์ค์ ์ก์ธ์คํฉ๋๋ค.
- Cloud Run ์๋น์ค ์ธ๋ถ์ ๋ณด ํ์ด์ง์์ ์ ๋ฒ์ ์์ ๋ฐ ๋ฐฐํฌ ํญ์ ์ ํํฉ๋๋ค.
- Cloud SQL ์ฐ๊ฒฐ์ ์ ๊ตฌ์ฑ ์ค์ ์ ์ํ ํ์ค ๋จ๊ณ๋ฅผ ๋ฐ๋ฆ
๋๋ค(๊ตฌ์ฑ ๋ณ๊ฒฝ ๋๋น).
๊ทธ๋ฌ๋ฉด ์ Cloud Run ๋ฒ์ ์ด ์์ฑ๋๊ณ ์ด๋ฅผ ๋ช ์์ ์ผ๋ก ๋ณ๊ฒฝํ์ง ์๋ ํ ์ดํ ๋ฒ์ ์ ์ด Cloud SQL ์ฐ๊ฒฐ์ด ์๋์ผ๋ก ์์ ๋ฉ๋๋ค.
- ์ฒ์์ ํจ์๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
๋น๊ณต๊ฐ IP
์น์ธ ์๋น์ค ๊ณ์ ์ด Cloud SQL ์ธ์คํด์ค๋ฅผ ํฌํจํ๋ ๊ฒ๊ณผ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ํ๋ ๊ฒฝ์ฐ ๋ค์์ ์ํํฉ๋๋ค.
- ๋ ํ๋ก์ ํธ ๋ชจ๋์์ Cloud SQL Admin API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
- Cloud SQL ์ธ์คํด์ค๊ฐ ํฌํจ๋ ํ๋ก์ ํธ์ ์๋น์ค ๊ณ์ ์ IAM ๊ถํ์ ์ถ๊ฐํฉ๋๋ค.
- ์์์ ๋ง๋ Cloud SQL ์ธ์คํด์ค์ ๋น๊ณต๊ฐ IP ์ฃผ์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ์ถ๊ฐํด์ผ ํ๋ ๊ฒฝ์ฐ ๋น๊ณต๊ฐ IP ๊ตฌ์ฑ์ ์๋ด๋ฅผ ์ฐธ์กฐํ์ธ์.
- Cloud SQL ์ธ์คํด์ค์ ๋์ผํ VPC ๋คํธ์ํฌ์ ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค ์ปค๋ฅํฐ๋ฅผ ๋ง๋ญ๋๋ค. ๋ค์ ์กฐ๊ฑด์ ์ฐธ๊ณ ํ์ธ์.
- ๊ณต์ VPC๋ฅผ ์ฌ์ฉํ์ง ์๋ ํ ์ปค๋ฅํฐ๋ ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฆฌ์์ค์ ๋์ผํ ํ๋ก์ ํธ์ ๋ฆฌ์ ์ ์์ด์ผ ํ์ง๋ง ์ด ์ปค๋ฅํฐ๋ ์๋ก ๋ค๋ฅธ ๋ฆฌ์ ์ ๋ฆฌ์์ค๋ก ํธ๋ํฝ์ ์ ์กํ ์ ์์ต๋๋ค.
- ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค๋ Cloud VPN๊ณผ VPC ๋คํธ์ํฌ ํผ์ด๋ง์ ํตํด ์ฐ๊ฒฐ๋ VPC ๋คํธ์ํฌ์์ ํต์ ์ ์ง์ํฉ๋๋ค.
- ์๋ฒ๋ฆฌ์ค VPC ์ก์ธ์ค๋ ๊ธฐ์กด ๋คํธ์ํฌ๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
- Cloud Run Functions์์ ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
- ์ธ์คํด์ค์ ๋น๊ณต๊ฐ IP ์ฃผ์์ ํฌํธ
5432
๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํฉ๋๋ค.
Cloud SQL์ ์ฐ๊ฒฐ
Cloud Run Functions๋ฅผ ๊ตฌ์ฑํ ํ์ Cloud SQL ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
๊ณต๊ฐ IP(๊ธฐ๋ณธ๊ฐ)
๊ณต๊ฐ IP ๊ฒฝ๋ก์ ๊ฒฝ์ฐ Cloud Run Functions๋ ์ํธํ๋ฅผ ์ ๊ณตํ๊ณ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก Cloud SQL ์ธ์ฆ ํ๋ก์๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํฉ๋๋ค.
- Unix ์์ผ์ ํตํด
- Cloud SQL ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ์ฌ
๋น๊ณต๊ฐ IP
๋น๊ณต๊ฐ IP ๊ฒฝ๋ก์ ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ VPC ๋คํธ์ํฌ๋ฅผ ํตํด ์ธ์คํด์ค์ ์ง์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ด ๋ฉ์๋๋ TCP๋ฅผ ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์ฆ ํ๋ก์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ Cloud SQL ์ธ์คํด์ค์ ์ง์ ์ฐ๊ฒฐํฉ๋๋ค.
TCP๋ก ์ฐ๊ฒฐ
Cloud SQL ์ธ์คํด์ค์ ๋น๊ณต๊ฐ IP ์ฃผ์๋ฅผ ํธ์คํธ ๋ฐ ํฌํธ 5432
๋ก ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํฉ๋๋ค.
Python
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์คํธ์์ ์ด ์ค๋ํซ์ ๋ณด๋ ค๋ฉด GitHub์ README๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Java
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์คํธ์์ ์ด ์ค๋ํซ์ ๋ณด๋ ค๋ฉด GitHub์ README๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ฐธ๊ณ :
- CLOUD_SQL_CONNECTION_NAME์ <MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>์ผ๋ก ํํ๋์ด์ผ ํฉ๋๋ค.
- ์ธ์ ipTypes=PRIVATE์ ์ฌ์ฉํ๋ฉด SocketFactory๊ฐ ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋ ๋น๊ณต๊ฐ IP์ ๊ฐ์ ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
- pom.xml ํ์ผ์ ๋ํ JDBC ์์ผ ํฉํ ๋ฆฌ ๋ฒ์ ์๊ตฌ์ฌํญ์ ์ฐธ๊ณ ํ์ธ์.
Node.js
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์คํธ์์ ์ด ์ค๋ํซ์ ๋ณด๋ ค๋ฉด GitHub์ README๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Go
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์คํธ์์ ์ด ์ค๋ํซ์ ๋ณด๋ ค๋ฉด GitHub์ README๋ฅผ ์ฐธ๊ณ ํ์ธ์.
PHP
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์คํธ์์ ์ด ์ค๋ํซ์ ๋ณด๋ ค๋ฉด GitHub์ README๋ฅผ ์ฐธ๊ณ ํ์ธ์.
๊ถ์ฅ์ฌํญ ๋ฐ ๊ธฐํ ์ ๋ณด
๋ก์ปฌ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํ ๋ Cloud SQL ์ธ์ฆ ํ๋ก์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋น ๋ฅธ ์์: Cloud SQL ์ธ์ฆ ํ๋ก์ ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
์ฐ๊ฒฐ ํ
๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฐ๊ฒฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ ์์ฒด์์ ๋๋ Cloud Run Functions์ ๊ธฐ๋ฐ์ด ๋๋ ์ธํ๋ผ์์ ์ค๋จ๋ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ด ์ค๋จ๋์์ ๋ ์๋์ผ๋ก ๋ค์ ์ฐ๊ฒฐํ๋ ์ฐ๊ฒฐ ํ์ ์ง์ํ๋ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ํจ์์ ํ์ ํธ์ถ์ ๊ฐ์ ์ฐ๊ฒฐ์ ๋ค์ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ ๋์ด๊ณ ์ธ์คํด์ค๊ฐ ์ ๊ฑฐ๋ ๋ ํด๋น ์ฐ๊ฒฐ์ด ์์ฐ์ค๋ฝ๊ฒ ์ข ๋ฃ(์๋ ์ถ์)๋๋๋ก ์ ์ญ ๋ฒ์ ์ฐ๊ฒฐ ํ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฐ๊ฒฐ ํ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.์ฐ๊ฒฐ ํ๋
Cloud SQL์ ๋์ ์ฐ๊ฒฐ ์์ ์ต๋ ํ๋๋ฅผ ์ ์ฉํ๋ฉฐ ์ด๋ฌํ ํ๋๋ ์ ํํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค(Cloud SQL ํ ๋น๋ ๋ฐ ํ๋ ์ฐธ์กฐ). Cloud Run Functions์์ ์ฐ๊ฒฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ง๋ง ์ต๋ ์ฐ๊ฒฐ ์๋ฅผ 1๋ก ์ค์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ก์ธ์คํด์ผ ํ๋ ํจ์์ ์ฐ๊ฒฐ ํ๋ง ์ด๊ธฐํํ๋๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค. ์ผ๋ถ ์ฐ๊ฒฐ ํ์ ์ฌ์ ์ ์ฐ๊ฒฐ์ ์์ฑํ๋ฏ๋ก ์ด๊ณผ ๋ฆฌ์์ค๋ฅผ ์๋นํ๊ณ ์ฐ๊ฒฐ ์ ํ์ ๋๋ฌํ ์ ์์ต๋๋ค. ์ด๋ฐ ์ด์ ๋ก ์ง์ฐ๋ ์ด๊ธฐํ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ๋๊น์ง ์ฐ๊ฒฐ ํ ์์ฑ์ ์ง์ฐํ๊ณ ์ฌ์ฉ๋๋ ํจ์์๋ง ์ฐ๊ฒฐ ํ์ ํฌํจํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฐ๊ฒฐ ์๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
API ํ ๋น๋ ํ๋
Cloud Run Functions๋ Cloud SQL Admin API๋ฅผ ์ฌ์ฉํ๋ Cloud SQL ์ธ์ฆ ํ๋ก์๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. API ํ ๋น๋ ํ๋๊ฐ Cloud SQL ์ธ์ฆ ํ๋ก์์ ์ ์ฉ๋ฉ๋๋ค. ์ฌ์ฉ๋ Cloud SQL Admin API ํ ๋น๋์ ๋๋ต์ ์ผ๋ก ๊ตฌ์ฑ๋ Cloud SQL ์ธ์คํด์ค ์์ 2๋ฐฐ์ ๋ฐฐํฌ๋ ์ด ํจ์ ์๋ฅผ ๊ณฑํ ๊ฐ์ ๋๋ค. ์์๋๋ API ํ ๋น๋์ ์์ ํ๋ ค๋ฉด ์ต๋ ๋์ ํธ์ถ ์๋ฅผ ์ค์ ํ๋ฉด ๋ฉ๋๋ค. ๋ํ Cloud Run Functions๋ 100์ด๋ง๋ค ํ์ฉ๋๋ API ํธ์ถ ์์ ๋น์จ ์ ํ์ ์ ์ฉํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- Cloud Run Functions ์์ธํ ์์๋ณด๊ธฐ
- Cloud Run Functions ๋ฐฐํฌ ์์ธํ ์์๋ณด๊ธฐ
- Cloud Run Functions์ ํธ๋ฆฌ๊ฑฐ ์ง์ ์์ธํ ์์๋ณด๊ธฐ
- Cloud Run Functions ๊ตฌ์ฑ ์์ธํ ์์๋ณด๊ธฐ