Skip to content

Latest commit

ย 

History

History
241 lines (166 loc) ยท 6.01 KB

File metadata and controls

241 lines (166 loc) ยท 6.01 KB

์›๊ฒฉ DB ์ ‘์† ๊ฐ€์ด๋“œ

Cloud SQL(finders-db)์— ๋กœ์ปฌ IDE์—์„œ ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ฐœ์š”

Cloud SQL์˜ ๊ณต๊ฐœ IP๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด IAP ํ„ฐ๋„์„ ํ†ตํ•ด์„œ๋งŒ ์ ‘์† ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

[๋กœ์ปฌ PC] โ†’ [IAP ํ„ฐ๋„] โ†’ [GCE ์„œ๋ฒ„] โ†’ [Cloud SQL]
localhost:3307 โ†’ ์•”ํ˜ธํ™”๋œ ํ„ฐ๋„ โ†’ 10.0.2.2 โ†’ 10.68.240.3:3306

์‚ฌ์ „ ์ค€๋น„

1. gcloud CLI ์„ค์น˜

์•„์ง ์„ค์น˜ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด Google Cloud SDK๋ฅผ ์„ค์น˜ํ•˜์„ธ์š”.

# ์„ค์น˜ ํ™•์ธ
gcloud --version

2. gcloud ๋กœ๊ทธ์ธ

# Google ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ (๋ธŒ๋ผ์šฐ์ € ์—ด๋ฆผ)
gcloud auth login

# Application Default Credentials ์„ค์ •
gcloud auth application-default login

# ํ”„๋กœ์ ํŠธ ์„ค์ •
gcloud config set project finders-487717

3. IAM ๊ถŒํ•œ ํ™•์ธ

IAP ํ„ฐ๋„ ์‚ฌ์šฉ์„ ์œ„ํ•ด ๋‹ค์Œ ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

  • roles/iap.tunnelResourceAccessor (IAP ํ„ฐ๋„ ์ ‘๊ทผ)
  • roles/compute.viewer (Compute Engine ์กฐํšŒ)

๊ถŒํ•œ์ด ์—†๋‹ค๋ฉด ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์š”์ฒญํ•˜์„ธ์š”.


์ ‘์† ๋ฐฉ๋ฒ•

Step 1: IAP ํ„ฐ๋„ ์—ด๊ธฐ

ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. (์ ‘์† ์ค‘์—๋Š” ํ„ฐ๋ฏธ๋„์„ ๋‹ซ์ง€ ๋งˆ์„ธ์š”!)

gcloud compute ssh finders-server \
  --zone=asia-northeast3-a \
  --project=finders-487717 \
  --tunnel-through-iap \
  -- -L 3307:10.68.240.3:3306

๋ณด์•ˆ ์•ˆ๋‚ด: ์œ„ ๋ช…๋ น์–ด์— ํฌํ•จ๋œ ์ •๋ณด(Project ID, Private IP ๋“ฑ)๋Š” ๊ณต๊ฐœ๋˜์–ด๋„ ๋ณด์•ˆ ์œ„ํ˜‘์ด ์—†์Šต๋‹ˆ๋‹ค.

  • IAP ์ธ์ฆ: GCP IAM ๊ถŒํ•œ์ด ์—†์œผ๋ฉด ํ„ฐ๋„ ์ž์ฒด๊ฐ€ ์—ด๋ฆฌ์ง€ ์•Š์Œ
  • Private IP: VPC ๋‚ด๋ถ€ IP๋ผ ์™ธ๋ถ€์—์„œ ์ง์ ‘ ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅ
  • ์‹ค์ œ ๋ฏผ๊ฐ ์ •๋ณด(๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ)๋Š” ์ด ๋ฌธ์„œ์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์„ฑ๊ณตํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค:

Warning: Permanently added 'compute.xxxxx' (ED25519) to the list of known hosts.
Welcome to Ubuntu 22.04...

์ฃผ์˜: ์ด ํ„ฐ๋ฏธ๋„ ์ฐฝ์€ DB ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์—ด์–ด๋‘์„ธ์š”!


Step 2: DB ํด๋ผ์ด์–ธํŠธ์—์„œ ์—ฐ๊ฒฐ

ํ„ฐ๋„์ด ์—ด๋ฆฐ ์ƒํƒœ์—์„œ ์ƒˆ ํ„ฐ๋ฏธ๋„ ๋˜๋Š” IDE์—์„œ DB์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ์ •๋ณด

ํ•ญ๋ชฉ ๊ฐ’
Host localhost
Port 3307
User finders
Password .env.dev ๋˜๋Š” .env.prod ์ฐธ์กฐ
Database finders_dev (๊ฐœ๋ฐœ) / finders (์šด์˜)

IDE๋ณ„ ์„ค์ • ๋ฐฉ๋ฒ•

IntelliJ IDEA (Database Tool)

  1. View > Tool Windows > Database ๋˜๋Š” ์šฐ์ธก ์‚ฌ์ด๋“œ๋ฐ” Database ํด๋ฆญ
  2. + > Data Source > MySQL ์„ ํƒ
  3. ์—ฐ๊ฒฐ ์ •๋ณด ์ž…๋ ฅ:
    • Host: localhost
    • Port: 3307
    • User: finders
    • Password: (ํŒ€ ๊ณต์œ  ๋ฌธ์„œ ์ฐธ์กฐ)
    • Database: finders_dev
  4. Test Connection ํด๋ฆญํ•˜์—ฌ ์—ฐ๊ฒฐ ํ™•์ธ
  5. OK ํด๋ฆญ

DataGrip

  1. File > New > Data Source > MySQL
  2. ์—ฐ๊ฒฐ ์ •๋ณด ์ž…๋ ฅ (IntelliJ์™€ ๋™์ผ)
  3. Test Connection โ†’ OK

VS Code (SQLTools - ๋ฌด๋ฃŒ, ์ถ”์ฒœ)

์ฃผ์˜: Database Client(cweijan)๋Š” 3๊ฐœ ์—ฐ๊ฒฐ ์ดˆ๊ณผ ์‹œ ์œ ๋ฃŒ์ž…๋‹ˆ๋‹ค. SQLTools(mtxr)๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค!

์„ค์น˜:

  1. Extensions์—์„œ SQLTools (mtxr) ์„ค์น˜
  2. Extensions์—์„œ SQLTools MySQL/MariaDB ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜

์—ฐ๊ฒฐ ์„ค์ •:

  1. ์ขŒ์ธก ์‚ฌ์ด๋“œ๋ฐ” SQLTools ์•„์ด์ฝ˜ ํด๋ฆญ
  2. Add New Connection ํด๋ฆญ
  3. MySQL ์„ ํƒ
  4. ์—ฐ๊ฒฐ ์ •๋ณด ์ž…๋ ฅ:
    • Connection Name: Finders Dev
    • Server: localhost
    • Port: 3307
    • Database: finders_dev
    • Username: finders
    • Password: (ํŒ€ ๊ณต์œ  ๋ฌธ์„œ ์ฐธ์กฐ)
  5. Test Connection โ†’ Save Connection

MySQL Workbench

  1. MySQL Connections ์˜† + ํด๋ฆญ
  2. ์—ฐ๊ฒฐ ์ •๋ณด ์ž…๋ ฅ:
    • Connection Name: Finders Dev (IAP Tunnel)
    • Hostname: localhost
    • Port: 3307
    • Username: finders
  3. Test Connection โ†’ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ โ†’ OK

ํ„ฐ๋ฏธ๋„ (mysql CLI)

mysql -h localhost -P 3307 -u finders -p finders_dev

ํ™˜๊ฒฝ๋ณ„ Database

ํ™˜๊ฒฝ Database ์šฉ๋„
finders_dev ๊ฐœ๋ฐœ DB FE ์—ฐ๋™ ํ…Œ์ŠคํŠธ, Mock ๋ฐ์ดํ„ฐ
finders ์šด์˜ DB ์‹ค์ œ ์„œ๋น„์Šค ๋ฐ์ดํ„ฐ (์ฃผ์˜!)

์ฃผ์˜: ์šด์˜ DB(finders)์—์„œ DELETE/UPDATE ์ž‘์—… ์‹œ ๊ฐ๋ณ„ํžˆ ์ฃผ์˜ํ•˜์„ธ์š”!


๋ฌธ์ œ ํ•ด๊ฒฐ

"Permission denied" ์˜ค๋ฅ˜

ERROR: (gcloud.compute.ssh) Could not fetch resource

ํ•ด๊ฒฐ: IAM ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž์—๊ฒŒ roles/iap.tunnelResourceAccessor ๊ถŒํ•œ์„ ์š”์ฒญํ•˜์„ธ์š”.

"Connection refused" ์˜ค๋ฅ˜

ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3307'

ํ•ด๊ฒฐ:

  1. IAP ํ„ฐ๋„์ด ์—ด๋ ค์žˆ๋Š”์ง€ ํ™•์ธ (Step 1์˜ ํ„ฐ๋ฏธ๋„์ด ์‹คํ–‰ ์ค‘์ธ์ง€)
  2. ํฌํŠธ๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธ (3307)

"Access denied for user" ์˜ค๋ฅ˜

ERROR 1045 (28000): Access denied for user 'finders'@'xxx'

ํ•ด๊ฒฐ: ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ‹€๋ฆฝ๋‹ˆ๋‹ค. ํŒ€ ๊ณต์œ  ๋ฌธ์„œ์—์„œ ์ตœ์‹  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

ํ„ฐ๋„ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง

์žฅ์‹œ๊ฐ„ ๋ฏธ์‚ฌ์šฉ ์‹œ ํ„ฐ๋„์ด ์ž๋™์œผ๋กœ ๋Š์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Step 1์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”.


ํŒ

ํ„ฐ๋„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰ (์„ ํƒ)

ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์—ด์–ด๋‘๊ธฐ ์‹ซ๋‹ค๋ฉด ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰:

gcloud compute ssh finders-server \
  --zone=asia-northeast3-a \
  --project=finders-487717 \
  --tunnel-through-iap \
  -- -L 3307:10.68.240.3:3306 -N -f

์ข…๋ฃŒํ•˜๋ ค๋ฉด:

# ํ”„๋กœ์„ธ์Šค ์ฐพ๊ธฐ
ps aux | grep "ssh.*3307"

# ์ข…๋ฃŒ
kill [PID]

alias ์„ค์ • (์„ ํƒ)

์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ~/.bashrc ๋˜๋Š” ~/.zshrc์— ์ถ”๊ฐ€:

alias finders-db='gcloud compute ssh finders-server --zone=asia-northeast3-a --project=finders-487717 --tunnel-through-iap -- -L 3307:10.68.240.3:3306'

์ดํ›„ finders-db ๋ช…๋ น์–ด๋กœ ๊ฐ„๋‹จํžˆ ํ„ฐ๋„ ์—ด๊ธฐ!


์ฐธ๊ณ  ๋ฌธ์„œ


๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ: 2026-01-30