๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค ์‚ฌ์šฉ ์„ค์ •

์ด ํŽ˜์ด์ง€์—์„œ๋Š” PostgreSQL์šฉ AlloyDB๊ฐ€ ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค์— ํ•„์š”ํ•œ ๊ฐ€์ƒ ํ”„๋ผ์ด๋น— ํด๋ผ์šฐ๋“œ (VPC) IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. AlloyDB๊ฐ€ ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€ ๋ฆฌ์†Œ์Šค๊ฐ€ ์„œ๋กœ ํ†ต์‹ ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ฐœ์š”๋Š” ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค ์ •๋ณด๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

AlloyDB ํด๋Ÿฌ์Šคํ„ฐ์™€ ๋™์ผํ•œGoogle Cloud ํ”„๋กœ์ ํŠธ์— ์žˆ๋Š” ๊ฐ€์ƒ ํ”„๋ผ์ด๋น— ํด๋ผ์šฐ๋“œ (VPC) ๋„คํŠธ์›Œํฌ์—์„œ ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค ๊ตฌ์„ฑ์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์ž‘์—…์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • VPC ๋„คํŠธ์›Œํฌ์— ํ• ๋‹น๋œ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • VPC ๋„คํŠธ์›Œํฌ์™€ ๊ธฐ๋ณธ Google Cloud VPC ๋„คํŠธ์›Œํฌ ๊ฐ„์— ๋น„๊ณต๊ฐœ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ AlloyDB ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณ„๋„์˜Google Cloud ํ”„๋กœ์ ํŠธ์— ์žˆ๋Š” ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๊ณต์œ  VPC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ํ”„๋กœ์ ํŠธ์˜ VPC ๋„คํŠธ์›Œํฌ๋ฅผ ๋ณ‘ํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์‚ฌ์šฉ ์ค‘์ธ Google Cloud ํ”„๋กœ์ ํŠธ๊ฐ€ AlloyDB์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ ์ค‘์ธ Google Cloud ํ”„๋กœ์ ํŠธ์— ๋‹ค์Œ IAM ์—ญํ•  ์ค‘ ํ•˜๋‚˜๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • roles/alloydb.admin (AlloyDB ๊ด€๋ฆฌ์ž๊ฐ€ ์‚ฌ์ „ ์ •์˜ํ•œ IAM ์—ญํ• )
    • roles/owner(์†Œ์œ ์ž ๊ธฐ๋ณธ IAM ์—ญํ• )
    • roles/editor(ํŽธ์ง‘์ž ๊ธฐ๋ณธ IAM ์—ญํ• )

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

  • ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค ๊ตฌ์„ฑ์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ IAM ๊ถŒํ•œ๋„ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • compute.networks.list
    • compute.addresses.create
    • compute.addresses.list
    • servicenetworking.services.addPeering

VPC IP ์ฃผ์†Œ ๋ฒ”์œ„ ๋งŒ๋“ค๊ธฐ

์ฝ˜์†”

  1. VPC ๋„คํŠธ์›Œํฌ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    VPC ๋„คํŠธ์›Œํฌ๋กœ ์ด๋™

  2. AlloyDB์™€ VPC ๋„คํŠธ์›Œํฌ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค์— ์‚ฌ์šฉํ•  VPC ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. VPC ๋„คํŠธ์›Œํฌ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ํƒญ ๋ชฉ๋ก์„ ์Šคํฌ๋กคํ•˜์—ฌ ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค ํƒญ์œผ๋กœ ์ด๋™ํ•œ ํ›„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค ํƒญ์—์„œ ์„œ๋น„์Šค์— ํ• ๋‹น๋œ IP ๋ฒ”์œ„ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. IP ๋ฒ”์œ„ ํ• ๋‹น์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. ์ด๋ฆ„ ๋ฐ ์„ค๋ช… ํ•„๋“œ์— ํ• ๋‹น๋œ ๋ฒ”์œ„์˜ ์ด๋ฆ„๊ณผ ์„ค๋ช…์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  8. ํ• ๋‹น์˜ IP ๋ฒ”์œ„ ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

    • IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด ์ปค์Šคํ…€์„ ํด๋ฆญํ•œ ๋‹ค์Œ CIDR ๋ธ”๋ก(์˜ˆ: 192.168.0.0/16)์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

      AlloyDB์— ์ถฉ๋ถ„ํ•œ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•˜๋ ค๋ฉด ์ ‘๋‘์‚ฌ ๊ธธ์ด๋ฅผ 16 ์ดํ•˜๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    • ํ”„๋ฆฌํ”ฝ์Šค ๊ธธ์ด๋ฅผ ์ง€์ •ํ•˜๊ณ  Google์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

      1. ์ž๋™์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      2. 16์™€ ๊ฐ™์ด ์ ‘๋‘์‚ฌ ๊ธธ์ด๋ฅผ ์ผ๋ฐ˜ ์ˆซ์ž๋กœ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  9. ํ• ๋‹น์„ ํด๋ฆญํ•˜์—ฌ ํ• ๋‹น๋œ ๋ฒ”์œ„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  10. ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค ํƒญ์—์„œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋น„๊ณต๊ฐœ ์—ฐ๊ฒฐ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  11. ์—ฐ๊ฒฐ ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋„คํŠธ์›Œํฌ์™€ ์„œ๋น„์Šค ์ œ์ž‘์ž ์‚ฌ์ด์— ๋น„๊ณต๊ฐœ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  12. Google Cloud Platform์ด ์—ฐ๊ฒฐ๋œ ์„œ๋น„์Šค ํ”„๋กœ๋“€์„œ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  13. ์ง€์ •๋œ ํ• ๋‹น์—์„œ ์ด์ „์— ๋งŒ๋“  ํ• ๋‹น๋œ IP ๋ฒ”์œ„๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  14. ์—ฐ๊ฒฐ์„ ํด๋ฆญํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

gcloud

gcloud CLI๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Google Cloud CLI๋ฅผ ์„ค์น˜ ๋ฐ ์ดˆ๊ธฐํ™”ํ•˜๊ฑฐ๋‚˜ Cloud Shell์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. gcloud config set ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ๋ฅผ AlloyDB์™€ VPC ๋„คํŠธ์›Œํฌ๊ฐ€ ์ƒ์ฃผํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    gcloud config set project PROJECT_ID

    PROJECT_ID๋ฅผ AlloyDB์™€ VPC ๋„คํŠธ์›Œํฌ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜ ID๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  2. gcloud compute addresses create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ• ๋‹น๋œ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    AlloyDB์— ์ถฉ๋ถ„ํ•œ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•˜๋ ค๋ฉด ํ”„๋ฆฌํ”ฝ์Šค ๊ธธ์ด๋ฅผ 16 ์ดํ•˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    • ์ฃผ์†Œ ๋ฒ”์œ„์™€ ํ”„๋ฆฌํ”ฝ์Šค ๊ธธ์ด(์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ)๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด --addresses ๋ฐ --prefix-length ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด CIDR ๋ธ”๋ก 192.168.0.0/16์„ ํ• ๋‹นํ•˜๋ ค๋ฉด ์ฃผ์†Œ์— 192.168.0.0์„ ์ง€์ •ํ•˜๊ณ  ํ”„๋ฆฌํ”ฝ์Šค ๊ธธ์ด์— 16์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

          gcloud compute addresses create RESERVED_RANGE_NAME \
              --global \
              --purpose=VPC_PEERING \
              --addresses=192.168.0.0 \
              --prefix-length=16 \
              --description="DESCRIPTION" \
              --network=VPC_NETWORK

      ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

      • RESERVED_RANGE_NAME: ํ• ๋‹น๋œ ๋ฒ”์œ„์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค(์˜ˆ: my-allocated-range).

      • DESCRIPTION: ๋ฒ”์œ„์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค(์˜ˆ: allocated for my-service).

      • VPC_NETWORK๋Š” VPC ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค(์˜ˆ: my-vpc-network). ๊ณต์œ  VPC ๋„คํŠธ์›Œํฌ์˜ ๊ฒฝ์šฐ VPC ๋„คํŠธ์›Œํฌ์˜ ์ •๊ทœํ™”๋œ ๊ฒฝ๋กœ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: projects/cymbal-project/global/networks/shared-vpc-network).

    • ํ”„๋ฆฌํ”ฝ์Šค ๊ธธ์ด (์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ)๋งŒ ์ง€์ •ํ•˜๋ ค๋ฉด --prefix-length ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์ƒ๋žตํ•˜๋ฉดGoogle Cloud ๊ฐ€ VPC ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      ๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” ํ”„๋ฆฌํ”ฝ์Šค ๊ธธ์ด๊ฐ€ 16๋น„ํŠธ์ธ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

          gcloud compute addresses create RESERVED_RANGE_NAME \
              --global \
              --purpose=VPC_PEERING \
              --prefix-length=16 \
              --description="DESCRIPTION" \
              --network=VPC_NETWORK

    ๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” default VPC ๋„คํŠธ์›Œํฌ์˜ VM ์ธ์Šคํ„ด์Šค๊ฐ€ ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ์ง€์›ํ•˜๋Š” Google ์„œ๋น„์Šค์— ๋ฌธ์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก Google์— ๋Œ€ํ•œ ๋น„๊ณต๊ฐœ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

        gcloud compute addresses create google-managed-services-default \
            --global \
            --purpose=VPC_PEERING \
            --prefix-length=16 \
            --description="peering range for Google" \
            --network=default
  3. gcloud services vpc-peerings connect ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๊ณต๊ฐœ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

        gcloud services vpc-peerings connect \
            --service=servicenetworking.googleapis.com \
            --ranges=RESERVED_RANGE_NAME \
            --network=VPC_NETWORK

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • RESERVED_RANGE_NAME: ์ƒ์„ฑํ•œ ํ• ๋‹น๋œ IP ์ฃผ์†Œ ๋ฒ”์œ„์˜ ์ด๋ฆ„

    • VPC_NETWORK: VPC ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    ์ด ๋ช…๋ น์–ด๋Š” ์žฅ๊ธฐ ์‹คํ–‰ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ณ  ์ž‘์—… ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  4. ์ž‘์—…์ด ์„ฑ๊ณตํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

        gcloud services vpc-peerings operations describe
        --name=OPERATION_NAME

    OPERATION_NAME์„ ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋ฐ˜ํ™˜๋œ ์ž‘์—… ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

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