الاتصال بالخدمات المتوفرة في مقر المؤسسة من خلال الشبكة المختلطة باستخدام Private Service Connect وتقنية NEG المختلطة باستخدام جهاز موازنة حمل HTTP(s) الداخلي.

1. مقدمة

تتيح ميزة "توازن الحمولة في السحابة الإلكترونية" إمكانية توزيع الزيارات على نقاط النهاية التي تتجاوز Google Cloud، مثل مراكز البيانات داخل الشركة والسحب الإلكترونية الأخرى المتاحة للجميع التي يمكنك استخدام الاتصال المختلط للوصول إليها.

تعتبر الاستراتيجية المختلطة حلاً عمليًا يتيح لك التكيّف مع متطلبات السوق المتغيّرة وتحديث تطبيقاتك بشكل تدريجي. وقد يكون هذا نشرًا مختلطًا مؤقتًا لتمكين الترحيل إلى حل حديث مستنِد إلى السحابة الإلكترونية أو تركيب دائم للبنية الأساسية لتكنولوجيا المعلومات في مؤسستك.

يتيح لك إعداد موازنة الحمل المختلطة أيضًا الاستفادة من مزايا إمكانات الربط الشبكي في Cloud Load Balancing للخدمات التي تعمل على البنية الأساسية الحالية خارج Google Cloud.

إذا أردت إتاحة الخدمة المختلطة في شبكات VPC أخرى، يمكنك استخدام Private Service Connect لنشر الخدمة. من خلال وضع مرفق خدمة أمام جهاز موازنة الحمل لبروتوكولات HTTP الداخلية، يمكنك السماح للعملاء في شبكات VPC الأخرى بالوصول إلى الخدمات المختلطة التي تعمل في بيئات داخل الشركة أو بيئات السحابة الإلكترونية الأخرى.

ما الذي ستنشئه

في هذا الدليل التعليمي حول الرموز البرمجية، ستُنشئ أداة موازنة تحميل داخلية لبروتوكول HTTP(S) باستخدام ميزة "الاتصال المختلط" بخدمة محلية باستخدام مجموعة نقاط نهاية الشبكة. ستتمكّن شبكة VPC للمستهلك من التواصل مع الخدمة المحلية باستخدام المنفذ 80، ولا يندرج المنفذ 443 ضمن نطاق الدليل التعليمي حول الرموز البرمجية.

4ad647fa51b3473e.png

ما ستتعرّف عليه

  • طريقة إنشاء جهاز موازنة حمل HTTP(S) داخلي باستخدام واجهة خلفية من فئة NEG
  • كيفية إنشاء مُنشئ (مرفق الخدمة) ومستهلك (قاعدة إعادة التوجيه) في Private Service Connect

المتطلبات

  • شبكة مختلطة تم إنشاؤها، مثل شبكة VPN ذات التوفّر المرتفع وشبكة Interconnect وشبكة WAN المستندة إلى البرامج
  • مشروع Google Cloud

إنشاء اتصال مختلط

يجب ربط Google Cloud ببيئة السحابة الإلكترونية داخل المؤسسة أو غيرها من بيئات السحابة الإلكترونية من خلال الاتصال المختلط، وذلك باستخدام مرفقات VLAN في Cloud Interconnect أو نفق Cloud VPN مع Cloud Router. ننصحك باستخدام اتصال يضمن مدى توفّر عالٍ.

في جهاز Cloud Router الذي تم تفعيل التوجيه الديناميكي العالمي إليه، يتم التعرّف على نقطة النهاية المحدّدة من خلال بروتوكول BGP وبرامجها في شبكة Google Cloud VPC. لا تتوفّر ميزة التوجيه الديناميكي على مستوى منطقة معيّنة. ولا تتوفّر أيضًا المسارات الثابتة.

شبكة VPC في Google Cloud التي تستخدمها لضبط إما Cloud Interconnect أو Cloud VPN هي الشبكة نفسها التي تستخدمها لضبط نشر موازنة التحميل المختلط. تأكَّد من أنّ نطاقات عناوين IP الخاصة بشبكة VPC الفرعية لا تتعارض مع نطاقات عناوين IP البعيدة. عندما تتداخل عناوين IP، تُعطى الأولوية لمسارات الشبكة الفرعية على الاتصال عن بُعد.

للحصول على التعليمات، يُرجى الاطّلاع على:

إعلانات المسارات المخصّصة

تتطلب الشبكات الفرعية أدناه إعلانات مخصّصة من "راوتر السحابة الإلكترونية" إلى الشبكة المستضافة على الموقع، ما يضمن تعديل قواعد جدار الحماية المستضافة على الموقع.

الشبكة الفرعية

الوصف

172.16.0.0/23

شبكة فرعية وكيلة تُستخدَم للتواصل مباشرةً مع الخدمة على الموقع

130.211.0.0/22، 35.191.0.0/16

التحقّق من Google Cloud Health

2. قبل البدء

تعديل المشروع لدعم الدرس التطبيقي حول الترميز

يستخدِم هذا الدليل التعليمي حول رموز البرامج متغيّرات $variables لمساعدة عملية تنفيذ إعدادات gcloud في Cloud Shell.

يجري داخل Cloud Shell ما يلي

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
psclab=YOUR-PROJECT-NAME
echo $psclab

3- إعداد أداة الإنتاج

إنشاء شبكة VPC الخاصة بجهة الإنتاج

يجري داخل Cloud Shell ما يلي

gcloud compute networks create producer-vpc --project=$psclab --subnet-mode=custom

إنشاء الشبكات الفرعية لـ "أداة نشر الأخبار"

يجري داخل Cloud Shell ما يلي

gcloud compute networks subnets create subnet-201 --project=$psclab --range=10.10.1.0/24 --network=producer-vpc --region=us-central1
gcloud compute networks subnets create subnet-202 --project=$psclab --range=10.20.1.0/24 --network=producer-vpc --region=us-central1

حجز عنوان IP لجهاز موازنة الحمل الداخلي

داخل Cloud Shell، نفِّذ ما يلي، ولا يمكن استخدام SHARED_VIP مع Private Service Connect، استخدِم GCE_ENDPOINT بدلاً من ذلك.

gcloud compute addresses create lb-ip \
    --region=us-central1 \
    --subnet=subnet-202 \
    --purpose=GCE_ENDPOINT

استخدِم الأمر compute points describe لعرض عنوان IP المخصّص.

gcloud compute addresses describe lb-ip  --region=us-central1 | grep address:

إنشاء الشبكات الفرعية للخادم الوكيل الإقليمي

يتمّ تخصيص الخادم الوكيل على مستوى "شبكة VPC"، وليس على مستوى "موازن الحمولة". يجب إنشاء شبكة فرعية للوكيل فقط واحدة في كل منطقة من شبكة افتراضية (VPC) تستخدم فيها أدوات موازنة التحميل المستندة إلى Envoy. إذا نشرت العديد من أجهزة موازنة الحمل في المنطقة نفسها وشبكة VPC نفسها، ستتم مشاركة الشبكة الفرعية نفسها للخادم الوكيل فقط من أجل موازنة التحميل.

  1. يجري العميل اتصالاً بعنوان IP ومنفذ قاعدة إعادة التوجيه لجهاز موازنة الحمل.
  2. يستمع كل خادم وكيل إلى عنوان IP والمنفذ المحدَّدَين من خلال قاعدة إعادة التوجيه الخاصة بموازن الحمولة المقابل. يتلقّى أحد الخوادم الوكيلة اتصال العميل بالشبكة ويُنهيه.
  3. يُنشئ الخادم الوكيل اتصالاً بالجهاز الافتراضي أو نقطة النهاية المناسبة في الخلفية في مجموعة نقاط نهاية الشبكة، وذلك على النحو الذي تحدّده عملية ربط عنوان URL في جهاز موازنة الحمل وخدمات الخلفية.

يجب إنشاء شبكات فرعية للوكيل فقط بغض النظر عمّا إذا كانت شبكتك في الوضع التلقائي أو مخصّصة. يجب أن توفر الشبكة الفرعية للخادم الوكيل فقط 64 عنوان IP أو أكثر. يتوافق ذلك مع طول البادئة /26 أو أقل. حجم الشبكة الفرعية المُقترَح هو ‎/23 (512 عنوان وكيل فقط).

داخل Cloud Shell، نفِّذ ما يلي:

gcloud compute networks subnets create proxy-subnet-us-central \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=us-central1 \
  --network=producer-vpc \
  --range=172.16.0.0/23

إنشاء الشبكات الفرعية الخاصة بـ Private Service Connect NAT

أنشئ شبكة فرعية واحدة أو أكثر مخصّصة لاستخدامها مع Private Service Connect. إذا كنت تستخدم وحدة تحكُّم Google Cloud من أجل نشر خدمة، يمكنك إنشاء الشبكات الفرعية أثناء هذا الإجراء. أنشئ الشبكة الفرعية في المنطقة نفسها التي يقع فيها جهاز موازنة الحمل للخدمة. لا يمكنك تحويل شبكة فرعية عادية إلى شبكة فرعية خاصة بـ Private Service Connect.

داخل Cloud Shell، نفِّذ ما يلي:

gcloud compute networks subnets create psc-nat-subnet --network=producer-vpc --region=us-central1 --range=100.100.10.0/24 --purpose=private-service-connect

إنشاء قواعد جدار الحماية لـ منتج

يمكنك ضبط قواعد جدار الحماية للسماح بالزيارات بين نقاط نهاية Private Service Connect ومرفق الخدمة. في ورشة العمل، تم إنشاء قاعدة جدار حماية للدخول تسمح للشبكة الفرعية NAT 100.100.10.0/24 بالوصول إلى مرفق الخدمة Private Service Connect (جهاز موازنة الحمل الداخلي).

داخل Cloud Shell، نفِّذ ما يلي:

gcloud compute --project=$psclab firewall-rules create allow-to-ingress-nat-subnet --direction=INGRESS --priority=1000 --network=producer-vpc --action=ALLOW --rules=all --source-ranges=100.100.10.0/24

داخل Cloud Shell يمكنك إنشاء قاعدة fw-allow-health-check للسماح لفحوصات الصحة في Google Cloud بالوصول إلى الخدمة داخل المؤسسة (خدمة الخلفية) على منفذ TCP رقم 80

gcloud compute firewall-rules create fw-allow-health-check \
    --network=producer-vpc \
    --action=allow \
    --direction=ingress \
    --source-ranges=130.211.0.0/22,35.191.0.0/16 \
    --rules=tcp:80

إنشاء قاعدة تتيح الدخول بجدار الحماية للشبكة الفرعية للخادم الوكيل فقط، من أجل السماح لجهاز موازنة الحمل بالاتصال بمثيلات الخلفية على منفذ TCP رقم 80

gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
    --network=producer-vpc \
    --action=allow \
    --direction=ingress \
    --source-ranges=172.16.0.0/23 \
    --rules=tcp:80

إعداد مجموعة نقاط نهاية الشبكة للاتصال المختلط

عند إنشاء مجموعة نقاط النهاية (NEG)، استخدِم منطقة تقلِّل المسافة الجغرافية بين Google Cloud وبيئة مؤسستك أو بيئة سحابية أخرى. على سبيل المثال، إذا كنت تستضيف خدمة في بيئة داخلية في فرانكفورت، ألمانيا، يمكنك تحديد منطقة europe-west3-a في Google Cloud عند إنشاء NEG.

علاوة على ذلك، إذا كنت تستخدم Cloud Interconnect، يجب أن تكون المنطقة المستخدَمة لإنشاء مجموعة نقاط الوصول (NEG) في المنطقة نفسها التي تم فيها ضبط مرفق Cloud Interconnect.

بالنسبة إلى المناطق والمناطق المتوفّرة، يُرجى الاطّلاع على مستندات Compute Engine: المناطق والمناطق المتوفّرة.

ينشئ داخل Cloud Shell مجموعة نقاط نهاية (NEG) للاتصال المختلط باستخدام الأمر gcloud compute network-endpoint-groups create.

gcloud compute network-endpoint-groups create on-prem-service-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --zone=us-central1-a \
    --network=producer-vpc

داخل Cloud Shell، أضِف عنوان IP:نقطة نهاية المنفذ إلى مجموعة نقاط نهاية الشبكة المختلطة.

gcloud compute network-endpoint-groups update on-prem-service-neg \
    --zone=us-central1-a \
    --add-endpoint="ip=192.168.1.5,port=80"

ضبط جهاز موازنة الحمل

في الخطوات التالية، سيتم ضبط جهاز موازنة الحمل (قاعدة إعادة التوجيه) & الربط بمجموعة نقاط نهاية الشبكة

تُنشئ أداة Inside Cloud Shell فحص الحالة الصحية الإقليمي الذي تم تمريره إلى الخدمة داخل المؤسسة.

gcloud compute health-checks create http http-health-check \
    --region=us-central1 \
    --use-serving-port

داخل Cloud Shell، أنشئ خدمة الخلفية للخلفية على الموقع باستخدام مجموعة نقاط نهاية الشبكة المختلطة.

 gcloud compute backend-services create on-premise-service-backend \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --protocol=HTTP \
      --health-checks=http-health-check \
      --health-checks-region=us-central1 \
      --region=us-central1

أضِف واجهة NEG الخلفية المختلطة إلى الخدمة الخلفية من خلال Cloud Shell. بالنسبة إلى RATE، أدخِل الحد الأقصى لـ RATE الذي يجب أن يتعامل معه الجزء الخلفي.

gcloud compute backend-services add-backend on-premise-service-backend \
    --region=us-central1 \
    --balancing-mode=RATE \
    --max-rate-per-endpoint=100 \
    --network-endpoint-group=on-prem-service-neg \
    --network-endpoint-group-zone=us-central1-a

داخل Cloud Shell، أنشئ خريطة عناوين URL لتوجيه الطلبات الواردة إلى خدمة الخلفية.

gcloud compute url-maps create on-prem-svc-url-map \
    --default-service on-premise-service-backend \
    --region=us-central1

إنشاء خادم وكيل HTTP المستهدف

gcloud compute target-http-proxies create proxy-subnet-us-central\
    --url-map=on-prem-svc-url-map \
    --url-map-region=us-central1 \
    --region=us-central1

يمكنك إنشاء قاعدة إعادة توجيه لتوجيه الطلبات الواردة إلى الخادم الوكيل. لا تستخدِم الشبكة الفرعية للوكيل فقط لإنشاء قاعدة إعادة التوجيه.

 gcloud compute forwarding-rules create http-hybrid-neg-fwd-rule \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=producer-vpc \
      --subnet=subnet-202 \
      --address=lb-ip \
      --ports=80 \
      --region=us-central1 \
      --target-http-proxy=proxy-subnet-us-central \
      --target-http-proxy-region=us-central1

4. التحقّق من جهاز موازنة الحمل

من Cloud Console، انتقِل إلى خدمات الشبكة → موازنة الحمل → أجهزة موازنة الحمل. يُرجى العِلم أنّ حالة NEG واحدة هي "خضراء"، ما يشير إلى نجاح عملية التحقّق من صحة الخدمة على الموقع.

bb5d117dee3b8b04.png

يؤدي اختيار ‎‘on-premise-svc-url-map' إلى عرض عنوان IP لواجهة برمجة التطبيقات وتحديد خدمة الواجهة الخلفية.

128a7e85e8069097.png

5- عرض المسارات التي تم تعلمها من داخل الشركة

انتقِل إلى VPC Network ← Routes. ملاحظة: الشبكة الفرعية للخدمة داخل الشركة 192.168.1.0/27

d1ab51b79aeea9d8.png

6- التحقّق من إمكانية الاتصال بالخدمة المستضافة داخل المؤسسة

سننشئ جهاز افتراضي (VM) من منصات عرض VPC لاختبار الاتصال بالخدمة داخل المؤسسة، وبعد ذلك سيكون مرفق الخدمة هو الإعداد التالي.

إنشاء داخل Cloud Shell مثيل الاختبار في vpc المنتج

gcloud compute instances create test-box-us-central1 \
    --zone=us-central1-a \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --subnet=subnet-201 \
    --no-address

للسماح لعمليات الشراء داخل التطبيق بالاتصال بمثيلات الأجهزة الافتراضية، أنشِئ قاعدة جدار حماية تعمل على:

  • ينطبق على جميع مثيلات الأجهزة الافتراضية التي تريد الوصول إليها باستخدام ميزة "الشراء داخل التطبيق".
  • يسمح بالزيارات الواردة من نطاق IP 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي يستخدمها بروتوكول IAP لإعادة توجيه بروتوكول التحكم بالنقل.

داخل Cloud Shell، تنشئ مثيل الاختبار في vpc المنتِج

gcloud compute firewall-rules create ssh-iap \
    --network producer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

سجِّل الدخول إلى test-box-us-central1 باستخدام ميزة "الشراء داخل التطبيق" في Cloud Shell من أجل التحقّق من الاتصال بالخدمة داخل المؤسسة من خلال إجراء ربط بالعكس لعنوان IP الخاص بتوازن التحميل. يُرجى إعادة المحاولة في حال انتهاء مهلة.

gcloud compute ssh test-box-us-central1 --project=$psclab --zone=us-central1-a --tunnel-through-iap

أجرِ عملية ربط للتحقّق من الاتصال بالخدمة في المؤسسة. بعد التحقق من الخروج من الجهاز الافتراضي (VM) والعودة إلى طلب Cloud Shell. استبدِل عنوان IP لجهاز موازنة الحمل الداخلي استنادًا إلى مخرجاتك المحدّدة في الخطوة 4.

user@test-box-us-central1:~$ curl -v 10.20.1.2
* Expire in 0 ms for 6 (transfer 0x55b7725c10f0)
*   Trying 10.20.1.2...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x55b7725c10f0)
* Connected to 10.20.1.2 (10.20.1.2) port 80 (#0)
> GET / HTTP/1.1
> Host: 10.20.1.2
> User-Agent: curl/7.64.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< content-type: text/html; charset=utf-8
< accept-ranges: bytes
< etag: "3380914763"
< last-modified: Mon, 05 Dec 2022 15:10:56 GMT
< expires: Mon, 12 Dec 2022 03:17:20 GMT
< cache-control: max-age=0
< content-length: 37
< date: Mon, 12 Dec 2022 03:17:20 GMT
< server: lighttpd/1.4.53
< via: 1.1 google
< 
Welcome to my on-premise service!!

7- إنشاء مرفق خدمة Private Service Connect

في الخطوات التالية، سننشئ "مرفق الخدمة"، بعد إقرانه مع إمكانية وصول "نقطة نهاية المستهلك" إلى الخدمة في المؤسسة بدون الحاجة إلى تبادل المعلومات بين الشبكات في "سحابة VPC".

إنشاء مرفق الخدمة

إنشاء مرفق الخدمة داخل Cloud Shell

gcloud compute service-attachments create service-1 --region=us-central1 --producer-forwarding-rule=http-hybrid-neg-fwd-rule --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=psc-nat-subnet

اختياري: في حال استخدام شبكة VPC مشترَكة، أنشئ مرفق الخدمة في "مشروع الخدمة".

gcloud compute service-attachments create service-1 --region=us-central1 --producer-forwarding-rule=http-hybrid-neg-fwd-rule --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=projects/<hostproject>/regions/<region>/subnetworks/<natsubnet>

التحقق من صحة مرفق خدمة TCP

gcloud compute service-attachments describe service-1 --region us-central1

اختياري: انتقِل إلى خدمات الشبكة ← Private Service Connect لعرض "مرفق الخدمة" الذي تم إنشاؤه حديثًا.

2f84578c9f2cc361.png

يوفر اختيار Service-1 مزيدًا من التفاصيل، بما في ذلك معرّف الموارد المنتظم (URI) لمرفق الخدمة الذي يستخدمه المستهلك لإنشاء اتصال خدمة خاصة. سجِّل عنوان URL لأنّه سيتم استخدامه في خطوة لاحقة.

41639cb160231275.png

تفاصيل مرفقات الخدمة: project/<projectname>/region/us-central1/service المصدرs/service-1

8. إعداد المستهلك

إنشاء شبكة VPC للمستهلك

داخل Cloud Shell، نفِّذ ما يلي:

gcloud compute networks create consumer-vpc --project=$psclab --subnet-mode=custom

إنشاء الشبكات الفرعية للمستهلكين

داخل Cloud Shell، أنشئ الشبكة الفرعية لـ GCE.

gcloud compute networks subnets create subnet-101 --project=$psclab --range=10.100.1.0/24 --network=consumer-vpc --region=us-central1

إنشاء الشبكة الفرعية لنقاط النهاية للمستهلك من داخل Cloud Shell

gcloud compute networks subnets create subnet-102 --project=$psclab --range=10.100.2.0/24 --network=consumer-vpc --region=us-central1

إنشاء نقطة نهاية المستهلك (قاعدة إعادة التوجيه)

داخل Cloud Shell، أنشئ عنوان IP الثابت الذي سيتم استخدامه كنقطة نهاية للمستهلك.

gcloud compute addresses create psc-consumer-ip-1 --region=us-central1 --subnet=subnet-102 --addresses 10.100.2.10

السماح باستخدام معرّف الموارد المنتظم (URI) لمرفق الخدمة الذي تم إنشاؤه مسبقًا لإنشاء "نقطة نهاية المستهلك"

داخل Cloud Shell، أنشئ نقطة نهاية المستهلك.

gcloud compute forwarding-rules create psc-consumer-1 --region=us-central1 --network=consumer-vpc --address=psc-consumer-ip-1 --target-service-attachment=projects/$psclab/regions/us-central1/serviceAttachments/service-1

9. التحقّق من صحة ربط الخدمة الخاصة للمستهلك - VPC للمستهلك

من شبكة VPC الخاصة بالمستهلك، تأكَّد من نجاح اتصال الخدمة الخاصة من خلال الانتقال إلى خدمات الشبكة ← Private Service Connect ← نقاط النهاية المتصلة. دوِّن اتصال psc-consumer-1 الذي تم إنشاؤه وعنوان IP المقابل الذي أنشأناه سابقًا.

b91ee5d5c854e60b.png

عند اختيار psc-consumer-1، يتم تقديم التفاصيل بما في ذلك معرّف الموارد المنتظم (URI) لمرفق الخدمة.

1dbc63217819dcd5.png

10. التحقّق من صحة Private Service Connect للمستهلك - VPC للمنتِج

من "شبكة VPC الخاصة بالمنتج"، تأكَّد من نجاح عملية "الاتصال بالخدمة الخاصة" من خلال الانتقال إلى خدمات الشبكة → Private Service Connect (الاتصال بالخدمة الخاصة) → الخدمة المنشورة. يُرجى العِلم أنّ اتصال الخدمة 1 المنشور يشير الآن إلى قاعدة إعادة توجيه واحدة (نقطة نهاية الاتصال).

951090b812a8d119.png

11. إنشاء منطقة نظام أسماء نطاقات خاصة السجل A

أنشئ منطقة نظام أسماء النطاقات الخاصة المرتبطة بنقطة نهاية اتصال PSC للسماح بالوصول السلس إلى "المنتج" من أي مضيف ضمن "السحابة الإلكترونية الخاصة الافتراضية".

من Cloud Shell

gcloud dns --project=$psclab managed-zones create codelab-zone --description="" --dns-name="codelab.net." --visibility="private" --networks="consumer-vpc"

gcloud dns --project=$psclab record-sets create service1.codelab.net. --zone="codelab-zone" --type="A" --ttl="300" --rrdatas="10.100.2.10"

12. التحقّق من إمكانية وصول "المستهلك" إلى خدمة "المنتجين" باستخدام "الجهاز الافتراضي"

من سحابة VPC الخاصة بالمستهلكين، سننشئ جهازًا افتراضيًا لاختبار الاتصال بالخدمة في المؤسسة من خلال الوصول إلى نقطة النهاية الخاصة بالمستهلكين service1.codelabs.net

داخل Cloud Shell، تنشئ مثيل الاختبار في vpc للمستهلك

gcloud compute instances create consumer-vm \
    --zone=us-central1-a \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --subnet=subnet-101 \
    --no-address

للسماح لعمليات الشراء داخل التطبيق بالاتصال بمثيلات الأجهزة الافتراضية، أنشِئ قاعدة جدار حماية تعمل على:

  • ينطبق على جميع مثيلات الأجهزة الافتراضية التي تريد الوصول إليها باستخدام ميزة "الشراء داخل التطبيق".
  • يسمح بالزيارات الواردة من نطاق IP 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي تستخدمها IAP لإعادة توجيه بروتوكول TCP.

داخل Cloud Shell، أنشئ المثيل التجريبي في شبكة vpc للمستهلك.

gcloud compute firewall-rules create ssh-iap-consumer \
    --network consumer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

سجِّل الدخول إلى جهاز الكمبيوتر الظاهري للمستهلك باستخدام IAP في Cloud Shell للتحقّق من إمكانية الاتصال بالخدمة المستضافة على الموقع من خلال تنفيذ curl ضد FQDN لنظام أسماء النطاقات service1.codelab.net. أعِد المحاولة في حال حدوث مهلة.

gcloud compute ssh consumer-vm --project=$psclab --zone=us-central1-a --tunnel-through-iap

نفِّذ عملية curl للتحقّق من إمكانية الاتصال بالخدمة على الموقع الإلكتروني. بعد التحقّق من الصحة، يمكنك الخروج من الجهاز الظاهري والعودة إلى طلب Cloud Shell.

داخل Cloud Shell، نفِّذ الأمر curl.

$ curl -v service1.codelab.net
*   Trying 10.100.2.10...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x5650fc3390f0)
* Connected to service1.codelab.net (10.100.2.10) port 80 (#0)
> GET / HTTP/1.1
> Host: service1.codelab.net
> User-Agent: curl/7.64.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Accept-Ranges: bytes
< ETag: "3380914763"
< Last-Modified: Mon, 05 Dec 2022 15:10:56 GMT
< Expires: Mon, 05 Dec 2022 15:15:41 GMT
< Cache-Control: max-age=0
< Content-Length: 37
< Date: Mon, 05 Dec 2022 15:15:41 GMT
< Server: lighttpd/1.4.53
< 
Welcome to my on-premise service!!

في ما يلي مثال على بيانات تم تسجيلها من الخدمة المستضافة على الموقع، يُرجى العلم أنّ عنوان IP المصدر 172.16.0.13 من نطاق الشبكة الفرعية للخادم الوكيل 172.16.0.0/23.

30802152f51ff751.png

13. تنظيف حساب المنتج

حذف مكوّنات المنتجين

داخل Cloud Shell، احذف النُسخ الاختبارية في شبكة VPC الخاصة بجهة الإنتاج.

gcloud compute instances delete test-box-us-central1 --zone=us-central1-a --quiet

gcloud compute service-attachments delete service-1 --region=us-central1 --quiet 

gcloud compute forwarding-rules delete http-hybrid-neg-fwd-rule --region=us-central1 --quiet

gcloud compute target-http-proxies delete proxy-subnet-us-central --region=us-central1 --quiet

gcloud compute url-maps delete on-prem-svc-url-map --region=us-central1 --quiet

gcloud compute backend-services delete on-premise-service-backend --region=us-central1 --quiet

gcloud compute network-endpoint-groups delete on-prem-service-neg --zone=us-central1-a --quiet

gcloud compute addresses delete lb-ip --region=us-central1 --quiet

gcloud compute networks subnets delete psc-nat-subnet subnet-201 subnet-202 proxy-subnet-us-central --region=us-central1 --quiet

gcloud compute firewall-rules delete ssh-iap fw-allow-proxy-only-subnet allow-to-ingress-nat-subnet fw-allow-health-check --quiet

gcloud compute health-checks delete http-health-check --region=us-central1 --quiet

gcloud compute networks delete producer-vpc --quiet

14. تنظيف المستهلك

حذف مكوّنات المستهلك

حذف نسخ الاختبار من داخل Cloud Shell في شبكة VPC للمستهلك

gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet

gcloud compute forwarding-rules delete psc-consumer-1 --region=us-central1 --quiet

gcloud compute addresses delete psc-consumer-ip-1 --region=us-central1 --quiet

gcloud compute networks subnets delete subnet-101 subnet-102 --region=us-central1 --quiet

gcloud compute firewall-rules delete ssh-iap-consumer --quiet

gcloud dns record-sets delete service1.codelab.net --type=A --zone=codelab-zone --quiet

gcloud dns managed-zones delete codelab-zone --quiet 

gcloud compute networks delete consumer-vpc --quiet 

15. تهانينا

تهانينا، لقد نجحت في ضبط إعدادات ميزة Private Service Connect والتحقق منها باستخدام جهاز موازنة حمل HTTP(S) الداخلي.

أنشأتَ البنية الأساسية للمُنتِج، وأضفت مرفق خدمة في سحابة VPC الخاصة بالمُنتِج للإشارة إلى خدمة داخل الشركة. لقد تعلّمت كيفية إنشاء نقطة نهاية للمستهلك في شبكة VPC الخاصة بالمستهلكين والتي أتاحت الاتصال بالخدمة في المؤسسة.

الخطوات التالية

اطّلِع على بعض هذه الدروس التطبيقية حول الترميز...

تعزيز القراءة الفيديوهات

المستندات المرجعية