پیشنیازهای این آموزش
- موتور و نسخه سازگار با برنامه را مشخص کنید و درباره ساخت مستقل یا اتصال به پروژه تصمیم بگیرید.
- پلن، ظرفیت دیسک و هزینه همه منابع را بررسی کنید.
آموزش مرحلهبهمرحله
- از «دیتابیسها» ساخت دیتابیس جدید را باز کنید؛ برای دیتابیس مستقل ناحیه و برای اتصال، پروژه مقصد را انتخاب کنید.
- موتور، نسخه، پلن و اندازه دیسک را انتخاب و خلاصه هزینه را بررسی کنید.
- ساخت را تأیید کنید و آمادهشدن سرویس را دنبال کنید.
- از بخش اتصال همان دیتابیس، اطلاعات اتصال را دریافت و در متغیر امن برنامه ثبت کنید.
- یک خواندن و نوشتن آزمایشی انجام دهید و برنامه بکاپ را تنظیم کنید.
توضیحات تکمیلی
ساخت همراه پروژه
در بخش «منابع موردنیاز اپلیکیشن» دیتابیس را فعال و موتور، نسخه پایدار، اندازه منابع، دیسک و حجم را انتخاب کنید. همانجا بین پرداخت ماهانه و PAYG ساعتی انتخاب میکنید و مبلغ لازم پیش از استقرار دیده میشود. WordPress، MySQL و دیسکهای لازم را اجباری و خودکار تنظیم میکند؛ n8n نیز بدون دیسک پایدار قابل استقرار نیست.
ساخت برای پروژه موجود
از «دیتابیسها ← دیتابیس جدید» وارد صفحه مستقل ساخت شوید و پروژه، روش پرداخت، موتور، نسخه، اندازه منابع، نوع دیسک و حجم را انتخاب کنید. دیتابیس در همان کلاستر و namespace پروژه ساخته میشود.
قیمت و پرداخت
قیمت دیتابیس از منابع پلن و حجم دیسک تشکیل میشود. در حالت ماهانه مبلغ کامل ابتدای دوره کسر میشود؛ در PAYG نرخ ساعتی نمایش داده میشود، برای شروع اعتبار یک ساعت لازم است و هزینهٔ هر ساعت پیش از شروع آن از کیف پول کم میشود.
اتصال خودکار
پاستا اطلاعات اتصال را به اپلیکیشن تزریق و یک استقرار تازه آغاز میکند. برای PostgreSQL، MySQL و MongoDB متغیر DATABASE_URL و متغیرهای اختصاصی موتور؛ برای Redis متغیر REDIS_URL در دسترس است.
مدیریت و مشخصات اتصال
در فهرست دیتابیسها بخش «مدیریت دیتابیس» را باز کنید و «نمایش مشخصات اتصال» را بزنید تا Host، Port، نام دیتابیس، Username، Password، URL و همه متغیرهای تزریقشده را ببینید و کپی کنید. ابزار مدیریت و بکاپ نیز در همین بخش قرار دارند. مشاهده Credential در Audit ثبت میشود؛ آن را داخل کد یا Git قرار ندهید.
چند دیتابیس و چند کاربر
در «مدیریت دیتابیس ← دیتابیسها و کاربران» برای هر بخش اپلیکیشن یک نام دیتابیس و کاربر مستقل بسازید. پاستا رمز امن تولید میکند و دسترسی کاربر را فقط به همان دیتابیس میدهد. میتوانید مشخصات را با ثبت Audit ببینید، رمز را بچرخانید یا دسترسی غیراصلی را حذف کنید.
اتصال یککلیکی به پروژه
کنار هر Credential پروژهای در همان ناحیه را انتخاب و «اتصال به پروژه» را بزنید. اگر پروژه اتصال اصلی ندارد، DATABASE_URL خودکار ساخته میشود؛ اتصالهای بعدی متغیر مستقلی مانند ORDERS_URL میگیرند. Secret و استقرار پروژه بدون کپیکردن رمز بهروزرسانی میشوند و قطع اتصال نیز از همانجا انجام میشود.
شبکه خصوصی
اتصال داخلی دیتابیس بهصورت پیشفرض خصوصی است. برای برنامههای داخل پاستا از DATABASE_URL یا REDIS_URL استفاده کنید؛ WordPress از WORDPRESS_DB_* استفاده میکند. اتصال از خارج پاستا را باید جداگانه با ثبت IPهای مجاز فعال کنید.
phpMyAdmin
برای MySQL میتوانید phpMyAdmin را موقتاً روشن کنید. آدرس HTTPS جداگانه ساخته میشود؛ با Username و Password نمایشدادهشده وارد شوید و پس از پایان کار ابزار را خاموش کنید.
بکاپ دستی و خودکار
از کارت دیتابیس بکاپ فوری بگیرید یا برنامه روزانه/هفتگی را فعال کنید. بکاپهای تازه تمام دیتابیسها و کاربران همان سرویس را یکجا نگه میدارند. تعداد نسخههای قابل نگهداری بین ۱ تا ۳۰ است و نسخههای قدیمیتر خودکار از S3 حذف میشوند. اجرای بعدی در همان کارت نمایش داده میشود.
بازیابی بکاپ
برای PostgreSQL، MySQL و MongoDB کنار نسخه آماده «بازیابی» را بزنید و هشدار جایگزینی داده را تأیید کنید. پاستا اپلیکیشن را موقتاً متوقف، فایل بکاپ را وارد و پس از موفقیت یا شکست دوباره اجرا میکند. وضعیت عملیات خودکار تازه میشود. بازیابی Redis فعلاً از پنل انجام نمیشود.
داده پایدار
هر دیتابیس یک PVC مستقل دارد؛ Restart، Build و استقرار نسخه جدید اپلیکیشن داده را حذف نمیکند. نسخه Image و منابع هر پلن توسط مدیر همان کلاستر کنترل میشود.
تمدید و حذف
در کسری اعتبار هفت روز مهلت داده میشود و سپس StatefulSet متوقف ولی PVC حفظ میشود. با شارژ کیف پول تمدید و اجرا خودکار است. حذف دیتابیس، داده را برای همیشه پاک میکند و بازپرداخت ندارد.
نتیجه را چگونه بررسی کنید؟
برنامه به دیتابیس درست وصل میشود و داده آزمایشی را دوباره میخواند؛ موفقیت اتصال بهتنهایی صحت داده را ثابت نمیکند.
اگر به مشکل خوردید
- موتور، پورت، نام دیتابیس و اتصال برنامه به ناحیه درست را بررسی کنید.
- رشته اتصال و رمز را داخل تصویر عمومی یا مخزن کد قرار ندهید.
آموزشهای مرتبط
مدیریت PostgreSQL با pgAdmin
برای دیتابیس PostgreSQL فعال، از «دیتابیسها» وارد «مدیریت دیتابیس» و سپس «تنظیمات» شوید و pgAdmin را روشن کنید. «بازکردن pgAdmin» را بزنید؛ صفحه تا آمادهشدن پنل منتظر میماند و بدون واردکردن رمز وارد میشوید. راهاندازی اولیه کمی زمان میبرد.
اتصال به دیتابیس از قبل آماده است. با pgAdmin میتوانید جدولها و دادهها را مدیریت و SQL اجرا کنید. پنل با HTTPS باز میشود و روشنکردن آن بهتنهایی دسترسی بیرونی دیتابیس را فعال نمیکند. برای ورود مستقیم به آدرس پنل، نام ورود admin@paasta.cloud و رمز ورود، رمز اصلی دیتابیس در «مشخصات اتصال» است.
پس از پایان کار پنل را خاموش کنید. تنظیمات و فایلهای ذخیرهشده در پنل با خاموششدن، راهاندازی مجدد یا تغییر رمز اصلی پاک میشوند؛ دادههای دیتابیس حفظ میشوند.
اتصال به دیتابیس از خارج پاستا
برای PostgreSQL، MySQL، MongoDB و Redis میتوانید برنامهٔ خارج از پاستا یا ابزار مدیریت روی رایانهٔ خود را با اتصال رمزنگاریشده وصل کنید. این تنظیم را مالک یا مدیر فضای کاری مدیریت میکند.
- از «دیتابیسها ← مدیریت دیتابیس ← اتصال»، بخش «دسترسی بیرونی» را باز کنید.
- IP عمومی خروجی سرور برنامه یا اینترنت خود را وارد کنید؛ هر IP در یک خط و حداکثر ۲۰ IP مشخص. «افزودن IP فعلی من» برای رایانهٔ فعلی است. IP خصوصی و بازهٔ شبکه پذیرفته نمیشود.
- برای اتصال موقت، یک، دو، چهار یا هشت ساعت انتخاب کنید. برای برنامه با IP ثابت، «تا زمانی که لغو کنم» را انتخاب کنید و تنظیمات را ذخیره کنید.
- تا نمایش وضعیت «فعال» منتظر بمانید؛ آمادهشدن اولیهٔ MySQL ممکن است چند دقیقه طول بکشد. در صورت خطا، پیام همان بخش و «تلاش دوباره» را بررسی کنید.
- «نمایش مشخصات اتصال بیرونی» را بزنید و Host، Port، نام دیتابیس، نام کاربری و رمز را در تنظیمات امن برنامه یا کلاینت وارد کنید. از پورت نمایشدادهشده استفاده کنید و نام میزبان را با IP جایگزین نکنید.
در PostgreSQL از SSL با حالت verify-full استفاده کنید. برای MySQL، SSL را جداگانه با حالت VERIFY_IDENTITY فعال کنید. برای MongoDB رشتهٔ اتصال شامل TLS و directConnection است. برای Redis از rediss و بررسی گواهی استفاده کنید؛ در redis-cli گزینههای --tls و --sni با نام Host لازماند.
حذف یک IP یا «لغو دسترسی بیرونی» اتصالهای جدید را میبندد. اتصالهای از قبل برقرار را در برنامه یا کلاینت نیز ببندید. پایان مهلت دسترسی موقت و غیرفعالشدن دیتابیس باعث جمعشدن مسیر بیرونی میشود. مشخصات اتصال شامل رمز است و نباید در مخزن کد یا تصویر عمومی قرار بگیرد.
جایگزینی اتصال اصلی پروژه
مدیر فضای کاری میتواند اتصال خودکار پروژه به کاربر اصلی را با یک کاربر غیراصلی همان سرویس دیتابیس جایگزین کند. ابتدا دیتابیس منطقی و کاربر جدید را بسازید و مجوزهای SQL آن را بررسی کنید. نام دیتابیس و کاربر جدید باید با مشخصات اصلی فرق داشته باشد؛ غیراصلیبودن کاربر بهتنهایی مجوزهای آن را محدود نمیکند.
شناسهها را از بخش دسترسی دیتابیس یا دستور paasta database access DATABASE_ID --json بگیرید. درخواست احراز هویتشده را به POST /api/databases/DATABASE_ID/access بفرستید: action برابر replace_connection، connection_id شناسهٔ اتصال فعلی، expected_credential_id شناسهٔ کاربر اصلی، credential_id شناسهٔ کاربر جدید، environment_key نام متغیر اتصال و confirm برابر true.
پس از جایگزینی، فقط متغیر اتصال انتخابشده تزریق میشود. پروژه ممکن است دوباره راهاندازی شود؛ دیتابیس، دادهها و مشخصات اصلی لازم برای نگهداری و بکاپ حذف نمیشوند. نام متغیر موردنیاز برنامه را پیش از تأیید بررسی کنید. رمزهایی که دستی در کد یا تنظیمات گذاشتهاید و نگاشتهای محیطی Compose جداگانه باید اصلاح شوند.
پس از قطع پاسخ یا خطای راهاندازی، همان درخواست را با همان شناسهها تکرار کنید؛ اتصال و گزارش فعالیت تکراری ساخته نمیشود. پاسخ موفق بهتنهایی پایان جایگزینی نمونههای قدیمی را ثابت نمیکند: وضعیت پروژه، اتصال واقعی و نبود مشخصات اصلی در محیط اجرای برنامه را بررسی کنید. این عملیات هزینه یا سرویس تازهای ایجاد نمیکند.
رفع هشدار ظرفیت دیتابیس
هشدار مصرف فضای دیتابیس از ۹۰ درصد آغاز میشود و از ۹۵ درصد بحرانی است. قطع دریافت آمار به معنی رفع کمبود فضا نیست و هشدار قبلی را پاک نمیکند. پس از افزایش ظرفیت، نمونهٔ بعدی پایش باید مصرف کمتر از ۸۵ درصد را نشان دهد تا هشدار رفع شود؛ بین ۸۵ و ۹۰ درصد وضعیت قبلی حفظ میشود. فایلهای داخلی دیتابیس را حذف نکنید.