1. ভূমিকা
Google ক্লাউড HTTP(S) লোড ব্যালেন্সিং সারা বিশ্বের Google পয়েন্ট অফ উপস্থিতিতে (POP) Google-এর নেটওয়ার্কের প্রান্তে স্থাপন করা হয়। একটি HTTP(S) লোড ব্যালেন্সারে নির্দেশিত ব্যবহারকারীর ট্র্যাফিক ব্যবহারকারীর সবচেয়ে কাছের POP-এ প্রবেশ করে এবং তারপরে Google-এর গ্লোবাল নেটওয়ার্কের মাধ্যমে ভারসাম্যপূর্ণভাবে নিকটতম ব্যাকএন্ডে লোড করা হয় যার পর্যাপ্ত ক্ষমতা উপলব্ধ।
ক্লাউড আর্মার হল Google-এর বিতরণ করা অস্বীকৃতি পরিষেবা এবং ওয়েব অ্যাপ্লিকেশন ফায়ারওয়াল (WAF) সনাক্তকরণ সিস্টেম। ক্লাউড আর্মারকে Google ক্লাউড HTTP লোড ব্যালেন্সারের সাথে শক্তভাবে সংযুক্ত করা হয়েছে এবং আপনাকে অবাঞ্ছিত অনুরোধের জন্য আগত ট্র্যাফিক জিজ্ঞাসাবাদ করার অনুমতি দেয়। এই পরিষেবার রেট সীমিত বৈশিষ্ট্য আপনাকে অনুরোধের পরিমাণের উপর ভিত্তি করে ব্যাকএন্ড সংস্থানগুলিতে ট্র্যাফিক কমাতে দেয় এবং আপনার ভার্চুয়াল প্রাইভেট ক্লাউড (ভিপিসি) নেটওয়ার্কে রিসোর্স গ্রহণ করা থেকে অনাকাঙ্খিত ট্র্যাফিককে বাধা দেয়।
এই ল্যাবে, আপনি গ্লোবাল ব্যাকএন্ড সহ একটি HTTP লোড ব্যালেন্সার কনফিগার করেন, যেমনটি নীচের চিত্রে দেখানো হয়েছে। তারপরে, আপনি লোড ব্যালেন্সার পরীক্ষা করতে চাপ দেবেন এবং আপনার ব্যাকএন্ড সংস্থানগুলিকে আঘাতকারী ট্র্যাফিককে সীমিত করতে একটি ক্লাউড আর্মার রেট সীমিত করার নীতি যোগ করবেন।
আপনি কি শিখবেন
- যথাযথ স্বাস্থ্য পরীক্ষা সহ কিভাবে একটি HTTP লোড ব্যালেন্সার সেট আপ করবেন।
- কিভাবে একটি ক্লাউড আর্মার রেট সীমিত নীতি তৈরি করবেন।
- VM থেকে স্ট্রেস টেস্ট চালানোর সময় যে হার সীমিত করার নীতি ট্র্যাফিককে ব্লক করছে তা কীভাবে যাচাই করবেন।
আপনি কি প্রয়োজন হবে
- বেসিক নেটওয়ার্কিং এবং HTTP এর জ্ঞান
- মৌলিক ইউনিক্স/লিনাক্স কমান্ড লাইন জ্ঞান
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না এবং আপনি যে কোনো সময় এটি আপডেট করতে পারেন।
- সমস্ত Google ক্লাউড প্রজেক্ট জুড়ে প্রোজেক্ট আইডি অবশ্যই অনন্য হতে হবে এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে প্রজেক্ট আইডি উল্লেখ করতে হবে (এবং এটি সাধারণত
PROJECT_ID
হিসাবে চিহ্নিত করা হয়), তাই আপনি যদি এটি পছন্দ না করেন তবে অন্য একটি এলোমেলো তৈরি করুন, অথবা, আপনি নিজের চেষ্টা করে দেখতে পারেন এটি উপলব্ধ কিনা। তারপর প্রকল্প তৈরি হওয়ার পরে এটি "হিমায়িত" হয়। - একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। রিসোর্স বন্ধ করতে যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন, কোডল্যাবের শেষে পাওয়া যেকোনো "ক্লিন-আপ" নির্দেশাবলী অনুসরণ করুন। Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
ক্লাউড শেল শুরু করুন
যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।
GCP কনসোল থেকে উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:
পরিবেশের ব্যবস্থা করতে এবং সংযোগ করতে এটি শুধুমাত্র কয়েক মুহূর্ত নিতে হবে। এটি সমাপ্ত হলে, আপনি এই মত কিছু দেখতে হবে:
এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই ল্যাবে আপনার সমস্ত কাজ কেবল একটি ব্রাউজার দিয়ে করা যেতে পারে।
আপনি শুরু করার আগে
ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রকল্প আইডি সেট আপ করা আছে
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 ট্র্যাফিক ব্যাকএন্ডে অনুমতি দেওয়ার জন্য ফায়ারওয়াল নিয়মগুলি কনফিগার করুন৷
Google ক্লাউড স্বাস্থ্য পরীক্ষা এবং লোড ব্যালেন্সার থেকে ব্যাকএন্ডে HTTP ট্র্যাফিকের অনুমতি দেওয়ার জন্য ফায়ারওয়াল নিয়মগুলি কনফিগার করুন৷
আমরা আপনার প্রকল্পে তৈরি ডিফল্ট VPC নেটওয়ার্ক ব্যবহার করব। ব্যাকএন্ডে HTTP ট্র্যাফিকের অনুমতি দেওয়ার জন্য একটি ফায়ারওয়াল নিয়ম তৈরি করুন। স্বাস্থ্য পরীক্ষা নির্ধারণ করে যে লোড ব্যালেন্সারের কোন দৃষ্টান্তগুলি নতুন সংযোগ পেতে পারে। HTTP লোড ব্যালেন্সিংয়ের জন্য, আপনার লোডের ভারসাম্যপূর্ণ দৃষ্টান্তগুলির স্বাস্থ্য পরীক্ষাগুলি 130.211.0.0/22 এবং 35.191.0.0/16 রেঞ্জের ঠিকানাগুলি থেকে আসে। আপনার ভিপিসি ফায়ারওয়াল নিয়মগুলি অবশ্যই এই সংযোগগুলিকে অনুমতি দেবে৷ এছাড়াও, লোড ব্যালেন্সারগুলি একই আইপি রেঞ্জের ব্যাকএন্ডের সাথে কথা বলে।
- ক্লাউড কনসোলে, নেভিগেশন মেনুতে নেভিগেট করুন ( ) > ভিপিসি নেটওয়ার্ক > ফায়ারওয়াল ।
- বিদ্যমান ICMP , অভ্যন্তরীণ , RDP , এবং SSH ফায়ারওয়াল নিয়মগুলি লক্ষ্য করুন৷ প্রতিটি Google ক্লাউড প্রকল্প ডিফল্ট নেটওয়ার্ক এবং এই ফায়ারওয়াল নিয়মগুলি দিয়ে শুরু হয়৷
- ফায়ারওয়াল নিয়ম তৈরি করুন ক্লিক করুন।
- নিম্নলিখিত মানগুলি সেট করুন, অন্যান্য সমস্ত মান তাদের ডিফল্টে ছেড়ে দিন:
সম্পত্তি | মান (প্রকার মান বা নির্দিষ্ট করা বিকল্প নির্বাচন করুন) |
নাম | ডিফল্ট-অনুমতি-স্বাস্থ্য-পরীক্ষা |
নেটওয়ার্ক | ডিফল্ট |
টার্গেট | নির্দিষ্ট লক্ষ্য ট্যাগ |
লক্ষ্য ট্যাগ | http-সার্ভার |
উৎস ফিল্টার | আইপি রেঞ্জ |
উৎস আইপি রেঞ্জ | 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 এর জন্য একটি উদাহরণ টেমপ্লেট তৈরি করুন।
- ক্লাউড কনসোলে, নেভিগেশন মেনুতে নেভিগেট করুন ( ) > কম্পিউট ইঞ্জিন > ইনস্ট্যান্স টেমপ্লেট , এবং তারপরে ইনস্ট্যান্স টেমপ্লেট তৈরি করুন ক্লিক করুন।
- নামের জন্য, us-east1-টেমপ্লেট টাইপ করুন।
- সিরিজের জন্য, N1 নির্বাচন করুন।
- নেটওয়ার্কিং, ডিস্ক, সিকিউরিটি, ম্যানেজমেন্ট, সোল-টেনেন্সি ক্লিক করুন।
- ব্যবস্থাপনা বিভাগে যান -
- মেটাডেটার অধীনে, আইটেম যোগ করুন ক্লিক করুন এবং নিম্নলিখিতগুলি নির্দিষ্ট করুন:
চাবি | মান |
startup-script-url | gs://cloud-training/gcpnet/httplb/startup.sh |
- নেটওয়ার্কিং এ ক্লিক করুন।
- নিম্নলিখিত মানগুলি সেট করুন এবং অন্যান্য সমস্ত মানকে তাদের ডিফল্টে ছেড়ে দিন -
সম্পত্তি | মান (প্রকার মান বা নির্দিষ্ট করা বিকল্প নির্বাচন করুন) |
নেটওয়ার্ক (নেটওয়ার্ক ইন্টারফেসের অধীনে) | ডিফল্ট |
সাবনেট (নেটওয়ার্ক ইন্টারফেসের অধীনে) | ডিফল্ট (us-east1) |
নেটওয়ার্ক ট্যাগ | http-সার্ভার |
- তৈরি করুন ক্লিক করুন।
- ইনস্ট্যান্স টেমপ্লেট তৈরি হওয়ার জন্য অপেক্ষা করুন।
এখন us-east1-টেমপ্লেট অনুলিপি করে সাবনেট-বি- এর জন্য আরেকটি উদাহরণ টেমপ্লেট তৈরি করুন:
- us-east1-টেমপ্লেটে ক্লিক করুন এবং তারপর উপরে থেকে কপি অপশনে ক্লিক করুন।
- নামের জন্য, europe-west1-টেমপ্লেট টাইপ করুন।
- নেটওয়ার্কিং, ডিস্ক, সিকিউরিটি, ম্যানেজমেন্ট, সোল-টেনেন্সি ক্লিক করুন।
- নেটওয়ার্কিং এ ক্লিক করুন।
- নেটওয়ার্ক ইন্টারফেসের অধীনে, ডিফল্ট ইন্টারফেস সম্পাদনা করুন। সাবনেটের জন্য, ডিফল্ট নির্বাচন করুন (europe-west1) ।
- তৈরি করুন ক্লিক করুন।
পরিচালিত উদাহরণ গোষ্ঠী তৈরি করুন
us-east1 এবং ইউরোপ-west1- এ একটি পরিচালিত উদাহরণ গোষ্ঠী তৈরি করুন।
- এখনও কম্পিউট ইঞ্জিনে , বাম মেনুতে ইনস্ট্যান্স গ্রুপে ক্লিক করুন।
- ইনস্ট্যান্স গ্রুপ তৈরি করুন ক্লিক করুন। নতুন পরিচালিত উদাহরণ গোষ্ঠী নির্বাচন করুন (রাষ্ট্রহীন)।
- নিম্নলিখিত মানগুলি সেট করুন, অন্যান্য সমস্ত মান তাদের ডিফল্টে ছেড়ে দিন:
সম্পত্তি | মান (প্রকার মান বা নির্দিষ্ট করা বিকল্প নির্বাচন করুন) |
নাম | us-east1-mig |
অবস্থান | একাধিক অঞ্চল |
অঞ্চল | us-east1 |
উদাহরণ টেমপ্লেট | us-east1-টেমপ্লেট |
অটোস্কেলিং > অটোস্কেলিং নীতি > পেন্সিল আইকনে ক্লিক করুন > মেট্রিক টাইপ | CPU ব্যবহার |
লক্ষ্য CPU ব্যবহার | 80, Done এ ক্লিক করুন। |
শীতল-ডাউন সময়কাল | 45 |
দৃষ্টান্তের ন্যূনতম সংখ্যা | 1 |
দৃষ্টান্তের সর্বাধিক সংখ্যা | 5 |
- তৈরি করুন ক্লিক করুন।
এখন europe- west1- এ europe-west1-mig- এর জন্য একটি দ্বিতীয় উদাহরণ গ্রুপ তৈরি করতে একই পদ্ধতি পুনরাবৃত্তি করুন:
- ইনস্ট্যান্স গ্রুপ তৈরি করুন ক্লিক করুন।
- নিম্নলিখিত মানগুলি সেট করুন, অন্যান্য সমস্ত মান তাদের ডিফল্টে ছেড়ে দিন:
সম্পত্তি | মান (প্রকার মান বা নির্দিষ্ট করা বিকল্প নির্বাচন করুন) |
নাম | europe-west1-mig |
অবস্থান | একাধিক অঞ্চল |
অঞ্চল | europe-west1 |
উদাহরণ টেমপ্লেট | europe-west1-টেমপ্লেট |
অটোস্কেলিং > অটোস্কেলিং নীতি > পেন্সিল আইকনে ক্লিক করুন > মেট্রিক টাইপ | CPU ব্যবহার |
লক্ষ্য CPU ব্যবহার | 80, Done এ ক্লিক করুন। |
শীতল-ডাউন সময়কাল | 45 |
দৃষ্টান্তের ন্যূনতম সংখ্যা | 1 |
দৃষ্টান্তের সর্বাধিক সংখ্যা | 5 |
- তৈরি করুন ক্লিক করুন।
5. HTTP লোড ব্যালেন্সার কনফিগার করুন
দুটি ব্যাকএন্ডের মধ্যে ট্রাফিকের ভারসাম্য রাখতে HTTP লোড ব্যালেন্সার কনফিগার করুন ( us-east1- এ us-east1 এবং europe-west1-mig তে europe-west1), যেমন নেটওয়ার্ক ডায়াগ্রামে দেখানো হয়েছে:
কনফিগারেশন শুরু করুন
- ক্লাউড কনসোলে, নেভিগেশন মেনুতে ক্লিক করুন ( ) > নেটওয়ার্ক সার্ভিসেস > লোড ব্যালেন্সিং -এ ক্লিক করুন এবং তারপর ক্রিয়েট লোড ব্যালেন্সার ক্লিক করুন।
- HTTP(S) লোড ব্যালেন্সিংয়ের অধীনে, স্টার্ট কনফিগারেশনে ক্লিক করুন।
- ইন্টারনেট থেকে আমার ভিএম , ক্লাসিক HTTP(এস) লোড ব্যালেন্সার নির্বাচন করুন এবং চালিয়ে যান ক্লিক করুন।
- নামটি http-lb এ সেট করুন।
ব্যাকএন্ড কনফিগার করুন
ব্যাকএন্ড পরিষেবা এক বা একাধিক সংযুক্ত ব্যাকএন্ডে আগত ট্র্যাফিককে নির্দেশ করে। প্রতিটি ব্যাকএন্ড একটি ইনস্ট্যান্স গ্রুপ এবং অতিরিক্ত পরিবেশন ক্ষমতা মেটাডেটা নিয়ে গঠিত।
- ব্যাকএন্ড কনফিগারেশনে ক্লিক করুন।
- ব্যাকএন্ড পরিষেবা এবং ব্যাকএন্ড বালতিগুলির জন্য, একটি ব্যাকএন্ড পরিষেবা তৈরি করুন ক্লিক করুন।
- নিম্নলিখিত মানগুলি সেট করুন, অন্যান্য সমস্ত মান তাদের ডিফল্টে ছেড়ে দিন:
সম্পত্তি | মান (নির্দিষ্ট হিসাবে বিকল্প নির্বাচন করুন) |
নাম | http-ব্যাকএন্ড |
উদাহরণ গ্রুপ | us-east1-mig |
পোর্ট নম্বর | 80 |
ব্যালেন্সিং মোড | হার |
সর্বোচ্চ আরপিএস | 50 (প্রতি উদাহরণ) |
ক্ষমতা | 100 |
- সম্পন্ন ক্লিক করুন.
- ব্যাকএন্ড যোগ করুন ক্লিক করুন।
- নিম্নলিখিত মানগুলি সেট করুন, অন্যান্য সমস্ত মান তাদের ডিফল্টে ছেড়ে দিন:
সম্পত্তি | মান (নির্দিষ্ট হিসাবে বিকল্প নির্বাচন করুন) |
উদাহরণ গ্রুপ | europe-west1-mig |
পোর্ট নম্বর | 80 |
ব্যালেন্সিং মোড | ব্যবহার |
সর্বাধিক ব্যাকএন্ড ব্যবহার | 80 |
ক্ষমতা | 100 |
- সম্পন্ন ক্লিক করুন.
- স্বাস্থ্য পরীক্ষার জন্য, স্বাস্থ্য পরীক্ষা তৈরি করুন নির্বাচন করুন।
- নিম্নলিখিত মানগুলি সেট করুন, অন্যান্য সমস্ত মান তাদের ডিফল্টে ছেড়ে দিন:
সম্পত্তি | মান (নির্দিষ্ট হিসাবে বিকল্প নির্বাচন করুন) |
নাম | http-স্বাস্থ্য-পরীক্ষা |
প্রোটোকল | টিসিপি |
বন্দর | 80 |
- Save এ ক্লিক করুন।
- লগিং বক্স সক্ষম করুন চেক করুন।
- নমুনা হার 1 এ সেট করুন:
- ব্যাকএন্ড পরিষেবা তৈরি করতে তৈরি করুন ক্লিক করুন।
ফ্রন্টএন্ড কনফিগার করুন
হোস্ট এবং পথের নিয়মগুলি নির্ধারণ করে যে আপনার ট্র্যাফিক কীভাবে পরিচালিত হবে। উদাহরণস্বরূপ, আপনি একটি ব্যাকএন্ডে ভিডিও ট্র্যাফিক এবং অন্য ব্যাকএন্ডে স্ট্যাটিক ট্র্যাফিক পরিচালনা করতে পারেন। যাইহোক, আপনি এই ল্যাবে হোস্ট এবং পাথ নিয়মগুলি কনফিগার করছেন না।
- ফ্রন্টএন্ড কনফিগারেশনে ক্লিক করুন।
- অন্যান্য সমস্ত মান তাদের ডিফল্টে রেখে নিম্নলিখিতগুলি নির্দিষ্ট করুন:
সম্পত্তি | মান (প্রকার মান বা নির্দিষ্ট করা বিকল্প নির্বাচন করুন) |
প্রোটোকল | HTTP |
আইপি সংস্করণ | IPv4 |
আইপি ঠিকানা | ক্ষণস্থায়ী |
বন্দর | 80 |
- সম্পন্ন ক্লিক করুন.
- ফ্রন্টএন্ড আইপি এবং পোর্ট যোগ করুন ক্লিক করুন।
- অন্যান্য সমস্ত মান তাদের ডিফল্টে রেখে নিম্নলিখিতগুলি নির্দিষ্ট করুন:
সম্পত্তি | মান (প্রকার মান বা নির্দিষ্ট করা বিকল্প নির্বাচন করুন) |
প্রোটোকল | HTTP |
আইপি সংস্করণ | IPv6 |
আইপি ঠিকানা | ক্ষণস্থায়ী |
বন্দর | 80 |
- সম্পন্ন ক্লিক করুন.
পর্যালোচনা করুন এবং HTTP লোড ব্যালেন্সার তৈরি করুন
- পর্যালোচনা এবং চূড়ান্ত ক্লিক করুন.
- ব্যাকএন্ড পরিষেবা এবং ফ্রন্টএন্ড পর্যালোচনা করুন।
- Create এ ক্লিক করুন।
- লোড ব্যালেন্সার তৈরি হওয়ার জন্য অপেক্ষা করুন।
- লোড ব্যালেন্সারের নামের উপর ক্লিক করুন ( http-lb )।
- পরবর্তী কাজের জন্য লোড ব্যালেন্সারের IPv4 এবং IPv6 ঠিকানাগুলি নোট করুন। তাদের যথাক্রমে [LB_IP_v4] এবং [LB_IP_v6] হিসাবে উল্লেখ করা হবে।
6. HTTP লোড ব্যালেন্সার পরীক্ষা করুন
এখন আপনি আপনার ব্যাকএন্ডের জন্য HTTP লোড ব্যালেন্সার তৈরি করেছেন, যাচাই করুন যে ট্র্যাফিক ব্যাকএন্ড পরিষেবাতে ফরোয়ার্ড করা হয়েছে।
HTTP লোড ব্যালেন্সার অ্যাক্সেস করুন
HTTP লোড ব্যালেন্সারে IPv4 অ্যাক্সেস পরীক্ষা করতে, আপনার ব্রাউজারে একটি নতুন ট্যাব খুলুন এবং http://[LB_IP_v4]- এ নেভিগেট করুন। লোড ব্যালেন্সারের IPv4 ঠিকানা দিয়ে [LB_IP_v4] প্রতিস্থাপন করা নিশ্চিত করুন।
আপনার যদি স্থানীয় IPv6 ঠিকানা থাকে, তাহলে http://[LB_IP_v6]-এ নেভিগেট করে HTTP লোড ব্যালেন্সারের IPv6 ঠিকানা চেষ্টা করুন। লোড ব্যালেন্সারের IPv6 ঠিকানা দিয়ে [LB_IP_v6] প্রতিস্থাপন করা নিশ্চিত করুন।
স্ট্রেস পরীক্ষা HTTP লোড ব্যালেন্সার
সিজ ব্যবহার করে HTTP লোড ব্যালেন্সারে একটি লোড অনুকরণ করতে একটি নতুন VM তৈরি করুন। তারপর, লোড বেশি হলে উভয় ব্যাকএন্ড জুড়ে ট্রাফিক ভারসাম্যপূর্ণ কিনা তা নির্ধারণ করুন।
- কনসোলে, নেভিগেশন মেনুতে নেভিগেট করুন ( ) > কম্পিউট ইঞ্জিন > VM দৃষ্টান্ত ।
- উদাহরণ তৈরি করুন ক্লিক করুন।
- নিম্নলিখিত মানগুলি সেট করুন, অন্যান্য সমস্ত মান তাদের ডিফল্টে ছেড়ে দিন:
সম্পত্তি | মান (প্রকার মান বা নির্দিষ্ট করা বিকল্প নির্বাচন করুন) |
নাম | siege-vm |
অঞ্চল | us-west1 |
জোন | us-west1-c |
সিরিজ | N1 |
- তৈরি করুন ক্লিক করুন।
- siege-vm উদাহরণ তৈরি হওয়ার জন্য অপেক্ষা করুন।
- সিজ-ভিএম- এর জন্য, টার্মিনাল চালু করতে এবং সংযোগ করতে SSH-এ ক্লিক করুন।
- সিজ ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:
sudo apt-get -y install siege
- এনভায়রনমেন্ট ভেরিয়েবলে HTTP লোড ব্যালেন্সারের IPv4 ঠিকানা সংরক্ষণ করতে, IPv4 ঠিকানার সাথে [LB_IP_v4] প্রতিস্থাপন করে নিম্নলিখিত কমান্ডটি চালান:
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...
- ক্লাউড কনসোলে, নেভিগেশন মেনুতে ক্লিক করুন ( ), নেটওয়ার্ক সার্ভিসেস > লোড ব্যালেন্সিং -এ ক্লিক করুন।
- http-lb-এ ক্লিক করুন।
- মনিটরিং ট্যাবে ক্লিক করুন। 2 থেকে 3 মিনিটের জন্য উত্তর আমেরিকা এবং দুটি ব্যাকএন্ডের মধ্যে ট্র্যাফিক নিরীক্ষণ করুন।
প্রথমে, ট্র্যাফিককে শুধুমাত্র us-east1-mig- এ নির্দেশিত করা উচিত কিন্তু RPS বৃদ্ধির সাথে সাথে ট্র্যাফিকও ইউরোপ-ওয়েস্ট1-মিগ-এর দিকে পরিচালিত হয়।
এটি প্রদর্শন করে যে ডিফল্টরূপে, ট্র্যাফিকটি নিকটতম ব্যাকএন্ডে ফরোয়ার্ড করা হয়, তবে লোড খুব বেশি হলে, ট্র্যাফিক ব্যাকএন্ড জুড়ে বিতরণ করা যেতে পারে।
- সিজ-ভিএম- এর SSH টার্মিনালে ফিরে যান।
- অবরোধ বন্ধ করতে CTRL+C টিপুন।
7. ক্লাউড আর্মার রেট লিমিটিং নীতি তৈরি করুন
এই বিভাগে, আপনি ক্লাউড আর্মার ব্যবহার করবেন একটি হার সীমিত করার নীতি সেট করে HTTP লোড ব্যালেন্সার অ্যাক্সেস করা থেকে সিজ-ভিএমকে অস্বীকার করতে।
- ক্লাউড শেল-এ (ক্লাউড শেল কীভাবে ব্যবহার করবেন তার নির্দেশাবলীর জন্য " সেটআপ এবং প্রয়োজনীয়তা " এর অধীনে " স্টার্ট ক্লাউড শেল " পড়ুন), 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-ব্যাকেন্ডে নিরাপত্তা নীতি সংযুক্ত করুন:
gcloud compute backend-services update http-backend \ --security-policy rate-limit-siege –-global
- কনসোলে, নেভিগেশন মেনু > নেটওয়ার্ক নিরাপত্তা > ক্লাউড আর্মারে নেভিগেট করুন।
- হার-সীমা-অবরোধে ক্লিক করুন । আপনার নীতি নিম্নলিখিত অনুরূপ হওয়া উচিত:
নিরাপত্তা নীতি যাচাই করুন
- সিজ-ভিএম-এর SSH টার্মিনালে ফিরে যান।
- আপনি এখনও এটির সাথে সংযোগ করতে পারেন তা যাচাই করতে LB IP এর বিপরীতে একটি কার্ল চালান, একটি 200 প্রতিক্রিয়া পাওয়া উচিত।
curl http://$LB_IP
- সিজ-ভিএম-এর SSH টার্মিনালে, একটি লোড অনুকরণ করতে, নিম্নলিখিত কমান্ডটি চালান:
siege -c 250 http://$LB_IP
আউটপুটটি এইরকম হওয়া উচিত (কপি করবেন না; এটি উদাহরণ আউটপুট):
** SIEGE 4.0.4 ** Preparing 250 concurrent users for battle. The server is now under siege...
- এই ট্র্যাফিকটিও অবরুদ্ধ কিনা তা নির্ধারণ করতে নিরাপত্তা নীতি লগগুলি অন্বেষণ করুন৷
- কনসোলে, নেভিগেশন মেনু > নেটওয়ার্ক নিরাপত্তা > ক্লাউড আর্মারে নেভিগেট করুন।
- হার-সীমা-অবরোধে ক্লিক করুন।
- লগ-এ ক্লিক করুন।
- নীতি লগ দেখুন ক্লিক করুন.
- লগিং পৃষ্ঠায়, ক্যোয়ারী প্রিভিউতে সমস্ত পাঠ্য সাফ করা নিশ্চিত করুন৷
- ক্লাউড 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"
- এখন Run Query এ ক্লিক করুন।
- ক্যোয়ারী ফলাফলে একটি লগ এন্ট্রি প্রসারিত করুন।
- প্রসারিত httpRequest . অনুরোধটি সিজ-ভিএম আইপি ঠিকানা থেকে হওয়া উচিত। যদি না হয়, অন্য লগ এন্ট্রি প্রসারিত করুন.
- jsonPayload প্রসারিত করুন।
- এনফোর্সড সিকিউরিটি পলিসি প্রসারিত করুন।
লক্ষ্য করুন যে কনফিগার করা অ্যাকশনটি RATE_BASED_BAN- এ সেট করা হয়েছে রেটে-লিমিট-সিজ নামের সাথে।
- একটি অতিরিক্ত চেক হিসাবে, নেভিগেশন মেনুতে যান ( ), নেটওয়ার্ক সার্ভিসেস > লোড ব্যালেন্সিং -এ ক্লিক করুন। http-lb-এ ক্লিক করুন। মনিটরিং ট্যাবে ক্লিক করুন।
আপনি গ্রাফে অবরোধ ট্র্যাফিক দেখতে পারেন। আপনি আরও লক্ষ্য করবেন যে রেট সীমিত ট্র্যাফিক ব্যাকএন্ডে পৌঁছায় না এবং ক্লাউড আর্মার নীতি দ্বারা অবরুদ্ধ।
অভিনন্দন! আপনি ক্লাউড আর্মারের সাথে রেট লিমিটিং-এ এই ল্যাবটি সম্পূর্ণ করেছেন
©2020 Google LLC সর্বস্বত্ব সংরক্ষিত৷ Google এবং Google লোগো হল Google LLC-এর ট্রেডমার্ক। অন্যান্য সমস্ত কোম্পানি এবং পণ্যের নাম সংশ্লিষ্ট কোম্পানির ট্রেডমার্ক হতে পারে যার সাথে তারা যুক্ত।
8. ল্যাব পরিষ্কার করা
- নেটওয়ার্ক সিকিউরিটি >> ক্লাউড আর্মার >> %POLICY NAME%- এ নেভিগেট করুন এবং ডিলিট নির্বাচন করুন -
- নেটওয়ার্কিং >> নেটওয়ার্ক পরিষেবা >> লোড ব্যালেন্সিং-এ নেভিগেট করুন। আপনার তৈরি লোড ব্যালেন্সার নির্বাচন করুন এবং মুছুন ক্লিক করুন।
মুছে ফেলার জন্য অতিরিক্ত সংস্থান হিসাবে ব্যাকএন্ড পরিষেবা এবং স্বাস্থ্য পরীক্ষা নির্বাচন করুন -
- নেভিগেশন মেনুতে নেভিগেট করুন ( ) > কম্পিউট ইঞ্জিন > ইনস্ট্যান্স গ্রুপ। উভয় পরিচালিত দৃষ্টান্ত গোষ্ঠী নির্বাচন করুন এবং মুছুন ক্লিক করুন -
পাঠ্যবক্সে "মুছুন" টাইপ করে মুছে ফেলা নিশ্চিত করুন।
পরিচালিত উদাহরণ গোষ্ঠীগুলি মুছে ফেলার জন্য অপেক্ষা করুন। এটি গ্রুপের দৃষ্টান্তগুলিকেও মুছে দেয়। উদাহরণ গোষ্ঠীটি মুছে ফেলার পরেই আপনি টেমপ্লেটগুলি মুছতে পারেন৷
- বাম দিকের ফলক থেকে ইনস্ট্যান্স টেমপ্লেটগুলিতে নেভিগেট করুন**।** উভয় দৃষ্টান্ত টেমপ্লেট নির্বাচন করুন এবং মুছুন ক্লিক করুন -
- বাম দিকের ফলক থেকে VM দৃষ্টান্তগুলিতে নেভিগেট করুন**।** সিজ-ভিএম ইনস্ট্যান্সের পাশে উপবৃত্তটি নির্বাচন করুন এবং মুছুন ক্লিক করুন।
- নেভিগেশন মেনুতে নেভিগেট করুন ( ) > ভিপিসি নেটওয়ার্ক > ফায়ারওয়াল । ডিফল্ট-অনুমতি-স্বাস্থ্য-চেক নির্বাচন করুন এবং মুছুন ক্লিক করুন -
9. অভিনন্দন!
আপনি ক্লাউড আর্মারের সাথে সীমিত হার সফলভাবে বাস্তবায়ন করেছেন। আপনি us-east1 এবং europe-west1-এ ব্যাকএন্ড সহ একটি HTTP লোড ব্যালেন্সার কনফিগার করেছেন। তারপরে, আপনি চাপ দিয়ে লোড ব্যালেন্সারটিকে একটি VM দিয়ে পরীক্ষা করেছেন এবং ক্লাউড আর্মারের সাথে রেট সীমিত করার মাধ্যমে IP ঠিকানাটি অস্বীকার করেছেন। কেন ট্র্যাফিক ব্লক করা হয়েছে তা সনাক্ত করতে আপনি নিরাপত্তা নীতি লগগুলি অন্বেষণ করতে সক্ষম হয়েছেন৷
আমরা কভার করেছি কি
- কিভাবে ইনস্ট্যান্স টেমপ্লেট সেট আপ করবেন এবং ম্যানেজড ইনস্ট্যান্স গ্রুপ তৈরি করবেন।
- কিভাবে একটি HTTP লোড ব্যালেন্সার সেট আপ করবেন।
- কিভাবে একটি ক্লাউড আর্মার রেট সীমিত নীতি তৈরি করবেন।
- রেট লিমিটিং পলিসি যেভাবে কাজ করছে তা কিভাবে যাচাই করা যায়।
পরবর্তী পদক্ষেপ
- উৎস আইপি পরিসরের উপর ভিত্তি করে একটি রেট লিমিটিং নীতি সেট আপ করার চেষ্টা করুন। নীচের নমুনা কমান্ড -
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