Cloud SQL ํ”„๋ก์‹œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ

์ด ํŽ˜์ด์ง€์—์„œ๋Š” Cloud SQL ํ”„๋ก์‹œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud SQL ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Cloud SQL ํ”„๋ก์‹œ ์—ฐ์‚ฐ์ž์˜ ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud SQL ํ”„๋ก์‹œ ์—ฐ์‚ฐ์ž ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ฐœ์š”

Cloud SQL ํ”„๋ก์‹œ ์—ฐ์‚ฐ์ž๋Š” Cloud SQL ์ธ์ฆ ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋„๋ก Google Kubernetes Engine(GKE)์— ๋ฐฐํฌ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. Cloud SQL ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•  ๋•Œ๋Š” Cloud SQL ์ธ์ฆ ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Cloud SQL ์ธ์ฆ ํ”„๋ก์‹œ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด Cloud SQL ์ธ์ฆ ํ”„๋ก์‹œ ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

GKE์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Cloud SQL ์ธ์ฆ ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

Cloud SQL ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋จผ์ € ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์„ธ์š”.

  1. ์‚ฌ์šฉ์ž๋‚˜ ์„œ๋น„์Šค ๊ณ„์ •์˜ ๊ฒฝ์šฐ ๊ณ„์ •์— Cloud SQL ํด๋ผ์ด์–ธํŠธ ์—ญํ• ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ์—ญํ• ์—๋Š” ์ฃผ ๊ตฌ์„ฑ์›์ด ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  Cloud SQL ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋„๋ก ์Šน์ธํ•˜๋Š” cloudsql.instances.connect ๊ถŒํ•œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    IAM ํŽ˜์ด์ง€๋กœ ์ด๋™

    ์›ํ•˜๋Š” ๊ฒฝ์šฐ ํŠน์ • Cloud SQL ์ธ์Šคํ„ด์Šค ํ•˜๋‚˜๋งŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๊ณ„์ •์— ๋ถ€์—ฌํ•˜๋Š” IAM ์กฐ๊ฑด์„ IAM ์ •์ฑ… ๋ฐ”์ธ๋”ฉ์— ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. Enable the Cloud SQL Admin API.

    Enable the API

  3. gcloud CLI๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

Cloud SQL ํ”„๋ก์‹œ ์—ฐ์‚ฐ์ž ์„ค์น˜

Cloud SQL ํ”„๋ก์‹œ ์—ฐ์‚ฐ์ž๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. kubectl์„ GKE ํด๋Ÿฌ์Šคํ„ฐ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl cluster-info
    Google Kubernetes Engine์„ Cloud SQL์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Google Kubernetes Engine์—์„œ ์—ฐ๊ฒฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”.
  2. helm์„ ์‚ฌ์šฉํ•˜์—ฌ cert-manager๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. GKE ํด๋Ÿฌ์Šคํ„ฐ์—์„œ cert-manager๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์—ฌ๊ธฐ์— ์ง€์ •๋œ ๋ฒ„์ „ ๋ฐ CLI ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
          helm repo add jetstack https://charts.jetstack.io
          helm repo update
          helm install \
            cert-manager jetstack/cert-manager \
            --namespace cert-manager \
            --version "v1.9.1" \
            --create-namespace \
            --set global.leaderElection.namespace=cert-manager \
            --set installCRDs=true
        
  3. Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— Cloud SQL ํ”„๋ก์‹œ ์—ฐ์‚ฐ์ž๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
    kubectl apply -f https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy-operator/v1.6.1/cloud-sql-proxy-operator.yaml
        
  4. Cloud SQL ํ”„๋ก์‹œ ์—ฐ์‚ฐ์ž๊ฐ€ ์‹œ์ž‘๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
    kubectl rollout status deployment -n cloud-sql-proxy-operator-system cloud-sql-proxy-operator-controller-manager --timeout=90s
        
  5. Cloud SQL ํ”„๋ก์‹œ ์—ฐ์‚ฐ์ž๊ฐ€ ์„ค์น˜๋˜์–ด ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl get pods -n cloud-sql-proxy-operator-system
      

๋‹ค์Œ ๋‹จ๊ณ„