Cloud Armor की मदद से, रेट लिमिटिंग

1. परिचय

Google Cloud एचटीटीपी या एचटीटीपीएस लोड बैलेंसिंग को दुनिया भर में Google की मौजूदगी वाले इलाकों (पीओपी) में Google के नेटवर्क के किनारे पर डिप्लॉय किया जाता है. एचटीटीपी या एचटीटीपीएस लोड बैलेंसर पर भेजा जाने वाला उपयोगकर्ता ट्रैफ़िक, उपयोगकर्ता के सबसे नज़दीक मौजूद पीओपी में चला जाता है. इसके बाद, यह Google के ग्लोबल नेटवर्क पर सबसे नज़दीक उपलब्ध बैकएंड से संतुलित हो जाता है.

Cloud Armor, Google का डिस्ट्रिब्यूटेड डिनायल ऑफ़ सर्विस और वेब ऐप्लिकेशन फ़ायरवॉल (WAF) डिटेक्शन सिस्टम है. Cloud Armor में Google Cloud एचटीटीपी लोड बैलेंसर अच्छी तरह काम करता है. इसकी मदद से, अनचाहे अनुरोधों का पता लगाने के लिए, आने वाले ट्रैफ़िक से पूछताछ की जा सकती है. इस सेवा की दर सीमित करने वाली सुविधा, अनुरोध की संख्या के आधार पर बैकएंड संसाधनों पर ट्रैफ़िक कम करने देती है. साथ ही, यह आपके वर्चुअल प्राइवेट क्लाउड (वीपीसी) नेटवर्क पर संसाधनों का इस्तेमाल करने वाले अनचाहे ट्रैफ़िक को रोकती है.

इस लैब में, ग्लोबल बैकएंड के साथ एक एचटीटीपी लोड बैलेंसर कॉन्फ़िगर किया जाता है. नीचे दिए गए डायग्राम में यह दिखाया गया है. इसके बाद, आपको लोड बैलेंसर की जांच करनी होगी. साथ ही, बैकएंड संसाधनों पर आने वाले ट्रैफ़िक को सीमित करने के लिए, Cloud आर्मर के रेट को सीमित करने वाली नीति जोड़नी होगी.

2e1b99d22f4f32a.png

आपको इनके बारे में जानकारी मिलेगी

  • सही हेल्थ जांच के साथ एचटीटीपी लोड बैलेंसर को सेट अप करने का तरीका.
  • Cloud आर्मर की रेट सीमित करने से जुड़ी नीति बनाने का तरीका.
  • यह कैसे पता करें कि वीएम से स्ट्रेस टेस्ट चलाने के दौरान, रेट सीमित करने वाली नीति की वजह से ट्रैफ़िक ब्लॉक हो रहा है या नहीं.

आपको इन चीज़ों की ज़रूरत होगी

  • बुनियादी नेटवर्किंग और एचटीटीपी की जानकारी
  • Unix/Linux कमांड लाइन के बारे में बुनियादी जानकारी

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेटअप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको नया खाता बनाना होगा.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों का डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करता. साथ ही, आप इसे किसी भी समय अपडेट कर सकते हैं.
  • प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होना चाहिए. साथ ही, आईडी को बदला नहीं जा सकता. सेट अप के बाद इसे बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है; आम तौर पर, आपको उसके होने की कोई परवाह नहीं होती. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना पड़ता है और आम तौर पर इसकी पहचान PROJECT_ID के रूप में की जाती है. इसलिए, अगर आपको यह पसंद नहीं आता है, तो कोई भी कोड जनरेट करें. इसके अलावा, खुद का भी कोड बनाकर देखा जा सकता है कि वह उपलब्ध है या नहीं. फिर यह "फ़्रोज़न" होता है प्रोजेक्ट बनने के बाद.
  • तीसरी वैल्यू, प्रोजेक्ट नंबर है, जिसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
  1. इसके बाद, आपको क्लाउड संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के अलावा किसी अन्य प्लैटफ़ॉर्म पर बिलिंग न करने के लिए, संसाधनों को बंद करने के लिए, "साफ़-सफ़ाई" का पालन करें कोडलैब के आखिर में दिए गए निर्देश देखें. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.

Cloud Shell शुरू करना

Google Cloud को आपके लैपटॉप से, कहीं से भी ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जा रहा है. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

GCP कंसोल में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर क्लाउड शेल आइकॉन पर क्लिक करें:

bce75f34b2c53987.png

प्रावधान करने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा. उसके पूरा हो जाने पर, आपको कुछ ऐसा दिखाई देगा:

f6ef2b5f13479f3a.png

इस वर्चुअल मशीन में ऐसे सभी डेवलपमेंट टूल मौजूद हैं जिनकी आपको ज़रूरत पड़ेगी. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और 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. बैकएंड को एचटीटीपी ट्रैफ़िक की अनुमति देने के लिए, फ़ायरवॉल के नियम कॉन्फ़िगर करें

फ़ायरवॉल के नियम कॉन्फ़िगर करें, ताकि Google Cloud की हेल्थ जांच और लोड बैलेंसर से बैकएंड पर एचटीटीपी ट्रैफ़िक को भेजने की अनुमति मिल सके.

हम आपके प्रोजेक्ट में बनाए गए डिफ़ॉल्ट VPC नेटवर्क का इस्तेमाल करेंगे. बैकएंड में एचटीटीपी ट्रैफ़िक को अनुमति देने के लिए फ़ायरवॉल नियम बनाएं. परफ़ॉर्मेंस की जांच से यह तय होता है कि लोड बैलेंसर के किन इंस्टेंस को नए कनेक्शन मिल सकते हैं. एचटीटीपी लोड बैलेंसिंग के लिए, आपके लोड बैलेंस किए गए इंस्टेंस की हेल्थ जांच 130.211.0.0/22 और 35.191.0.0/16 की रेंज से की जाती है. आपके VPC फ़ायरवॉल के नियमों को, इन कनेक्शन की अनुमति देनी होगी. साथ ही, लोड बैलेंसर एक ही आईपी रेंज के बैकएंड से बात करते हैं.

  1. Cloud Console में, नेविगेशन मेन्यू ( mainmenu.png) पर जाएं > VPC नेटवर्क > फ़ायरवॉल.

dbdf491e6d7863f3.png

  1. मौजूदा आईसीएमपी, इंटरनल, आरडीपी, और एसएसएच फ़ायरवॉल के नियमों पर ध्यान दें.Google Cloud का हर प्रोजेक्ट, डिफ़ॉल्ट नेटवर्क और फ़ायरवॉल के इन नियमों से शुरू होता है.
  2. फ़ायरवॉल का नियम बनाएं पर क्लिक करें.
  3. इन वैल्यू को सेट करें और अन्य सभी वैल्यू को डिफ़ॉल्ट पर रहने दें:

प्रॉपर्टी

वैल्यू (वैल्यू टाइप करें या बताया गया विकल्प चुनें)

नाम

default-allow-health-check

नेटवर्क

डिफ़ॉल्ट

टारगेट

बताए गए टारगेट टैग

टारगेट टैग

http-server

सोर्स फ़िल्टर

आईपी रेंज

सोर्स आईपी रेंज

130.211.0.0/22, 35.191.0.0/16

प्रोटोकॉल और पोर्ट

प्रोटोकॉल और पोर्ट तय करें. इसके बाद, tcp की जांच करें

  1. बनाएं पर क्लिक करें.

इसके अलावा, अगर 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. इंस्टेंस टेंप्लेट कॉन्फ़िगर करें और मैनेज किए जा रहे इंस्टेंस ग्रुप बनाएं

मैनेज किए जा रहे इंस्टेंस ग्रुप, एक जैसे इंस्टेंस का ग्रुप बनाने के लिए, इंस्टेंस टेंप्लेट का इस्तेमाल करते हैं. एचटीटीपी लोड बैलेंसर के बैकएंड बनाने के लिए, इनका इस्तेमाल करें.

इंस्टेंस टेंप्लेट को कॉन्फ़िगर करना

इंस्टेंस टेंप्लेट एक एपीआई रिसॉर्स है. इसका इस्तेमाल वीएम इंस्टेंस और मैनेज किए जा रहे इंस्टेंस ग्रुप बनाने के लिए किया जाता है. इंस्टेंस टेंप्लेट, मशीन टाइप, बूट डिस्क इमेज, सबनेट, लेबल, और अन्य इंस्टेंस प्रॉपर्टी के बारे में बताते हैं. us-east1 के लिए एक इंस्टेंस टेंप्लेट और europe-west1 के लिए एक इंस्टेंस टेंप्लेट बनाएं.

  1. Cloud Console में, नेविगेशन मेन्यू ( mainmenu.png) पर जाएं > Compute Engine > इंस्टेंस टेंप्लेट को इंस्टॉल करने के बाद, इंस्टेंस टेंप्लेट बनाएं पर क्लिक करें.
  2. नाम के लिए, us-east1-template लिखें.
  3. सीरीज़ के लिए, N1 चुनें.
  4. Networking, Disks, Security, Management , Sole-Tenancy पर क्लिक करें.

b60e2a44c3e4d50e.png

  1. मैनेजमेंट सेक्शन पर जाएं -

ee57f20ce55298fd.png

  1. मेटाडेटा में जाकर आइटम जोड़ें पर क्लिक करें और यह जानकारी दें:

कुंजी

वैल्यू

startup-script-url

gs://cloud-training/gcpnet/httplb/startup.sh

  1. नेटवर्किंग पर क्लिक करें.
  2. इन वैल्यू को सेट करें और अन्य सभी वैल्यू को डिफ़ॉल्ट पर रहने दें -

प्रॉपर्टी

वैल्यू (वैल्यू टाइप करें या बताया गया विकल्प चुनें)

नेटवर्क (नेटवर्क इंटरफ़ेस के नीचे)

डिफ़ॉल्ट

सबनेट (नेटवर्क इंटरफ़ेस में)

डिफ़ॉल्ट (us-east1)

नेटवर्क टैग

http-server

  1. बनाएं पर क्लिक करें.
  2. इंस्टेंस टेंप्लेट बनने तक इंतज़ार करें.

अब us-east1-template को कॉपी करके subnet-b के लिए एक और इंस्टेंस टेंप्लेट बनाएं:

  1. us-east1-template पर क्लिक करें. इसके बाद, सबसे ऊपर मौजूद, कॉपी करें विकल्प पर क्लिक करें.
  2. नाम के लिए, europe-west1-template टाइप करें.
  3. Networking, Disks, Security, Management , Sole-Tenancy पर क्लिक करें.
  4. नेटवर्किंग पर क्लिक करें.
  5. नेटवर्क इंटरफ़ेस में जाकर,डिफ़ॉल्ट इंटरफ़ेस में बदलाव करें. सबनेट के लिए, डिफ़ॉल्ट (europe-west1) चुनें.
  6. बनाएं पर क्लिक करें.

मैनेज किए जा रहे इंस्टेंस ग्रुप बनाना

us-east1 में और europe-west1 में एक इंस्टेंस ग्रुप बनाएं.

  1. अब भी Compute Engine पर, बाएं मेन्यू में इंस्टेंस ग्रुप पर क्लिक करें.

72319de055de3942.png

  1. इंस्टेंस ग्रुप बनाएं पर क्लिक करें. मैनेज किया जा रहा नया इंस्टेंस ग्रुप (स्टेटलेस) चुनें.
  2. इन वैल्यू को सेट करें और अन्य सभी वैल्यू को डिफ़ॉल्ट पर रहने दें:

प्रॉपर्टी

वैल्यू (वैल्यू टाइप करें या बताया गया विकल्प चुनें)

नाम

US-east1-mig

जगह

एक से ज़्यादा ज़ोन

क्षेत्र

यूएस-ईस्ट1

इंस्टेंस टेंप्लेट

us-east1-टेंप्लेट

ऑटो स्केलिंग > ऑटो स्केलिंग की नीति > पेंसिल आइकॉन पर क्लिक करें > मेट्रिक किस तरह की है

सीपीयू (CPU) का इस्तेमाल

सीपीयू के इस्तेमाल का टारगेट

80 पर, 'हो गया' पर क्लिक करें.

कूल डाउन पीरियड

45

इंस्टेंस की कम से कम संख्या

1

इंस्टेंस की ज़्यादा से ज़्यादा संख्या

5

  1. बनाएं पर क्लिक करें.

अब europe-west1 में europe-west1-mig के लिए दूसरा इंस्टेंस ग्रुप बनाने के लिए यही प्रक्रिया दोहराएं:

  1. इंस्टेंस ग्रुप बनाएं पर क्लिक करें.
  2. इन वैल्यू को सेट करें और अन्य सभी वैल्यू को डिफ़ॉल्ट पर रहने दें:

प्रॉपर्टी

वैल्यू (वैल्यू टाइप करें या बताया गया विकल्प चुनें)

नाम

यूरोप-वेस्ट1-मिग

जगह

एक से ज़्यादा ज़ोन

क्षेत्र

यूरोप-वेस्ट1

इंस्टेंस टेंप्लेट

यूरोप-वेस्ट1-टेंप्लेट

ऑटो स्केलिंग > ऑटो स्केलिंग की नीति > पेंसिल आइकॉन पर क्लिक करें > मेट्रिक किस तरह की है

सीपीयू (CPU) का इस्तेमाल

सीपीयू के इस्तेमाल का टारगेट

80 पर, 'हो गया' पर क्लिक करें.

कूल डाउन पीरियड

45

इंस्टेंस की कम से कम संख्या

1

इंस्टेंस की ज़्यादा से ज़्यादा संख्या

5

  1. बनाएं पर क्लिक करें.

5. एचटीटीपी लोड बैलेंसर को कॉन्फ़िगर करना

एचटीटीपी लोड बैलेंसर को कॉन्फ़िगर करें, ताकि दो बैकएंड (us-east1 में us-east1-mig और europe-west1 में europe-west1-mig) के बीच ट्रैफ़िक को संतुलित किया जाए, तो नेटवर्क डायग्राम में इसका उदाहरण दिखाया गया है:

2e1b99d22f4f32a.png

कॉन्फ़िगरेशन शुरू करना

  1. Cloud Console में, नेविगेशन मेन्यू ( mainmenu.png) पर क्लिक करें > नेटवर्क सेवाएं पर क्लिक करें > लोड बैलेंसिंग को चुनें. इसके बाद, लोड बैलेंसर बनाएं पर क्लिक करें.
  2. एचटीटीपी(एस) लोड बैलेंसिंग में जाकर, कॉन्फ़िगरेशन शुरू करें पर क्लिक करें.

8197d8f041e8eafd.png

  1. इंटरनेट से मेरी वीएम तक, क्लासिक एचटीटीपी(एस) लोड बैलेंसर को चुनें और जारी रखें पर क्लिक करें.
  2. नाम को http-lb पर सेट करें.

बैकएंड कॉन्फ़िगर करना

बैकएंड सेवाएं, आने वाले ट्रैफ़िक को एक या उससे ज़्यादा अटैच किए गए बैकएंड पर भेजती हैं. हर बैकएंड में एक इंस्टेंस ग्रुप और सेवा की अतिरिक्त क्षमता वाला मेटाडेटा होता है.

  1. बैकएंड कॉन्फ़िगरेशन पर क्लिक करें.
  2. बैकएंड सेवाओं और बैकएंड बकेट के लिए, बैकएंड सेवा बनाएं पर क्लिक करें.
  3. इन वैल्यू को सेट करें और अन्य सभी वैल्यू को डिफ़ॉल्ट पर रहने दें:

प्रॉपर्टी

वैल्यू (विकल्प के तौर पर बताया गया विकल्प चुनें)

नाम

http-backend

इंस्टेंस ग्रुप

US-east1-mig

नंबर पोर्ट करें

80

बैलेंसिंग मोड

दर

ज़्यादा से ज़्यादा आरपीएस

50 (हर उदाहरण के लिए)

क्षमता

100

  1. हो गया पर क्लिक करें.
  2. बैकएंड जोड़ें पर क्लिक करें.
  3. इन वैल्यू को सेट करें और अन्य सभी वैल्यू को डिफ़ॉल्ट पर रहने दें:

प्रॉपर्टी

वैल्यू (विकल्प के तौर पर बताया गया विकल्प चुनें)

इंस्टेंस ग्रुप

यूरोप-वेस्ट1-मिग

नंबर पोर्ट करें

80

बैलेंसिंग मोड

इस्तेमाल

बैकएंड का ज़्यादा से ज़्यादा इस्तेमाल

80

क्षमता

100

  1. हो गया पर क्लिक करें.
  2. सेहत की जांच के लिए, स्वास्थ्य जांच बनाएं को चुनें.

199239806577ceac.png

  1. इन वैल्यू को सेट करें और अन्य सभी वैल्यू को डिफ़ॉल्ट पर रहने दें:

प्रॉपर्टी

वैल्यू (विकल्प के तौर पर बताया गया विकल्प चुनें)

नाम

http-health-check

प्रोटोकॉल

टीसीपी

पोर्ट

80

20f7af9fce140475.png

  1. सेव करें पर क्लिक करें.
  2. लॉगिंग चालू करें बॉक्स पर सही का निशान लगाएं.
  3. सैंपल रेट को 1 पर सेट करें:

dab4b15c13917786.png

  1. बैकएंड सेवा बनाने के लिए, बनाएं पर क्लिक करें.

2db64614f855f239.png

फ़्रंटएंड कॉन्फ़िगर करना

होस्ट और पाथ रूल के आधार पर यह तय होता है कि ट्रैफ़िक को कैसे भेजा जाएगा. उदाहरण के लिए, वीडियो ट्रैफ़िक को एक बैकएंड पर और स्टैटिक ट्रैफ़िक को दूसरे बैकएंड पर भेजा जा सकता है. हालांकि, इस लैब में होस्ट और पाथ के नियम कॉन्फ़िगर नहीं किए जा रहे हैं.

  1. फ़्रंट कॉन्फ़िगरेशन पर क्लिक करें.
  2. अन्य सभी वैल्यू को डिफ़ॉल्ट वैल्यू पर रखते हुए, यहां दी गई वैल्यू डालें:

प्रॉपर्टी

वैल्यू (वैल्यू टाइप करें या बताया गया विकल्प चुनें)

प्रोटोकॉल

HTTP

आईपी वर्शन

IPv4

आईपी पता

कुछ समय के लिए

पोर्ट

80

  1. हो गया पर क्लिक करें.
  2. फ़्रंट-एंड आईपी और पोर्ट जोड़ें पर क्लिक करें.
  3. अन्य सभी वैल्यू को डिफ़ॉल्ट वैल्यू पर रखते हुए, यहां दी गई वैल्यू डालें:

प्रॉपर्टी

वैल्यू (वैल्यू टाइप करें या बताया गया विकल्प चुनें)

प्रोटोकॉल

HTTP

आईपी वर्शन

IPv6

आईपी पता

कुछ समय के लिए

पोर्ट

80

  1. हो गया पर क्लिक करें.

एचटीटीपी लोड बैलेंसर की समीक्षा करना और उसे बनाना

  1. समीक्षा करें और फ़ाइनल करें पर क्लिक करें.

2c88715aa5f22800.png

  1. बैकएंड सेवाएं और फ़्रंटएंड की समीक्षा करें.

b2fffef90be309f0.png

  1. बनाएं पर क्लिक करें.
  2. लोड बैलेंसर बनने तक इंतज़ार करें.
  3. लोड बैलेंसर के नाम (http-lb) पर क्लिक करें.
  4. अगले टास्क के लिए, लोड बैलेंसर के आईपीवी4 और आईपीवी6 पते नोट करें. उन्हें क्रम से [LB_IP_v4] और [LB_IP_v6] कहा जाएगा.

6. एचटीटीपी लोड बैलेंसर की जांच करें

अब आपने अपने बैकएंड के लिए एचटीटीपी लोड बैलेंसर बना लिया है, तो पुष्टि करें कि ट्रैफ़िक को बैकएंड सेवा पर भेजा जा रहा है.

एचटीटीपी लोड बैलेंसर को ऐक्सेस करना

एचटीटीपी लोड बैलेंसर के आईपीवी4 ऐक्सेस की जांच करने के लिए, अपने ब्राउज़र में एक नया टैब खोलें और http://[LB_IP_v4] पर जाएं. [LB_IP_v4] को लोड बैलेंसर के आईपीवी4 पते से बदलना न भूलें.

अगर आपके पास लोकल आईपीवी6 पता है, तो http://[LB_IP_v6] पर जाकर एचटीटीपी लोड बैलेंसर के आईपीवी6 पते का इस्तेमाल करें. [LB_IP_v6] को लोड बैलेंसर के आईपीवी6 पते से बदलना न भूलें.

812d1fc75d9dfb3c.png

एचटीटीपी लोड बैलेंसर की जांच के लिए तनाव की जांच

सीज का इस्तेमाल करके, एचटीटीपी लोड बैलेंसर पर लोड को सिम्युलेट करने के लिए नई वीएम बनाएं. इसके बाद, यह देखें कि लोड ज़्यादा होने पर, दोनों बैकएंड में ट्रैफ़िक संतुलित है या नहीं.

  1. कंसोल में, नेविगेशन मेन्यू ( mainmenu.png) पर जाएं > Compute Engine > VM इंस्टेंस.
  2. इंस्टेंस बनाएं पर क्लिक करें.
  3. इन वैल्यू को सेट करें और अन्य सभी वैल्यू को डिफ़ॉल्ट पर रहने दें:

प्रॉपर्टी

वैल्यू (वैल्यू टाइप करें या बताया गया विकल्प चुनें)

नाम

सीज-वीएम

क्षेत्र

यूएस-वेस्ट1

ज़ोन

यूएस-वेस्ट1-सी

सीरीज़

N1

  1. बनाएं पर क्लिक करें.
  2. sieg-vm इंस्टेंस बनने तक इंतज़ार करें.
  3. sieg-vm के लिए, टर्मिनल लॉन्च करने और कनेक्ट करने के लिए SSH पर क्लिक करें.
  4. घेरा इंस्टॉल करने के लिए, नीचे दिया गया कमांड चलाएं:
sudo apt-get -y install siege
  1. एचटीटीपी लोड बैलेंसर के आईपीवी4 पते को किसी एनवायरमेंट वैरिएबल में सेव करने के लिए, [LB_IP_v4] को IPv4 पते से बदलते हुए नीचे दिया गया निर्देश चलाएं:
export LB_IP=[LB_IP_v4]
  1. लोड को सिम्युलेट करने के लिए, नीचे दिया गया कमांड चलाएं:
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...
  1. Cloud Console में, नेविगेशन मेन्यू ( mainmenu.png) पर क्लिक करें, फिर नेटवर्क सेवाएं पर क्लिक करें > लोड बैलेंसिंग.
  2. http-lb पर क्लिक करें.
  3. निगरानी टैब पर क्लिक करें. उत्तरी अमेरिका और दो बैकएंड के बीच के ट्रैफ़िक पर दो से तीन मिनट तक नज़र रखें.

सबसे पहले, ट्रैफ़िक को सिर्फ़ us-east1-mig पर भेजा जाना चाहिए. हालांकि, आरपीएस में बढ़ोतरी होने पर, ट्रैफ़िक भी europe-west1-mig पर भेजा जाता है.

ead1e6d5c1f4cc4b.png

इससे पता चलता है कि डिफ़ॉल्ट रूप से, ट्रैफ़िक को सबसे नज़दीकी बैकएंड पर भेजा जाता है. हालांकि, अगर लोड बहुत ज़्यादा है, तो ट्रैफ़िक को बैकएंड पर भेजा जा सकता है.

e5c6a657706c832c.png

  1. sieg-vm के SSH टर्मिनल पर वापस जाएं.
  2. हमले को रोकने के लिए CTRL+C दबाएं.

7. Cloud आर्मर रेट लिमिटिंग नीति बनाएं

इस सेक्शन में, अनुरोध संख्या सीमित करने की नीति सेट करके, Cloud Armor का इस्तेमाल करके, siige-vm को एचटीटीपी लोड बैलेंसर ऐक्सेस करने से रोका जा सकता है.

  1. Cloud Shell में(Cloud Shell का इस्तेमाल करने के तरीके के बारे में निर्देश पाने के लिए "सेटअप और ज़रूरी शर्तें" में "Cloud Shell" देखें), gcloud के ज़रिए सुरक्षा नीति बनाएं:
gcloud compute security-policies create rate-limit-siege \
    --description "policy for rate limiting"
  1. इसके बाद, अनुरोध संख्या सीमित करने का नियम जोड़ें:
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
  1. बैकएंड सेवा http-backend में सुरक्षा नीति अटैच करें:
gcloud compute backend-services update http-backend \
    --security-policy rate-limit-siege –-global
  1. कंसोल में, नेविगेशन मेन्यू पर जाएं > नेटवर्क सुरक्षा > Cloud Armor.
  2. दर-सीमा-घटाने का क्लिक करें. आपकी नीति इससे मिलती-जुलती होनी चाहिए:

8be87aa31c2ed74e.png

सुरक्षा नीति की पुष्टि करें

  1. seg-vm के एसएसएच टर्मिनल पर वापस लौटें.
  2. एलबी आईपी के हिसाब से कर्ल चलाएं, ताकि यह पुष्टि की जा सके कि आपके पास अब भी उससे कनेक्ट करने की सुविधा है. जवाब 200 रिस्पॉन्स मिलेगा.
curl http://$LB_IP
  1. sieg-vm के SSH टर्मिनल में, लोड को सिम्युलेट करने के लिए, नीचे दिया गया कमांड चलाएं:
siege -c 250 http://$LB_IP

आउटपुट ऐसा दिखना चाहिए (कॉपी न करें; यह आउटपुट का उदाहरण है):

** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. सुरक्षा नीति लॉग देखकर पता लगाएं कि यह ट्रैफ़िक भी ब्लॉक हुआ है या नहीं.
  2. कंसोल में, नेविगेशन मेन्यू > नेटवर्क की सुरक्षा > Cloud Armor.
  3. rate-limit-sieg पर क्लिक करें.
  4. लॉग पर क्लिक करें.

f8be7c01c3d7c8f5.png

  1. नीति के लॉग देखें पर क्लिक करें.
  2. लॉगिंग पेज पर, क्वेरी झलक में सभी टेक्स्ट को हटाना न भूलें.
  3. संसाधन को Cloud एचटीटीपी लोड बैलेंसर > के तौर पर चुनें 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"
  1. अब क्वेरी चलाएं पर क्लिक करें.
  2. क्वेरी के नतीजों में लॉग एंट्री को बड़ा करें.
  3. httpRequest को बड़ा करें. यह अनुरोध sieg-vm आईपी पते से होना चाहिए. अगर ऐसा नहीं है, तो अन्य लॉग एंट्री को बड़ा करें.
  4. jsonPayload को बड़ा करें.
  5. लागू की गई सुरक्षा नीति को बड़ा करें.

151f575ba7b3bde9.png

ध्यान दें कि कॉन्फ़िगर की गई कार्रवाई को rate-limit-siege के नाम के साथ, RATE_BASED_BAN पर सेट किया गया है.

  1. अतिरिक्त जांच के लिए, नेविगेशन मेन्यू ( mainmenu.png) पर जाएं. इसके बाद, नेटवर्क सेवाएं पर क्लिक करें > लोड बैलेंसिंग. http-lb पर क्लिक करें. निगरानी टैब पर क्लिक करें.

ab9a8a66573a5ebd.png

ग्राफ़ में, सीज़िंग ट्रैफ़िक को देखा जा सकता है. इस बात का भी ध्यान रखें कि रेट सीमित ट्रैफ़िक, बैकएंड तक नहीं पहुंचता. साथ ही, इसे Cloud Armor नीति की वजह से ब्लॉक किया गया है.

बधाई हो! आपने Cloud Armor से, रेट लिमिटिंग के लिए इस लैब को पूरा कर लिया है

©2020 Google LLC सभी अधिकार सुरक्षित हैं. Google और Google का लोगो, Google LLC के ट्रेडमार्क हैं. अन्य सभी कंपनी और उत्पाद नाम उनसे संबद्ध कंपनियों के ट्रेडमार्क हो सकते हैं.

8. लैब क्लीन अप

  1. नेटवर्क सिक्योरिटी >> पर जाएं क्लाउड आर्मर >> %POLICY NAME% और 'मिटाएं' चुनें -

eeafa7cafa11c4c7.png

  1. नेटवर्किंग >> पर जाएं नेटवर्क सेवाएं >> लोड बैलेंसिंग. अपना बनाया हुआ लोड बैलेंसर चुनें और 'मिटाएं' पर क्लिक करें.

3886458f25cfbd36.png

मिटाए जाने वाले अतिरिक्त संसाधनों के तौर पर, बैकएंड सेवा और परफ़ॉर्मेंस की जांच को चुनें -

a0193e91b2f4cb6f.png

  1. नेविगेशन मेन्यू ( mainmenu.png) पर जाएं > Compute Engine > इंस्टेंस ग्रुप. मैनेज किए जा रहे दोनों इंस्टेंस ग्रुप को चुनें और मिटाएं - पर क्लिक करें

5027d56977997f70.png

"मिटाएं" लिखकर मिटाने की पुष्टि करें उसे टेक्स्ट बॉक्स में डाल दें.

मैनेज किए गए इंस्टेंस ग्रुप मिटाए जाने तक इंतज़ार करें. ऐसा करने पर, ग्रुप में मौजूद इंस्टेंस भी मिट जाते हैं. इंस्टेंस ग्रुप को मिटाने के बाद ही, टेंप्लेट मिटाए जा सकते हैं.

  1. बाईं ओर मौजूद पैनल से इंस्टेंस टेंप्लेट पर जाएं**.** दोनों इंस्टेंस टेंप्लेट को चुनें और मिटाएं - पर क्लिक करें

8d88ABcd32c11ce.png

  1. बाईं ओर मौजूद पैनल से VM इंस्टेंस पर जाएं**.** sej-vm इंस्टेंस के बगल में मौजूद एलिप्सेस चुनें और 'मिटाएं' पर क्लिक करें.

2b58ab43695836e9.png

  1. नेविगेशन मेन्यू ( mainmenu.png) पर जाएं > VPC नेटवर्क > फ़ायरवॉल. 'स्वास्थ्य की जांच को अनुमति दें' को चुनें और मिटाएं पर क्लिक करें -

561d5e771d36d85.png

9. बधाई हो!

आपने Cloud Armor पर, रेट सीमित करने की सुविधा लागू कर दी है. आपने us-east1 और europe-west1 में बैकएंड के साथ एक एचटीटीपी लोड बैलेंसर कॉन्फ़िगर किया है. इसके बाद, आपने वीएम की मदद से लोड बैलेंसर की जांच की और Cloud Armor पर रेट सीमित करने की सुविधा के ज़रिए आईपी पते को ब्लॉक कर दिया. सुरक्षा नीति के लॉग देखकर, ट्रैफ़िक को ब्लॉक किए जाने की वजह का पता लगाया जा सकता है.

इसमें हमने इन विषयों के बारे में बताया

  • इंस्टेंस टेंप्लेट सेट अप करने और मैनेज किए जा रहे इंस्टेंस ग्रुप बनाने का तरीका.
  • एचटीटीपी लोड बैलेंसर सेट अप करने का तरीका.
  • Cloud आर्मर की रेट सीमित करने से जुड़ी नीति बनाने का तरीका.
  • इस बात की पुष्टि करने का तरीका कि दर तय करने की नीति, उम्मीद के मुताबिक काम कर रही है.

अगले चरण

  • सोर्स आईपी रेंज के आधार पर, रेट लिमिटिंग की नीति सेट अप करें. उदाहरण के तौर पर नीचे दिया गया निर्देश -
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