توزيع البنية الأساسية ل Linux وPostgreSQL
ترشدك هذه الوحدة خلال إنشاء موارد الحوسبة التي تستضيف تطبيقك داخل Azure.
هناك طرق متعددة لنشر البنية الأساسية في Azure، بما في ذلك مدخل Azure وAzure CLI وقوالب البنية الأساسية كتعلم برمجية (بما في ذلك Bicep وTerraform). في هذه الوحدة، يمكنك نشر قالب Bicep تم تكوينه مسبقا الذي يغلف موارد الحوسبة المطلوبة للتطبيق الخاص بك. الموارد الرئيسية هي:
- جهاز ظاهري يعمل بنظام Linux (Ubuntu 24.04 LTS)
- قاعدة بيانات Azure ل Postgres التي تشغل Postgres 16 أو أحدث
- هوية مدارة لتمكين الوصول الآمن من الجهاز الظاهري إلى قاعدة البيانات
- التحكم في الوصول استنادا إلى الدور، بما في ذلك أدوار الوصول إلى قاعدة البيانات كمسؤول، والأدوار الأكثر تقييدا للتطبيق نفسه
- شبكة ظاهرية لكل من الجهاز الظاهري وقاعدة البيانات
نظرا لأن هذا المثال هو حمل عمل تطوير/اختبار، ونريد الحفاظ على الأشياء فعالة من حيث التكلفة والأداء على حد سواء، اخترنا التكوين التالي لك:
الجهاز الظاهري هو D2s_v4 قياسي (اثنين من وحدات المعالجة المركزية الظاهرية، 8 غيغابايت من الذاكرة). يحتوي على Azure Premium SSD مع 3200 عملية إدخال/إخراج كحد أقصى في الثانية (IOPS) و128 غيغابايت من التخزين. يحتوي على قرص P10 128 غيغابايت Premium SSD مرفق مع 500 IOPS لقرص نظام التشغيل. يمكنك ترقية قرص نظام التشغيل لمطابقة IOPS الخاص بالجهاز الظاهري كما هو مطلوب.
قاعدة البيانات هي D2ds_v4 للأغراض العامة (اثنان من vCores، 8 غيغابايت من ذاكرة الوصول العشوائي) مع 3200 حد أقصى لعمليات الإدخال والإخراج في الثانية. يحتوي على قرص P10 128 غيغابايت Premium SSD مع 500 IOPS. يمكنك ترقية هذا القرص لمطابقة حوسبة IOPS كما هو مطلوب.
عند الانتهاء من الوحدة النمطية، يمكنك حذف هذه الموارد لتوفير التكاليف. ومع ذلك، يمكنك أيضا إيقاف تشغيل الجهاز الظاهري وقاعدة البيانات عندما لا تكون قيد الاستخدام لتوفير تكاليف الحساب ودفع ثمن التخزين الذي تستخدمه فقط. يمكنك أيضا توسيع نطاق حمل العمل هذا حسب الحاجة.
يستخدم قالب Bicep في هذه الوحدة النمطية الوحدات النمطية التي تم التحقق منها من Azure (AVM). AVM هي مبادرة لتوحيد وحدات البنية الأساسية كتعليمة برمجية. تحتفظ Microsoft بهذه الوحدات النمطية، وهي تغلف العديد من أفضل الممارسات لنشر الموارد في Azure.
تأكد من أن لديك اشتراك Azure وAzure CLI
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
تتطلب هذه الوحدة النمطية الإصدار 2.0.30 من Azure CLI أو أحدث. ابحث عن الإصدار باستخدام الأمر التالي:
az --version
إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
تسجيل الدخول إلى Azure باستخدام Azure CLI
لتشغيل الأوامر في Azure باستخدام Azure CLI، تحتاج إلى تسجيل الدخول أولا. سجل الدخول باستخدام az login الأمر :
az login
إنشاء مجموعة موارد
مجموعة الموارد هي حاوية للموارد ذات الصلة. يجب وضع كافة الموارد في مجموعة موارد. استخدم الأمر az group create لإنشاء مجموعة موارد:
az group create \
--name 240900-linux-postgres \
--location westus2
نشر قالب Bicep باستخدام Azure CLI
Bicep هي لغة خاصة بالمجال (DSL) تستخدم بناء الجملة التعريفي لنشر موارد Azure. في ملف Bicep، تقوم بتعريف البنية الأساسية التي تريد توزيعها في Azure. ثم يمكنك استخدام هذا الملف طوال دورة حياة التطوير لنشر البنية الأساسية الخاصة بك بشكل متكرر. تُنشر مواردك بطريقة متسقة.
ملف Bicep الذي تستخدمه لنشر موارد الحوسبة لهذه الوحدة موجود في deploy/vm-postgres.bicep GitHub repo. يحتوي على جهاز ظاهري وشبكة ظاهرية وهوية مدارة ومجموعة أمان شبكة (NSG) للجهاز الظاهري. يمكنك قراءة المزيد عن Bicep في ما هو Bicep؟.
استنساخ نموذج المستودع إلى جهازك المحلي:
git clone https://github.com/Azure-Samples/linux-postgres-migration.gitانتقل إلى
linux-postgres-migrationالدليل:cd linux-postgres-migrationانشر قالب Bicep:
az deployment group create \ --resource-group 240900-linux-postgres \ --template-file deploy/vm-postgres.bicep
عند الانتهاء من النشر، يؤكد إخراج JSON توزيع الموارد.
في الأقسام التالية، ستقوم بتكوين واستكشاف أدوار التحكم في الوصول استنادا إلى الدور وقواعد أمان الشبكة على البنية الأساسية المنشورة باستخدام مدخل Microsoft Azure. عند استخدام مدخل Microsoft Azure، يمكنك ترميز الأدوار والقواعد في قالب Bicep. يوفر مدخل Microsoft Azure واجهة مرئية تسهل فهم العلاقات بين الموارد والأذونات التي تم تعيينها لها.
افتح مجموعة الموارد في مدخل Microsoft Azure
افتح مدخل Azure.
في قائمة الخدمة، حدد Resource groups.
في جزء Resource groups ، حدد مجموعة
240900-linux-postgresالموارد .
في الجزء العلوي الأيمن من الجزء، تعرض منطقة Deployments حالة نشر قالب Bicep. عند نجاح النشر، يظهر Succeeded.
عرض مجموعة أمان شبكة الجهاز الظاهري
حدد الجهاز الظاهري،
vm-1.في قسم Networking ، حدد Network settings.
تظهر إعدادات الشبكة أن مجموعة أمان الشبكة (240900-linux-postgres-nsg) مرفقة بنفس الشبكة الفرعية للشبكة الظاهرية (240900-linux-postgres-vnet) مثل الجهاز الظاهري.
تكون NSG مرئية أيضا داخل مجموعة الموارد. يحتوي على مجموعة من قواعد الأمان الواردة والصادرة التي تتحكم في نسبة استخدام الشبكة من وإلى الجهاز الظاهري.
العودة إلى مجموعة الموارد
في أعلى الصفحة، حدد ارتباط التنقل للعودة إلى مجموعة الموارد (Home > Resource groups > 240900-linux-postgres).
لاحظ أن 240900-linux-postgres-identity الهوية المدارة المعينة من قبل المستخدم مدرجة في مجموعة الموارد.
يمكنك معرفة المزيد حول الهويات المدارة المعينة من قبل النظام والمخصصة من قبل المستخدم في ما هي الهويات المدارة لموارد Azure؟.
إضافة قاعدة أمان واردة إلى مجموعة أمان الشبكة
أضف قاعدة أمان واردة إلى NSG للسماح بحركة مرور SSH من عنوان IP الحالي إلى الجهاز الظاهري.
في سيناريو الإنتاج، غالبا ما تستخدم الوصول في الوقت المناسب أو Azure Bastion أو VPN (مثل Azure أو شبكة VPN) لتقييد الوصول إلى جهازك الظاهري.
حدد
240900-linux-postgres-nsg.حدد Settings>Inbound security rules.
حدد إضافة.
ضمن المصدر، حدد عنوان IP الخاص بي.
ضمن Service، حدد SSH.
حدد إضافة.
عرض المسؤول عن خادم Azure Database for PostgreSQL المرن
ابحث عن قاعدة بيانات Azure لخادم PostgreSQL المرن وحدده. يسمى
postgres-xxxxx، حيثxxxxxهو سلسلة فريدة يعرفها قالب Bicep. تظل السلسلة متناسقة عبر عمليات التوزيع إلى الاشتراك ومجموعة الموارد.حدد >.
بالنسبة لهذا السيناريو، أنت تستخدم مصادقة Microsoft Entra فقط.
240900-linux-postgres-identity يتم سرد الهوية المدارة المعينة من قبل المستخدم ضمن مسؤولي Microsoft Entra.
240900-linux-postgres-identity الهوية المدارة هي حاليا المسؤول الوحيد للخادم. يمكنك اختياريا إضافة حساب المستخدم الخاص بك كمسؤول. ولكن لهذا السيناريو، يمكنك استخدام الهوية المدارة الموجودة بالفعل.
في قسم قادم، يمكنك استخدام الهوية من الجهاز الظاهري لإدارة الخادم عبر Azure CLI. يمكنك أيضا استخدام هذه الهوية لتوفير الوصول إلى الخادم للتطبيق الخاص بك.
في سيناريو الإنتاج، من المحتمل أن تستخدم مجموعة من الهويات المدارة ومعرف Microsoft Entra وRBAC الدقيق لتمكين حمل عمل التطبيق الخاص بك من الوصول إلى البيانات وإدارة الموارد في Azure بشكل آمن. سوف تتبع مبدأ الامتياز الأقل.
اقرأ المزيد حول هذه السيناريوهات في مصادقة Microsoft Entra مع قاعدة بيانات Azure ل PostgreSQL - الخادمالمرن واستخدم معرف Microsoft Entra للمصادقة مع قاعدة بيانات Azure ل PostgreSQL - الخادم المرن.
مراجعة قاعدة بيانات Azure لقواعد جدار حماية خادم PostgreSQL المرن
حدد Settings>Networking.
إذا كنت تدير الخادم من جهازك المحلي، بدلا من الجهاز الظاهري، فستحتاج إلى إضافة عنوان IP الخاص بك إلى قواعد جدار الحماية.
يمكنك إنشاء قاعدة جدار حماية لعنوان IP الحالي عن طريق تحديد Add current client IP address (xxx.xxx.xxx.xxx)>Save. ستسمح لك هذه القاعدة بالوصول إلى خادم التطوير/الاختبار باستخدام أدوات على جهازك المحلي. ولكن نظرا لأنك تستخدم جهازا ظاهريا للوصول إلى قاعدة البيانات، فلن تنشئ قاعدة جدار حماية في الوقت الحالي.
في الإنتاج، من المحتمل أن تعزل هذا الخادم عن الإنترنت العام بالكامل عن طريق مسح الخيار السماح بالوصول العام إلى هذا المورد عبر الإنترنت باستخدام خيار عنوان IP عام.
على عكس الجهاز الظاهري، لم تقم بإقران Azure Database for PostgreSQL بأي شبكة ظاهرية. يمكنك الاحتفاظ بخيار الوصول إلى قاعدة بيانات Azure ل PostgreSQL عبر الإنترنت العام، وهو أمر مفيد لسيناريوهات التطوير/الاختبار.
لتوفير كل من الأمان والمرونة، يمكنك تمكين الوصول من الجهاز الظاهري عبر شبكته الظاهرية باستخدام نقطة نهاية خاصة. تسمح نقطة النهاية الخاصة للجهاز الظاهري بالوصول إلى قاعدة البيانات دون تعريضها للإنترنت العام. اقرأ المزيد حول نقاط النهاية الخاصة في قاعدة بيانات Azure ل PostgreSQL - شبكة الخادم المرن باستخدام Private Link.
هنا، تم إنشاء نقطة النهاية الخاصة لك باستخدام Bicep.
مراجعة تعيينات الدور للهوية المدارة المعينة من قبل النظام للجهاز الظاهري
ارجع إلى
240900-linux-postgresمجموعة الموارد وحددvm-1.في قائمة الخدمة، حدد Security>Identity.
هنا، يمكنك التأكد من إرفاق الهوية المدارة المعينة من قبل النظام إلى الجهاز الظاهري.
ضمن تعيين النظام، حدد تعيينات دور Azure.
هنا، يمكنك التأكد من تعيين دور القارئ إلى الهوية المدارة المعينة من قبل النظام. يتم تحديد نطاق
240900-linux-postgresالدور لمجموعة الموارد.
تسمح لك الأذونات الموجودة في هذه الهوية باستخدام Azure CLI داخل الجهاز الظاهري لسرد الموارد في مجموعة الموارد. مع هذه القدرة، ليس عليك تضمين تفاصيل موارد محددة للتعليمات البرمجية المضمنة في البرامج النصية الخاصة بك.
في مرحلة لاحقة، ستقوم بتعيين دور إضافي للهوية المدارة للجهاز الظاهري بحيث يمكن للجهاز الظاهري الوصول مباشرة إلى حساب Azure Blob Storage.
بعد ذلك، ستستكشف البنية الأساسية المنشورة وتكونها.
الموارد
- الوحدات النمطية التي تم التحقق منها من Azure
- تثبيت Azure CLI
- إنشاء مجموعة موارد باستخدام Azure CLI
- Azure RBAC
- الهوية المُدارة في Azure
- ما هو Bicep؟
- ما الهويات المُدارة لموارد Azure؟
- تمكين الوصول في الوقت المناسب على الأجهزة الظاهرية
- ما هو Azure Bastion؟
- مصادقة Microsoft Entra مع قاعدة بيانات Azure ل PostgreSQL - خادم مرن
- استخدام معرف Microsoft Entra للمصادقة مع قاعدة بيانات Azure ل PostgreSQL - الخادم المرن
- Azure Database for PostgreSQL - شبكة الخادم المرن مع Private Link