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

1. مقدمه

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

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

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

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

چیزی که خواهی ساخت

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

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

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

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

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

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

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

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

روی کنسول

به صفحه Cloud SQL بروید و روی آن کلیک کنید 241836b315e11bf5.png دکمه

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

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

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

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

استفاده از gcloud

ابتدا باید آدرس IP مورد نظر خود را برای اتصال به نمونه Cloud SQL بگیرید. ساده ترین راه برای انجام این کار این است که یک مرورگر را باز کنید و عبارت "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 که از مرورگر یا دیگ دریافت کرده اید، و <REGION> را با یکی نزدیک به خود، و یک رمز عبور برای کاربر ریشه "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 نمونه را در لیست خواهد داشت. آن را برای مرحله بعدی کپی کنید.

3. اتصال و بسته بندی را تست کنید

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

psql "host=<IP کپی شده از مرحله قبل> port=5432 sslmode=disable user=postgres"

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

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

بعدش چی؟

برخی از این کدها را بررسی کنید...

اسناد مرجع