اتصال به Cloud SQL: IP عمومی و شبکه های مجاز

۱. مقدمه

آخرین به‌روزرسانی: 2020-05-04

فکر کردن به ارتباط

انواع مختلفی از برنامه‌ها و چارچوب‌ها وجود دارد. در این آزمایشگاه کد، ما اتصال به Cloud SQL را از هر مکانی پوشش خواهیم داد. قابلیت اتصال با تأیید IP های مجاز برای اتصال صریح فعال می‌شود. مسلماً این گزینه، کم‌خطرترین گزینه برای اتصال به پایگاه داده Cloud SQL است، اما همچنین ساده‌ترین گزینه برای راه‌اندازی و شروع استفاده است.

گاهی اوقات انجام این کار در محیط عملیاتی ضروری است، اما اگر می‌توانید از انجام این کار اجتناب کنید، باید یک جایگزین امن‌تر (مثلاً استفاده از Cloud SQL Proxy ) را انتخاب کنید. این تنظیمات برای توسعه و آزمایش ایده‌آل‌ترین حالت است.

آنچه خواهید ساخت

این آزمایشگاه کد بسیار مینیمالیستی است. ایده این است که شما را با جزئیات کامل قطعه اتصال آشنا کند، بدون اینکه خیلی به خود برنامه فکر کنید. در یک دنیای ایده‌آل، اتصال به Cloud SQL درست مانند اتصال به هر نمونه دیگری از پایگاه داده SQL است، بنابراین باید بتوانید آنچه را که در این آزمایشگاه کد ایجاد می‌کنید، بردارید و آن را در هر برنامه کاربردی اعمال کنید.

این دستورالعمل‌ها شامل آموزش انجام کارها در کنسول GCP و همچنین معادل‌های دستور gcloud برای استفاده در CLI یا اتوماسیون خواهد بود.

مراحل فردی عبارتند از:

  • یک نمونه Cloud SQL ایجاد کنید (این آموزش از Postgres استفاده می‌کند، اما برای MySQL یا SQL Server نیز به طور مشابه کار می‌کند) و IP های خاصی را که مجاز به اتصال به آن هستند، مجاز کنید.

آنچه نیاز دارید

  • یک حساب GCP که مجوزهای لازم برای فعال کردن APIها و ایجاد سرویس‌ها را در آن دارید
  • کلاینت Postgres نصب شده برای تأیید اتصال (یا کلاینت MySQL اگر می‌خواهید به جای Postgres از MySQL استفاده کنید)

۲. ایجاد نمونه Cloud SQL

Cloud SQL پایگاه داده رابطه‌ای مدیریت‌شده‌ی ما است. این پایگاه داده از MySQL، PostgreSQL و SQL Server پشتیبانی می‌کند. برای این آزمایشگاه کد، ما یک پایگاه داده Postgres ایجاد خواهیم کرد، اما دستورالعمل‌ها برای هر سه مشابه هستند.

روی کنسول

به صفحه Cloud SQL بروید و روی آن کلیک کنید ۲۴۱۸۳۶b315e11bf5.png دکمه

همانطور که اشاره کردم، بیشتر این codelab برای هر نوع SQL عمومی است، اما برای این codelab، PostgreSQL را انتخاب کنید.

  1. به نمونه خود یک شناسه (ID) بدهید
  2. منطقه‌ای نزدیک به هر کجا که هستید را انتخاب کنید
  3. یک رمز عبور برای کاربر پیش‌فرض وارد کنید (نام کاربری، نام پیش‌فرض پایگاه داده انتخاب شده خواهد بود، مثلاً root برای MySQL یا postgres برای PostgreSQL)
  4. به پایین بروید و روی show configuration options کلیک کنید.
  5. بخش Connectivity را گسترش دهید
  6. تأیید کنید که Public IP تیک خورده و Private IP تیک نخورده باشد.
  7. کلیک کنید 883b32ec2734de01.png دکمه
  8. آدرس IP جایی که از آن متصل می‌شوید را پیدا کنید. ساده‌ترین راه این است که عبارت "What’s my IP" را در گوگل جستجو کنید و نتایج جستجو، آدرس IP عمومی شما را نشان می‌دهد.
  1. مشخصات IP را در فیلد شبکه وارد کنید، در صورت تمایل نامی برای آن انتخاب کنید و در کادر New Network روی Done کلیک کنید.
  2. به پایین بروید و روی ایجاد کلیک کنید

این نمونه معمولاً چند دقیقه طول می‌کشد تا شروع شود.

پس از ایجاد نمونه، روی آن در لیست کلیک کنید و در صفحه مرور کلی، زیر عنوان « Connect to this instance ، public IP address ذکر شده در آنجا را کپی کنید. این آدرس تا زمانی که نمونه به طور کامل ایجاد نشود، در آنجا وجود نخواهد داشت، حتی اگر بتوانید قبل از ایجاد کامل نمونه، روی جزئیات کلیک کنید.

استفاده از جی‌کلاود

ابتدا، باید آدرس IP مورد نظر خود را برای اتصال به نمونه Cloud SQL دریافت کنید. ساده‌ترین راه برای انجام این کار، باز کردن یک مرورگر و جستجوی عبارت "What’s my IP" است و نتایج جستجو، آدرس IP عمومی شما را نشان می‌دهد. اگر نمی‌توانید مرورگری را که از آن این کار را انجام می‌دهید باز کنید، می‌توانید از ابزاری مانند dig استفاده کنید.

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

شما باید منطقه‌ای را برای نمونه Cloud SQL خود که به محل فعلی شما نزدیک‌تر است، مشخص کنید. می‌توانید لیست مناطق را با اجرای دستور زیر مشاهده کنید:

gcloud sql tiers list

هر لایه فقط در مناطق خاصی در دسترس است. برای بخش gcloud آموزش، ما فقط یک نمونه کوچک ایجاد می‌کنیم، بنابراین می‌توانید با اجرای دستور زیر (تا زمانی که grep را نصب کرده باشید) مناطق موجود برای این لایه را پیدا کنید:

gcloud sql tiers list | grep db-f1-micro

دستور ایجاد خودِ نمونه به این شکل خواهد بود (فراموش نکنید که <AUTHORIZED_IP> را با IP که از مرورگر یا dig دریافت کرده‌اید، و <REGION> را با IP نزدیک به خودتان و یک رمز عبور برای کاربر root 'postgres' جایگزین کنید):

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

این کار چند دقیقه طول می‌کشد تا تکمیل شود.

پس از تکمیل، خروجی در CLI شامل PRIMARY_ADDRESS نمونه خواهد بود. آن را برای مرحله بعدی کپی کنید.

۳. اتصال و جمع‌بندی را آزمایش کنید

برای تأیید صحت راه‌اندازی نمونه، از روی دستگاهی که آدرس IP آن را وارد کرده‌اید، می‌توانید دستور زیر را در خط فرمان اجرا کنید:

psql "میزبان=<IP کپی شده از مرحله قبل> پورت=۵۴۳۲ sslmode=غیرفعال کردن کاربر=postgres"

سپس رمز عبور پیش‌فرض کاربر را که هنگام ایجاد نمونه Cloud SQL تنظیم کرده‌اید، مشخص کنید.

تبریک! اگر همه چیز خوب پیش رفته باشد، باید اعلان Postgres را داشته باشید و بتوانید دستورات را روی پایگاه داده خود اجرا کنید.

بعدش چی؟

به برخی از این آزمایشگاه‌های کد نگاهی بیندازید...

اسناد مرجع