يوضح هذا الدليل كيفية استخدام Azure Private Link لتوفير اتصال خاص عبر شبكة افتراضية بين Azure (بما في ذلك الخدمات المملوكة للعملاء وخدمات Microsoft Partner) وClickHouse Cloud. ويُبسّط Azure Private Link بنية الشبكة ويؤمّن الاتصال بين نقاط النهاية في Azure من خلال منع تعرّض البيانات للإنترنت العام.
يدعم Azure Private Link فقط الاتصالات التي تبدأ من Azure VNet لديك إلى ClickHouse Cloud. ولا يمكن استخدامه للاتصالات التي تبدأ من ClickHouse Cloud إلى الخدمات الموجودة في VNet لديك، مثل قاعدة بيانات خاصة.
تدعم Azure الاتصال عبر المناطق المختلفة من خلال Private Link. يتيح لك ذلك إنشاء اتصالات بين شبكات VNet الموجودة في مناطق مختلفة نُشرت فيها خدمات ClickHouse لديك.
قد تُفرض رسوم إضافية على حركة المرور بين المناطق. يُرجى مراجعة أحدث وثائق Azure.
يُرجى إكمال الخطوات التالية لتمكين Azure Private Link:
- احصل على الاسم المستعار لاتصال Azure في Private Link
- أنشئ Private Endpoint في Azure
- أضف معرّف مورد Private Endpoint إلى المؤسسة في ClickHouse Cloud
- أضف معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بخدماتك
- الوصول إلى خدمة ClickHouse Cloud الخاصة بك باستخدام Private Link
انتقلت ClickHouse Cloud Azure PrivateLink من استخدام عوامل تصفية resourceGUID إلى عوامل تصفية Resource ID. ولا يزال بإمكانك استخدام resourceGUID لأنه متوافق مع الإصدارات السابقة، لكننا نوصي بالانتقال إلى عوامل تصفية Resource ID. للترحيل، ما عليك سوى إنشاء endpoint جديد باستخدام Resource ID، وربطه بالخدمة، ثم إزالة endpoint القديم المستند إلى resourceGUID.
يحاول ClickHouse تجميع خدماتك لإعادة استخدام خدمة Private Link المنشورة نفسها داخل منطقة Azure. ومع ذلك، لا يضمن هذا التجميع دائمًا، خصوصًا إذا كانت خدماتك موزعة على عدة مؤسسات في ClickHouse.
إذا كان Private Link مُعدًّا بالفعل لخدمات أخرى في مؤسسة ClickHouse الخاصة بك، فغالبًا يمكنك تخطي معظم الخطوات بفضل هذا التجميع والانتقال مباشرةً إلى الخطوة الأخيرة: إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بخدماتك.
يمكنك العثور على أمثلة Terraform في مستودع Terraform Provider الخاص بـ ClickHouse.
الحصول على الاسم المستعار لاتصال Azure الخاص بـ Private Link
الخيار 1: وحدة تحكم ClickHouse Cloud
في وحدة تحكم ClickHouse Cloud، افتح الخدمة التي تريد الاتصال بها عبر PrivateLink، ثم افتح قائمة Settings. انقر على زر إعداد Private Endpoint. دوّن Service name وDNS name، إذ سيُستخدمان عند إعداد Private Link.
دوّن Service name وDNS name، فستحتاج إليهما في الخطوات التالية.
قبل البدء، ستحتاج إلى مفتاح API لـ ClickHouse Cloud. يمكنك إنشاء مفتاح جديد أو استخدام مفتاح حالي.
بمجرد حصولك على مفتاح API، عيّن متغيرات البيئة التالية قبل تشغيل أي أوامر:
احصل على INSTANCE_ID الخاص بمثيل ClickHouse من خلال التصفية حسب المنطقة والمزوّد واسم الخدمة:
احصل على الاسم المستعار لاتصال Azure واسم مضيف DNS الخاص بـ Private Link:
دوّن قيمة endpointServiceId. ستستخدمها في الخطوة التالية.
إنشاء Private Endpoint في Azure
يغطي هذا القسم التفاصيل الخاصة بـ ClickHouse لإعداد ClickHouse عبر Azure Private Link. تُقدَّم الخطوات الخاصة بـ Azure كمرجع لإرشادك إلى المواضع التي ينبغي الرجوع إليها، لكنها قد تتغير بمرور الوقت دون إشعار من موفّر الخدمة السحابية Azure. يُرجى ضبط إعدادات Azure بما يتناسب مع حالة الاستخدام الخاصة بك.يرجى ملاحظة أن ClickHouse غير مسؤول عن إعداد Azure private endpoints المطلوبة وسجلات DNS.إذا واجهت أي مشكلات تتعلق بمهام إعداد Azure، فتواصل مباشرةً مع Azure Support.
في هذا القسم، سننشئ Private Endpoint في Azure. يمكنك استخدام Azure Portal أو Terraform.
الخيار 1: استخدام Azure Portal لإنشاء نقطة نهاية خاصة في Azure
في Azure Portal، افتح Private Link Center → Private Endpoints.
افتح مربع حوار إنشاء Private Endpoint بالنقر على الزر Create.
في الشاشة التالية، حدِّد الخيارات التالية:
- Subscription / Resource Group: يُرجى اختيار اشتراك Azure ومجموعة الموارد الخاصة بـ Private Endpoint.
- Name: عيّن اسمًا لـ Private Endpoint.
- Region: اختر المنطقة التي توجد فيها شبكة VNet المنشورة والتي ستتصل بـ ClickHouse Cloud عبر Private Link.
بعد إكمال الخطوات أعلاه، انقر على الزر Next: Resource.
حدِّد الخيار Connect to an Azure resource by resource ID or alias.
بالنسبة إلى Resource ID or alias، استخدم endpointServiceId الذي حصلت عليه من خطوة الحصول على الاسم المستعار لاتصال Azure لـ Private Link.
انقر على الزر Next: Virtual Network.
- Virtual network: اختر شبكة VNet التي تريد ربطها بـ ClickHouse Cloud باستخدام Private Link
- Subnet: اختر الشبكة الفرعية التي سيتم فيها إنشاء Private Endpoint
اختياري:
- Application security group: يمكنك إرفاق ASG بـ Private Endpoint واستخدامه في Network Security Groups لتصفية حركة مرور الشبكة من وإلى Private Endpoint.
انقر على الزر Next: DNS.
انقر على الزر Next: Tags.
اختياريًا، يمكنك إرفاق tags بـ Private Endpoint.
انقر على الزر Next: Review + create.
أخيرًا، انقر على الزر Create.
ستكون Connection status الخاصة بـ Private Endpoint التي تم إنشاؤها في حالة Pending. وستتغير إلى حالة Approved بمجرد إضافة Private Endpoint هذه إلى allow list الخاصة بالخدمة.
افتح network interface المرتبطة بـ Private Endpoint وانسخ Private IPv4 address (10.0.0.4 في هذا المثال)، إذ ستحتاج إلى هذه المعلومة في الخطوات التالية.
استخدم القالب أدناه لإنشاء Private Endpoint باستخدام Terraform:
الحصول على معرّف مورد Private Endpoint
لاستخدام Private Link، تحتاج إلى إضافة Resource ID لاتصال Private Endpoint إلى قائمة السماح الخاصة بالـ service.
يظهر معرّف مورد Private Endpoint في Azure Portal. افتح Private Endpoint الذي تم إنشاؤه في الخطوة السابقة وانقر على JSON View:
ضمن properties، ابحث عن الحقل id وانسخ هذه القيمة:
الطريقة المفضلة: استخدام Resource ID
الطريقة القديمة: استخدام resourceGUID
لا يزال بإمكانك استخدام resourceGUID للحفاظ على backward compatibility. ابحث عن الحقل resourceGuid وانسخ هذه القيمة:
إعداد DNS لـ Private Link
ستحتاج إلى إنشاء منطقة Private DNS (${location_code}.privatelink.azure.clickhouse.cloud) وربطها بـ VNet للوصول إلى الموارد عبر Private Link.
الخيار 1: باستخدام Azure Portal
يُرجى اتباع هذا الدليل لإنشاء منطقة Azure private DNS باستخدام Azure Portal.
الخيار 2: باستخدام Terraform
استخدم قالب Terraform التالي لإنشاء منطقة Private DNS:
إنشاء سجل DNS من نوع wildcard
أنشئ سجل wildcard ووجّهه إلى Private Endpoint الخاص بك:
الخيار 1: باستخدام Azure Portal
- افتح مجموعة الموارد
MyAzureResourceGroup وحدد منطقة Private DNS ${region_code}.privatelink.azure.clickhouse.cloud.
- حدد + Record set.
- في Name، اكتب
*.
- في IP Address، اكتب عنوان IP الظاهر لـ Private Endpoint.
- حدد OK.
الخيار 2: باستخدام Terraform
استخدم قالب Terraform التالي لإنشاء سجل DNS من نوع wildcard:
لربط منطقة Private DNS بشبكة افتراضية، ستحتاج إلى إنشاء رابط شبكة افتراضية.
الخيار 1: باستخدام Azure Portal
يُرجى اتباع هذا الدليل لربط الشبكة الافتراضية بـ منطقة Private DNS الخاصة بك.
الخيار 2: باستخدام Terraform
توجد عدة طرق لتهيئة DNS. يُرجى إعداد DNS وفقًا لحالة الاستخدام الخاصة بك.
تحتاج إلى توجيه “DNS name”، المأخوذ من خطوة الحصول على الاسم المستعار لاتصال Azure لـ Private Link، إلى عنوان IP الخاص بـ Private Endpoint. ويضمن ذلك أن تتمكن الخدمات/المكونات داخل VPC/الشبكة لديك من حلّه بشكل صحيح.
يجب توجيه النطاق xxxxxxxxxx.westus3.privatelink.azure.clickhouse.cloud إلى عنوان IP الخاص بـ Private Endpoint. (10.0.0.4 في هذا المثال).
أضِف معرّف مورد Private Endpoint إلى المؤسسة الخاصة بك في ClickHouse Cloud
الخيار 1: وحدة تحكم ClickHouse Cloud
لإضافة نقطة نهاية إلى المؤسسة، انتقل إلى خطوة إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بخدماتك. تؤدي إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بالخدمات باستخدام وحدة تحكم ClickHouse Cloud إلى إضافته تلقائيًا إلى المؤسسة.
لإزالة نقطة نهاية، افتح Organization details -> Private Endpoints وانقر على زر الحذف لإزالة نقطة النهاية.
عيّن متغيرات البيئة التالية قبل تنفيذ أي أوامر:
عيّن متغير البيئة ENDPOINT_ID باستخدام البيانات الواردة في خطوة الحصول على معرّف مورد نقطة النهاية الخاصة.
شغّل الأمر التالي لإضافة Private Endpoint:
يمكنك أيضًا تشغيل الأمر التالي لإزالة Private Endpoint:
بعد إضافة Private Endpoint أو إزالته، نفِّذ الأمر التالي لتطبيق التغيير على مؤسستك:
أضِف معرّف مورد Private Endpoint إلى قائمة السماح لخدماتك
افتراضيًا، لا تكون خدمة ClickHouse Cloud متاحة عبر اتصال Private Link حتى إذا تمت الموافقة على اتصال Private Link وإنشاؤه. يجب عليك إضافة معرّف مورد Private Endpoint صراحةً لكل خدمة تريد إتاحتها باستخدام Private Link.
الخيار 1: وحدة تحكم ClickHouse Cloud
في وحدة تحكم ClickHouse Cloud، افتح الخدمة التي تريد الاتصال بها عبر PrivateLink، ثم انتقل إلى الإعدادات. أدخل Resource ID الذي حصلت عليه من الخطوة السابقة.
إذا كنت تريد السماح بالوصول من اتصال PrivateLink موجود، فاستخدم القائمة المنسدلة الخاصة بنقطة النهاية الموجودة.
عيّن متغيرات البيئة التالية قبل تنفيذ أي أوامر:
نفّذ هذا لكل خدمة يجب أن تكون متاحة عبر Private Link.
شغّل الأمر التالي لإضافة Private Endpoint إلى قائمة السماح الخاصة بالخدمات:
يمكنك أيضًا تنفيذ الأمر التالي لإزالة Private Endpoint من قائمة السماح الخاصة بالخدمات:
بعد إضافة Private Endpoint إلى قائمة السماح للخدمات أو إزالته منها، شغّل الأمر التالي لتطبيق هذا التغيير على مؤسستك:
الوصول إلى خدمة ClickHouse Cloud الخاصة بك باستخدام Private Link
تتضمن كل خدمة مفعَّل لها Private Link نقطة نهاية عامة وأخرى خاصة. وللاتصال باستخدام Private Link، تحتاج إلى استخدام نقطة نهاية خاصة، وستكون هذه هي privateDnsHostnameAPI أو اسم DNSconsole المأخوذ من الحصول على الاسم المستعار لاتصال Azure لـ Private Link.
الحصول على اسم مضيف DNS الخاص
الخيار 1: وحدة تحكم ClickHouse Cloud
في وحدة تحكم ClickHouse Cloud، انتقل إلى الإعدادات. انقر على الزر إعداد Private Endpoint. في اللوحة الجانبية التي تفتح، انسخ اسم DNS.
عيّن متغيرات البيئة التالية قبل تشغيل أي أوامر:
نفّذ الأمر التالي:
من المفترض أن تتلقى استجابةً مشابهة لما يلي:
في هذا المثال، سيُوجَّه الاتصال باسم المضيف xxxxxxx.region_code.privatelink.azure.clickhouse.cloud عبر Private Link. في المقابل، سيُوجَّه xxxxxxx.region_code.azure.clickhouse.cloud عبر الإنترنت.
استخدم privateDnsHostname للاتصال بخدمة ClickHouse Cloud الخاصة بك عبر Private Link.
شغّل الأمر التالي:
حيث يشير “اسم DNS” إلى privateDnsHostnameAPI أو DNS nameconsole من الحصول على الاسم المستعار لاتصال Azure لـ Private Link
يُفترض أن تتلقى الاستجابة التالية:
أعاد النظير تعيين الاتصال
على الأرجح، لم تتم إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بالخدمة. راجع خطوة إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بخدماتك.
Private Endpoint في حالة انتظار
على الأرجح، لم تتم إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بالخدمة. ارجع إلى خطوة إضافة معرّف مورد Private Endpoint إلى قائمة السماح الخاصة بخدماتك.
إذا واجهت مشكلات عند الاتصال باستخدام Private Link، فتحقّق من إمكانية الاتصال باستخدام openssl. تأكّد من أن حالة نقطة نهاية Private Link هي Accepted.
يُفترض أن يتمكّن OpenSSL من الاتصال (ابحث عن CONNECTED في المخرجات). ومن المتوقع ظهور errno=104.
التحقق من عوامل تصفية نقطة النهاية الخاصة
عيّن متغيرات البيئة التالية قبل تشغيل أي أوامر:
شغّل الأمر التالي للتحقق من مرشحات Private Endpoint:
لمزيد من المعلومات حول Azure Private Link، يُرجى زيارة azure.microsoft.com/en-us/products/private-link.