1. مقدمة
يتم نشر موازنة حمل HTTP(S) في Google Cloud على مستوى شبكة Google في نقاط التواجد (POP) التابعة لشركة Google حول العالم. تنتقل زيارات المستخدمين الموجّهة إلى موازنة حمل HTTP(S) إلى نقطة التواجد الأقرب إلى المستخدم، ثم تتم موازنة الحمل على شبكة Google العالمية إلى الخلفية الأقرب التي تتوفّر فيها سعة كافية.
Cloud Armor هو نظام رصد الهجمات الموزَّعة لحجب الخدمة وجدار حماية تطبيقات الويب (WAF) من Google. يرتبط Cloud Armor بشكل وثيق بموازن الحمل HTTP في Google Cloud، ويتيح لك فحص حركة البيانات الواردة بحثًا عن الطلبات غير المرغوب فيها. تتيح لك ميزة الحدّ من المعدّل في هذه الخدمة تقليل عدد الزيارات إلى موارد الخلفية استنادًا إلى حجم الطلبات، كما تمنع الزيارات غير المرغوب فيها من استهلاك الموارد على شبكة السحابة الافتراضية الخاصة (VPC).
في هذا التمرين العملي، ستضبط إعدادات موازن حمل HTTP مع خوادم خلفية شاملة، كما هو موضّح في الرسم البياني أدناه. بعد ذلك، ستُجري اختبار إجهاد على "موازنة الحمل" وتضيف سياسة تحديد المعدّل في Cloud Armor للحدّ من عدد الزيارات التي تصل إلى موارد الخلفية.

ما ستتعلمه
- كيفية إعداد جهاز موازنة حمل HTTP مع عمليات التحقّق من الصحة المناسبة
- كيفية إنشاء سياسة تحديد المعدّل في Cloud Armor
- كيفية التأكّد من أنّ سياسة الحدّ من المعدّل تحظر حركة البيانات عند إجراء اختبار التحمّل من جهاز افتراضي
المتطلبات
- أساسيات الشبكات ومعرفة بروتوكول HTTP
- معرفة أساسية بسطر الأوامر في نظامَي Unix وLinux
2. الإعداد والمتطلبات
إعداد البيئة بالسرعة التي تناسبك
- سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.



- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة من الأحرف لا تستخدمها Google APIs، ويمكنك تعديلها في أي وقت.
- يجب أن يكون رقم تعريف المشروع فريدًا في جميع مشاريع Google Cloud، كما أنّه غير قابل للتغيير (لا يمكن تغييره بعد ضبطه). تنشئ Cloud Console تلقائيًا سلسلة فريدة، ولا يهمّك عادةً ما هي. في معظم دروس الترميز، عليك الرجوع إلى رقم تعريف المشروع (ويتم تحديده عادةً على أنّه
PROJECT_ID)، لذا إذا لم يعجبك، يمكنك إنشاء رقم آخر عشوائي، أو يمكنك تجربة رقمك الخاص ومعرفة ما إذا كان متاحًا. ثم يتم "تجميده" بعد إنشاء المشروع. - هناك قيمة ثالثة، وهي رقم المشروع الذي تستخدمه بعض واجهات برمجة التطبيقات. يمكنك الاطّلاع على مزيد من المعلومات عن كل هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console من أجل استخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز الكثير من المال، إن لم تكلفك شيئًا على الإطلاق. لإيقاف الموارد كي لا يتم تحصيل رسوم منك بعد هذا الدرس التطبيقي حول الترميز، اتّبِع أي تعليمات "تنظيف" واردة في نهاية الدرس. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.
بدء Cloud Shell
على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس العملي Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:

لن يستغرق توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا ثابتًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إكمال جميع المهام في هذا التمرين المعملي باستخدام متصفّح فقط.
قبل البدء
داخل Cloud Shell، تأكَّد من إعداد رقم تعريف مشروعك
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] PROJECT_ID=[YOUR-PROJECT-NAME] echo $PROJECT_ID
تفعيل واجهات برمجة التطبيقات
تفعيل جميع الخدمات اللازمة
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com
3- ضبط قواعد جدار الحماية للسماح بزيارات HTTP إلى الخلفيات
اضبط قواعد جدار الحماية للسماح بزيارات HTTP إلى الخلفيات من عمليات التحقّق من السلامة في Google Cloud وLoad Balancer.
سنستخدم شبكة VPC الافتراضية التي تم إنشاؤها في مشروعك. أنشئ قاعدة جدار حماية للسماح بزيارات HTTP إلى الخلفيات. تحدّد عمليات التحقّق من الصحة مثيلات موازنة التحميل التي يمكنها تلقّي اتصالات جديدة. بالنسبة إلى موازنة الحمل لبروتوكول HTTP، تأتي عمليات التحقّق من السلامة التي يتم إجراؤها على مثيلاتك التي يتم فيها موازنة الحمل من عناوين ضمن النطاقَين 130.211.0.0/22 و35.191.0.0/16. يجب أن تسمح قواعد جدار الحماية في شبكة VPC بهذه الاتصالات. بالإضافة إلى ذلك، تتواصل موازنات التحميل مع الخلفية على نطاق عنوان IP نفسه.
- في Cloud Console، انتقِل إلى قائمة التنقّل (
) > شبكة السحابة الافتراضية الخاصة (VPC) > جدار الحماية.

- لاحظ قواعد جدار الحماية الحالية ICMP والداخلية وRDP وSSH.يبدأ كل مشروع على Google Cloud بالشبكة التلقائية وقواعد جدار الحماية هذه.
- انقر على إنشاء قاعدة جدار الحماية.
- اضبط القيم التالية، واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (أدخِل القيمة أو حدِّد الخيار على النحو المحدّد) |
الاسم | default-allow-health-check |
الشبكة | المظهر التلقائي |
الأهداف | علامات الاستهداف المحدّدة |
علامات الاستهداف | http-server |
فلتر المصدر | نطاقات عناوين IP |
نطاقات عناوين IP المصدر | 130.211.0.0/22, 35.191.0.0/16 |
البروتوكولات والمنافذ | بروتوكولات ومنافذ محددة، ثم تحقّق من tcp |
- انقر على إنشاء.
بدلاً من ذلك، إذا كنت تستخدم سطر أوامر gcloud. في ما يلي الأمر:
gcloud compute firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=http-server
4. إعداد نماذج الآلات الافتراضية وإنشاء مجموعات الآلات الافتراضية المُدارة
تستخدِم مجموعة الأجهزة الافتراضية المُدارة نموذج جهاز افتراضي لإنشاء مجموعة من الأجهزة الافتراضية المتطابقة. استخدِم هذه الموارد لإنشاء الخلفيات الخاصة بـ "موازنة الحمل عبر HTTP".
إعداد نماذج الآلات الافتراضية
نموذج الآلة الافتراضية هو أحد موارد واجهة برمجة التطبيقات التي تستخدمها لإنشاء نُسخ من الآلات الافتراضية ومجموعات من الآلات الافتراضية المُدارة. تحدّد نماذج الآلات الافتراضية نوع الجهاز وصورة قرص التمهيد والشبكة الفرعية والتصنيفات وخصائص الآلات الافتراضية الأخرى. أنشئ نموذج مثيل واحدًا لمنطقة us-east1 وآخر لمنطقة europe-west1.
- في Cloud Console، انتقِل إلى قائمة التنقّل (
) > Compute Engine > نماذج الآلات الافتراضية، ثم انقر على إنشاء نموذج آلة افتراضية. - في حقل الاسم، اكتب us-east1-template.
- بالنسبة إلى السلسلة، اختَر N1.
- انقر على الاتصال بالشبكات والأقراص والأمان والإدارة والإيجار المستقلّ.

- انتقِل إلى قسم الإدارة.

- ضمن البيانات الوصفية، انقر على إضافة عنصر وحدِّد ما يلي:
المفتاح | القيمة |
startup-script-url | gs://cloud-training/gcpnet/httplb/startup.sh |
- انقر على الشبكات.
- اضبط القيم التالية واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (أدخِل القيمة أو حدِّد الخيار على النحو المحدّد) |
الشبكة (ضمن "واجهات الشبكة") | المظهر التلقائي |
الشبكة الفرعية (ضمن واجهات الشبكة) | تلقائي (us-east1) |
علامات الشبكة | http-server |
- انقر على إنشاء.
- انتظِر إلى حين إنشاء نموذج الآلة الافتراضية.
الآن، أنشئ نموذج مثيل آخر لشبكة فرعية-ب من خلال نسخ نموذج us-east1:
- انقر على us-east1-template، ثمّ على خيار نسخ في أعلى الصفحة.
- في حقل الاسم، اكتب europe-west1-template.
- انقر على الاتصال بالشبكات والأقراص والأمان والإدارة والإيجار المستقلّ.
- انقر على الشبكات.
- ضمن واجهات الشبكة، عدِّل الواجهة التلقائية. بالنسبة إلى الشبكة الفرعية، اختَر الإعدادات التلقائية (europe-west1).
- انقر على إنشاء.
إنشاء مجموعات مثيلات مُدارة
أنشئ مجموعة مثيلات مُدارة في us-east1 وأخرى في europe-west1.
- في Compute Engine، انقر على مجموعات الأجهزة الافتراضية في القائمة اليمنى.

- انقر على إنشاء مجموعة مثيلات. انقر على مجموعة أجهزة افتراضية مُدارة جديدة (بلا حالة).
- اضبط القيم التالية، واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (أدخِل القيمة أو حدِّد الخيار على النحو المحدّد) |
الاسم | us-east1-mig |
الموقع الجغرافي | مناطق متعدّدة |
المنطقة | us-east1 |
نموذج الجهاز الافتراضي | us-east1-template |
التوسّع التلقائي > سياسة التوسّع التلقائي > انقر على رمز القلم > نوع المقياس | استخدام وحدة المعالجة المركزية |
استهداف استخدام وحدة المعالجة المركزية | 80، انقر على "تم". |
فترة توقّف الخدمة | 45 |
الحد الأدنى لعدد المثيلات | 1 |
الحدّ الأقصى لعدد الحالات | 5 |
- انقر على إنشاء.
كرِّر الآن الإجراء نفسه لإنشاء مجموعة مثيلات ثانية لـ europe-west1-mig في europe-west1:
- انقر على إنشاء مجموعة مثيلات.
- اضبط القيم التالية، واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (أدخِل القيمة أو حدِّد الخيار على النحو المحدّد) |
الاسم | europe-west1-mig |
الموقع الجغرافي | مناطق متعدّدة |
المنطقة | europe-west1 |
نموذج الجهاز الافتراضي | europe-west1-template |
التوسّع التلقائي > سياسة التوسّع التلقائي > انقر على رمز القلم > نوع المقياس | استخدام وحدة المعالجة المركزية |
استهداف استخدام وحدة المعالجة المركزية | 80، انقر على "تم". |
فترة توقّف الخدمة | 45 |
الحد الأدنى لعدد المثيلات | 1 |
الحدّ الأقصى لعدد الحالات | 5 |
- انقر على إنشاء.
5- ضبط إعدادات جهاز موازنة الحمل HTTP
اضبط جهاز موازنة حمل HTTP لموازنة عدد الزيارات بين الخلفيتَين (us-east1-mig في us-east1 وeurope-west1-mig في europe-west1)، كما هو موضّح في مخطط الشبكة:

بدء عملية الإعداد
- في Cloud Console، انقر على قائمة التنقّل (
) > خدمات الشبكة > موازنة الحمل، ثم انقر على إنشاء أداة موازنة الحمل. - ضمن موازنة حمل HTTP(S)، انقر على بدء الإعداد.

- اختَر من الإنترنت إلى الأجهزة الافتراضية، موازن الحمل الكلاسيكية HTTP(S)، ثم انقر على متابعة.
- اضبط الاسم على http-lb.
ضبط الواجهة الخلفية
توجّه خدمات الخلفية عدد الزيارات الواردة إلى خدمة خلفية واحدة أو أكثر من الخدمات الخلفية المرفقة. تتألف كل خلفية من مجموعة أجهزة افتراضية وبيانات وصفية إضافية لسعة العرض.
- انقر على إعدادات الواجهة الخلفية.
- بالنسبة إلى خدمات الخلفية وحِزم الخلفية، انقر على إنشاء خدمة خلفية.
- اضبط القيم التالية، واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (اختَر الخيار المحدّد) |
الاسم | http-backend |
مجموعة المثيلات | us-east1-mig |
أرقام المنافذ | 80 |
وضع الموازنة | تقييم |
الحدّ الأقصى لعدد الطلبات في الثانية | 50 (لكل نسخة) |
السعة | 100 |
- انقر على تم.
- انقر على إضافة نظام خلفي.
- اضبط القيم التالية، واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (اختَر الخيار المحدّد) |
مجموعة المثيلات | europe-west1-mig |
أرقام المنافذ | 80 |
وضع الموازنة | الاستخدام |
الحدّ الأقصى لاستخدام الخلفية | 80 |
السعة | 100 |
- انقر على تم.
- بالنسبة إلى التحقّق من الصحة، اختَر إنشاء عملية تحقّق من الصحة.

- اضبط القيم التالية، واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (اختَر الخيار المحدّد) |
الاسم | http-health-check |
البروتوكول | TCP |
المنفذ | 80 |

- انقر على حفظ.
- ضَع علامة في المربّع تفعيل التسجيل.
- اضبط معدّل أخذ العيّنات على 1:

- انقر على إنشاء لإنشاء خدمة الخلفية.

ضبط الواجهة الأمامية
تحدّد قواعد المضيف والمسار طريقة توجيه الزيارات. على سبيل المثال، يمكنك توجيه زيارات الفيديو إلى خادم خلفي واحد وتوجيه الزيارات الثابتة إلى خادم خلفي آخر. ومع ذلك، لن يتم ضبط قواعد المضيف والمسار في هذا التمرين العملي.
- انقر على إعداد الواجهة الأمامية.
- حدِّد ما يلي، مع ترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (أدخِل القيمة أو حدِّد الخيار على النحو المحدّد) |
البروتوكول | HTTP |
إصدار IP | بروتوكول IPv4 |
عنوان IP | Ephemeral |
المنفذ | 80 |
- انقر على تم.
- انقر على إضافة عنوان IP ومنفذ الواجهة الأمامية.
- حدِّد ما يلي، مع ترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (أدخِل القيمة أو حدِّد الخيار على النحو المحدّد) |
البروتوكول | HTTP |
إصدار IP | بروتوكول IPv6 |
عنوان IP | Ephemeral |
المنفذ | 80 |
- انقر على تم.
مراجعة جهاز موازنة الحمل HTTP وإنشاؤه
- انقر على المراجعة والإنهاء.

- راجِع خدمات الخلفية وواجهة المستخدم.

- انقر على إنشاء.
- انتظِر إلى أن يتم إنشاء جهاز موازنة الحمل.
- انقر على اسم جهاز موازنة الحمل (http-lb).
- دوِّن عنوانَي IPv4 وIPv6 لموازنة الحمل لتنفيذ المهمة التالية. وسيُشار إليهما باسم [LB_IP_v4] و[LB_IP_v6] على التوالي.
6. اختبار جهاز موازنة الحمل HTTP
بعد إنشاء موازن حمل HTTP للخلفيات، تأكَّد من إعادة توجيه الزيارات إلى خدمة الخلفية.
الوصول إلى جهاز موازنة الحمل HTTP
لاختبار إمكانية الوصول إلى موازن HTTP باستخدام بروتوكول IPv4، افتح علامة تبويب جديدة في المتصفّح وانتقِل إلى http://[LB_IP_v4]. تأكَّد من استبدال [LB_IP_v4] بعنوان IPv4 لموازن التحميل.
إذا كان لديك عنوان IPv6 محلي، جرِّب عنوان IPv6 الخاص بموازن التحميل HTTP من خلال الانتقال إلى http://[LB_IP_v6]. تأكَّد من استبدال [LB_IP_v6] بعنوان IPv6 لموازن التحميل.

اختبار الإجهاد لجهاز موازنة الحمل HTTP
أنشئ جهازًا افتراضيًا جديدًا لمحاكاة الحمل على موازن الحمل HTTP باستخدام siege. بعد ذلك، حدِّد ما إذا كانت الزيارات متوازنة على مستوى كلتا الخلفيتَين عندما يكون الحمل مرتفعًا.
- في "وحدة التحكّم"، انتقِل إلى قائمة التنقّل (
) > Compute Engine > آلات VM الافتراضية. - انقر على إنشاء مثيل.
- اضبط القيم التالية، واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (أدخِل القيمة أو حدِّد الخيار على النحو المحدّد) |
الاسم | siege-vm |
المنطقة | us-west1 |
المنطقة | us-west1-c |
السلسلة | N1 |
- انقر على إنشاء.
- انتظِر إلى حين إنشاء آلة siege-vm الافتراضية.
- بالنسبة إلى siege-vm، انقر على SSH لتشغيل نافذة طرفية والاتصال.
- نفِّذ الأمر التالي لتثبيت Siege:
sudo apt-get -y install siege
- لتخزين عنوان IPv4 الخاص بـ "موازنة الحمل عبر HTTP" في متغيّر بيئة، نفِّذ الأمر التالي مع استبدال [LB_IP_v4] بعنوان IPv4:
export LB_IP=[LB_IP_v4]
- لمحاكاة عملية تحميل، شغِّل الأمر التالي:
siege -c 250 http://$LB_IP
يجب أن تبدو النتيجة على النحو التالي (لا تنسخ هذا النص، فهو مثال على النتيجة):
New configuration template added to /home/student/.siege Run siege -C to view the current settings in that file ** SIEGE 4.0.4 ** Preparing 250 concurrent users for battle. The server is now under siege...
- في Cloud Console، انقر على قائمة التنقل (
)، ثم انقر على خدمات الشبكة > موازنة الحمل. - انقر على http-lb.
- انقر على علامة التبويب المراقبة. راقِب عدد الزيارات بين أمريكا الشمالية ونظامَي الخلفية لمدة تتراوح بين دقيقتَين و3 دقائق.
في البداية، يجب توجيه الزيارات إلى us-east1-mig فقط، ولكن مع زيادة عدد الطلبات في الثانية، يتم توجيه الزيارات أيضًا إلى europe-west1-mig.

يوضّح هذا المثال أنّه يتمّ توجيه الزيارات تلقائيًا إلى الخلفية الأقرب، ولكن إذا كان الحمل مرتفعًا جدًا، يمكن توزيع الزيارات على الخلفيات.

- ارجع إلى نافذة SSH في siege-vm.
- اضغط على CTRL+C لإيقاف Siege.
7. إنشاء سياسة تحديد المعدّل في Cloud Armor
في هذا القسم، ستستخدم Cloud Armor لمنع siege-vm من الوصول إلى موازن التحميل HTTP من خلال ضبط سياسة الحدّ من المعدّل.
- في Cloud Shell(راجِع بدء Cloud Shell ضمن الإعداد والمتطلبات للحصول على تعليمات حول كيفية استخدام Cloud Shell)، أنشئ سياسة أمان من خلال gcloud:
gcloud compute security-policies create rate-limit-siege \
--description "policy for rate limiting"
- بعد ذلك، أضِف قاعدة تحديد المعدّل:
gcloud beta compute security-policies rules create 100 \
--security-policy=rate-limit-siege \
--expression="true" \
--action=rate-based-ban \
--rate-limit-threshold-count=50 \
--rate-limit-threshold-interval-sec=120 \
--ban-duration-sec=300 \
--conform-action=allow \
--exceed-action=deny-404 \
--enforce-on-key=IP
- اربط سياسة الأمان بخدمة الخلفية http-backend:
gcloud compute backend-services update http-backend \
--security-policy rate-limit-siege –-global
- في "وحدة التحكّم"، انتقِل إلى قائمة التنقّل > أمان الشبكة > Cloud Armor.
- انقر على Click rate-limit-siege. يجب أن تكون سياستك مشابهة لما يلي:

التحقّق من سياسة الأمان
- ارجع إلى نافذة SSH الطرفية الخاصة بالجهاز الظاهري siege-vm.
- نفِّذ طلب curl على عنوان IP لموازنة التحميل للتأكّد من أنّه لا يزال بإمكانك الاتصال به، ويجب أن تتلقّى الرد 200.
curl http://$LB_IP
- في وحدة SSH الطرفية الخاصة بـ siege-vm، شغِّل الأمر التالي لمحاكاة عملية تحميل:
siege -c 250 http://$LB_IP
يجب أن تبدو النتيجة على النحو التالي (لا تنسخها، هذه نتيجة نموذجية):
** SIEGE 4.0.4 ** Preparing 250 concurrent users for battle. The server is now under siege...
- استكشِف سجلّات سياسة الأمان لتحديد ما إذا كان يتم حظر هذه الزيارات أيضًا.
- في "وحدة التحكّم"، انتقِل إلى قائمة التنقّل > أمان الشبكة > Cloud Armor.
- انقر على rate-limit-siege.
- انقر على السجلات.

- انقر على عرض سجلّات السياسات.
- في صفحة "التسجيل"، احرص على محو كل النص في "معاينة طلب البحث".
- اختَر المورد جهاز موازنة الحمل في Cloud HTTP > قاعدة إعادة التوجيه http-lb-forwarding-rule > http-lb، ثم انقر على إضافة. بدلاً من ذلك، إليك استعلام MQL(لغة استعلام المراقبة)، يمكنك نسخه ولصقه في محرر الاستعلام:
resource.type="http_load_balancer" resource.labels.forwarding_rule_name="http-lb-forwarding-rule" resource.labels.url_map_name="http-lb"
- انقر الآن على تنفيذ طلب البحث.
- وسِّع إدخالاً في السجلّ ضمن "نتائج الطلب".
- وسِّع httpRequest. يجب أن يكون الطلب من عنوان IP الخاص بـ siege-vm. إذا لم يكن كذلك، وسِّع إدخالاً آخر في السجلّ.
- وسِّع jsonPayload.
- وسِّع enforcedSecurityPolicy.

لاحظ أنّ configuredAction تم ضبطه على RATE_BASED_BAN بالاسم rate-limit-siege.
- لإجراء فحص إضافي، انتقِل إلى قائمة التنقّل (
)، ثم انقر على خدمات الشبكة > موازنة التحميل. انقر على http-lb، ثم على علامة التبويب المراقبة.

يمكنك الاطّلاع على الزيارات الناتجة عن الهجوم في الرسوم البيانية. ستلاحظ أيضًا أنّ الزيارات التي تمّ فرض حدّ أقصى لمعدّلها لا تصل إلى الخلفية ويتمّ حظرها بموجب سياسة Cloud Armor.
تهانينا! لقد أكملت هذا الدرس التطبيقي حول الحدّ من معدّل الطلبات باستخدام Cloud Armor
©2020 Google LLC. جميع الحقوق محفوظة. Google وشعار Google هما علامتان تجاريتان (TM) تابعتان لشركة Google LLC. جميع أسماء الشركات والمنتجات الأخرى قد تكون علامات تجارية للشركات المالكة لها.
8. إعادة تنظيم المختبر
- انتقِل إلى أمان الشبكة >> Cloud Armor >> %POLICY NAME% واختر "حذف" -

- انتقِل إلى الشبكات >> خدمات الشبكة >> موازنة التحميل. اختَر جهاز موازنة الحمل الذي أنشأته وانقر على "حذف".

اختَر خدمة الخلفية والتحقّق من الصحة كموارد إضافية سيتم حذفها:

- انتقِل إلى قائمة التنقّل (
) > Compute Engine > مجموعات المثيلات. اختَر كلتا مجموعتَي الأجهزة الافتراضية المُدارة وانقر على "حذف" -

أكِّد عملية الحذف من خلال كتابة "حذف" في مربّع النص.
انتظِر إلى أن يتم حذف مجموعات المثيلات المُدارة. يؤدي ذلك أيضًا إلى حذف المثيلات في المجموعة. لا يمكنك حذف النماذج إلا بعد حذف مجموعة المثيلات.
- انتقِل إلى نماذج الآلات الافتراضية من اللوحة الجانبية على يمين الصفحة**.** اختَر كلا نموذجي الآلات الافتراضية وانقر على "حذف":

- انتقِل إلى مثيلات الجهاز الافتراضي من اللوحة الجانبية على يمين الشاشة**.** انقر على علامة الحذف بجانب مثيل siege-vm.

- انتقِل إلى قائمة التنقّل (
) > شبكة VPC > جدار الحماية. اختَر default-allow-health-check وانقر على "حذف".

9- تهانينا!
لقد نفّذت ميزة الحدّ من المعدّل بنجاح باستخدام Cloud Armor. لقد أعددت جهاز موازنة حمل HTTP مع خوادم خلفية في us-east1 وeurope-west1. بعد ذلك، أجريت اختبار إجهاد على موازن التحميل باستخدام جهاز افتراضي وأضفت عنوان IP إلى القائمة المحظورة من خلال الحدّ من المعدّل باستخدام Cloud Armor. تمكّنت من استكشاف سجلّات سياسة الأمان لتحديد سبب حظر الزيارات.
المواضيع التي تناولناها
- كيفية إعداد نماذج الآلات الافتراضية وإنشاء مجموعات الآلات الافتراضية المُدارة
- كيفية إعداد جهاز موازنة حمل HTTP
- كيفية إنشاء سياسة تحديد المعدّل في Cloud Armor
- كيفية التحقّق من أنّ "سياسة الحدّ من المعدّل" تعمل على النحو المطلوب
الخطوات التالية
- جرِّب إعداد سياسة الحدّ من المعدّل استنادًا إلى نطاق عناوين IP المصدر. نموذج الأمر أدناه:
gcloud alpha compute security-policies rules create 105 \
--security-policy sec-policy \
--src-ip-ranges "1.2.3.0/24" \
--action throttle \
--rate-limit-threshold-count 100 \
--rate-limit-threshold-interval-sec 60 \
--conform-action allow \
--exceed-action deny-429 \
--enforce-on-key IP
- جرِّب إعداد سياسة تحديد المعدّل استنادًا إلى رمز المنطقة. نموذج الأمر أدناه:
gcloud alpha compute security-policies rules create 101 \
--security-policy sec-policy \
--expression "origin.region_code == 'US'" \
--action rate-based-ban \
--rate-limit-threshold-count 10 \
--rate-limit-threshold-interval-sec 60 \
--ban-duration-sec 300 \
--ban-threshold-count 1000 \
--ban-threshold-interval-sec 600 \
--conform-action allow \
--exceed-action deny-403 \
--enforce-on-key IP