১. ভূমিকা
প্রাইভেট সার্ভিস কানেক্ট পরিষেবা প্রদানকারীদেরকে একটি ভিপিসি নেটওয়ার্ক থেকে অন্যটিতে ব্যক্তিগতভাবে পরিষেবা সরবরাহ করতে সক্ষম করে। গ্রাহকরা পিএসসি এন্ডপয়েন্ট অথবা পিএসসি ব্যাকএন্ডের মাধ্যমে প্রদানকারীদের পরিষেবাগুলো অ্যাক্সেস করতে পারে।
এই কোডল্যাবের মূল বিষয় হলো পিএসসি ব্যাকএন্ড। পিএসসি ব্যাকএন্ড গুগল ক্লাউড প্রক্সি লোড ব্যালান্সারের (অ্যাপ্লিকেশন অথবা নেটওয়ার্ক) সাথে একত্রে ব্যবহৃত হয়। পিএসসি ব্যাকএন্ড ব্যবহারের মাধ্যমে গ্রাহক পর্যায়ে আরও সূক্ষ্ম নিয়ন্ত্রণ ব্যবস্থা পাওয়া যায়, যেমন:
- গভীরতর পর্যবেক্ষণযোগ্যতা এবং লগিং
- ক্লাউড আর্মার ইন্টিগ্রেশন
- কাস্টম ইউআরএল
- উন্নত ট্র্যাফিক ব্যবস্থাপনা
- কাস্টম টিএলএস সার্টিফিকেট
এই কোডল্যাবে আপনি শিখবেন, কীভাবে গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশন লোড ব্যালেন্সার ব্যবহার করে একটি প্রাইভেট সার্ভিস কানেক্ট ব্যাকএন্ড তৈরি করার মাধ্যমে অন্য নেটওয়ার্কে থাকা কোনো প্রডিউসার সার্ভিসকে ব্যক্তিগতভাবে অ্যাক্সেস করা যায়।
আপনি যা শিখবেন
- গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশন লোড ব্যালান্সারের সাথে যুক্ত একটি পিএসসি ব্যাকএন্ড তৈরি ও কনফিগার করুন।
- একটি অ্যাপাচি ম্যানেজড ওয়েব সার্ভিস কনফিগার করুন এবং সার্ভিস অ্যাটাচমেন্টের মাধ্যমে এটিকে একটি PSC সার্ভিস হিসেবে উন্মুক্ত করুন।
- অভ্যন্তরীণ এবং বাহ্যিক অ্যাপ্লিকেশন লোড ব্যালেন্সারগুলিতে SSL টার্মিনেট করার জন্য SSL সার্টিফিকেট তৈরি করুন।
- PSC পরিষেবা অ্যাক্সেস করার জন্য একটি ক্লাউড DNS পাবলিক জোন কনফিগার করুন।
আপনার যা যা লাগবে
- মালিকের অনুমতি সহ একটি গুগল ক্লাউড প্রজেক্ট
২. পরীক্ষার পরিবেশ
আপনি যে পরিবেশটি তৈরি করবেন তাতে একটি কনজিউমার ভিপিসি এবং একটি প্রোডিউসার ভিপিসি থাকবে। প্রোডিউসার ভিপিসিতে, আপনি একটি ইনস্ট্যান্স টেমপ্লেট থেকে একটি ম্যানেজড ইনস্ট্যান্স গ্রুপ ডেপ্লয় করবেন যা একটি ওপেন সোর্স অ্যাপাচি ওয়েব সার্ভিস তৈরি করে। সার্ভিসটির সঠিক স্থানীয় কার্যকারিতা নিশ্চিত করার জন্য আপনি একটি টেস্ট-ভিএমও ডেপ্লয় করবেন। আপনি একটি সার্ভিস অ্যাটাচমেন্টের মাধ্যমে অ্যাপাচি সার্ভিসটিকে একটি পিএসসি প্রোডিউসার সার্ভিস হিসেবে উন্মুক্ত করবেন।
কনজিউমার ভিপিসি-তে আপনি একটি গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশন লোড ব্যালেন্সার স্থাপন করবেন, যার সাথে একটি পিএসসি ব্যাকএন্ড সার্ভিস থাকবে যা অ্যাপাচি সার্ভিসের দিকে নির্দেশিত থাকবে। এরপর পাবলিক ইন্টারনেটে পিএসসি সার্ভিসটি অ্যাক্সেস করার জন্য আপনি একটি পাবলিক ডিএনএস জোন সেট আপ করবেন।

৩. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিতে পরিবেশ সেটআপ
- Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।



- প্রজেক্টের নামটি হলো এই প্রজেক্টের অংশগ্রহণকারীদের প্রদর্শিত নাম। এটি একটি ক্যারেক্টার স্ট্রিং যা গুগল এপিআই ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
- প্রজেক্ট আইডি সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (একবার সেট করার পর এটি পরিবর্তন করা যায় না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত এটি কী তা নিয়ে আপনার মাথা ঘামানোর দরকার নেই। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রজেক্ট আইডি উল্লেখ করতে হবে (যা সাধারণত
PROJECT_IDহিসাবে চিহ্নিত করা হয়)। তৈরি করা আইডিটি আপনার পছন্দ না হলে, আপনি এলোমেলোভাবে আরেকটি তৈরি করতে পারেন। বিকল্পভাবে, আপনি আপনার নিজের আইডি দিয়ে চেষ্টা করে দেখতে পারেন যে সেটি উপলব্ধ আছে কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রজেক্টের পুরো সময়কাল জুড়ে এটি অপরিবর্তিত থাকবে। - আপনার অবগতির জন্য জানাচ্ছি যে, তৃতীয় একটি ভ্যালু রয়েছে, যা হলো প্রজেক্ট নম্বর , এবং কিছু এপিআই এটি ব্যবহার করে থাকে। ডকুমেন্টেশনে এই তিনটি ভ্যালু সম্পর্কে আরও বিস্তারিত জানুন।
- এরপর, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে। এই কোডল্যাবটি সম্পন্ন করতে খুব বেশি খরচ হবে না, এমনকি আদৌ কোনো খরচ নাও হতে পারে। এই টিউটোরিয়ালের পর বিলিং এড়াতে রিসোর্সগুলো বন্ধ করার জন্য, আপনি আপনার তৈরি করা রিসোর্সগুলো অথবা প্রজেক্টটি ডিলিট করে দিতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
ক্লাউড শেল শুরু করুন
যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালনা করা যায়, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চালিত একটি কমান্ড লাইন পরিবেশ।
গুগল ক্লাউড কনসোল থেকে, উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনটিতে ক্লিক করুন:

পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারের মধ্যেই করা যাবে। আপনাকে কিছুই ইনস্টল করতে হবে না।
৪. শুরু করার আগে
এপিআই সক্ষম করুন
ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রজেক্ট আইডি সেট আপ করা আছে।
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] export project=YOUR-PROJECT-NAME export region=us-central1 echo $project echo $region
সমস্ত প্রয়োজনীয় পরিষেবা সক্রিয় করুন
gcloud services enable compute.googleapis.com gcloud services enable servicedirectory.googleapis.com gcloud services enable dns.googleapis.com
৫. প্রডিউসার ভিপিসি সেটআপ
ভিপিসি নেটওয়ার্ক তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute networks create producer-vpc --subnet-mode custom
সাবনেট তৈরি করুন
প্রডিউসার-ভিপিসিতে দুটি সাধারণ সাবনেট স্থাপন করা হবে। সার্ভিস-সাবনেটটি অ্যাপাচি ওয়েব সার্ভিস ভিএম এবং লোড ব্যালেন্সার ফরওয়ার্ডিং রুল স্থাপনের জন্য ব্যবহৃত হবে। টেস্ট-ক্লায়েন্ট-সাবনেটটি একটি ভিন্ন অঞ্চলে থাকবে এবং গ্লোবাল অ্যাক্সেস সক্রিয় করে অ্যাপাচি সার্ভিস পরীক্ষা করার জন্য একটি ভিএম স্থাপন করতে ব্যবহৃত হবে।
ক্লাউড শেল থেকে
gcloud compute networks subnets create service-subnet \
--network=producer-vpc \
--range=10.0.0.0/28 \
--region=$region
ক্লাউড শেল থেকে
gcloud compute networks subnets create test-client-subnet \
--network=producer-vpc \
--range=10.0.1.0/28 \
--region=us-east4
আঞ্চলিক অভ্যন্তরীণ অ্যাপ্লিকেশন লোড ব্যালান্সারের সাথে ব্যবহারের জন্য আমাদের অবশ্যই একটি প্রক্সি-অনলি সাবনেট স্থাপন করতে হবে।
ক্লাউড শেল থেকে
gcloud compute networks subnets create central-proxy-subnet \
--network=producer-vpc \
--range=10.100.101.0/24 \
--region=$region \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE
যখন একটি PSC পরিষেবা স্থাপন করা হয়, তখন প্রতিটি স্বতন্ত্র পরিষেবার জন্য সার্ভিস অ্যাটাচমেন্টের সাথে একটি সংশ্লিষ্ট PSC NAT সাবনেট যুক্ত করা প্রয়োজন। প্রত্যাশিত সংযুক্ত এন্ডপয়েন্টের সংখ্যার উপর নির্ভর করে এই সাবনেটটির আকার যথাযথভাবে নির্ধারণ করা উচিত।
ক্লাউড শেল থেকে
gcloud compute networks subnets create psc-nat-subnet \
--network=producer-vpc \
--region=$region \
--range=10.100.100.0/24 \
--purpose=PRIVATE_SERVICE_CONNECT
ক্লাউড NAT তৈরি করুন
আমাদের প্রডিউসার সার্ভিসগুলোর জন্য সঠিক প্যাকেজগুলো ইনস্টল করতে একটি ক্লাউড ন্যাট (Cloud NAT) প্রয়োজন।
ক্লাউড শেল থেকে
gcloud compute routers create central-cr \
--network=producer-vpc \
--region=$region
ক্লাউড শেল থেকে
gcloud compute routers nats create central-nat \
--router=central-cr \
--region=$region \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
নেটওয়ার্ক ফায়ারওয়াল নীতি ও নিয়ম তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute network-firewall-policies create producer-vpc-policy --global
gcloud compute network-firewall-policies associations create \
--firewall-policy producer-vpc-policy \
--network producer-vpc \
--name network-producer-vpc \
--global-firewall-policy
আপনার VM ইনস্ট্যান্সগুলিতে IAP-কে সংযোগ করার অনুমতি দিতে, এমন একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:
- এটি সেই সমস্ত VM ইনস্ট্যান্সের ক্ষেত্রে প্রযোজ্য, যেগুলোকে আপনি IAP ব্যবহার করে অ্যাক্সেসযোগ্য করতে চান।
- 35.235.240.0/20 আইপি রেঞ্জ থেকে ইনগ্রেস ট্র্যাফিকের অনুমতি দেয়। এই রেঞ্জে সেই সমস্ত আইপি অ্যাড্রেস রয়েছে যা IAP টিসিপি ফরওয়ার্ডিংয়ের জন্য ব্যবহার করে।
ক্লাউড শেল থেকে
gcloud compute network-firewall-policies rules create 1000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "SSH with IAP" \
--direction INGRESS \
--src-ip-ranges 35.235.240.0/20 \
--layer4-configs tcp:22 \
--global-firewall-policy
লোড ব্যালেন্সার প্রক্সি অনলি সাবনেট (2000) থেকে লোড ব্যালেন্সার ব্যাকএন্ডগুলিতে ইনগ্রেস ট্র্যাফিক অনুমোদনের জন্য দুটি অতিরিক্ত ফায়ারওয়াল নিয়মের প্রয়োজন হবে, সেইসাথে ব্যাকএন্ড ইনস্ট্যান্সগুলিতে লোড ব্যালেন্সার হেলথচেক অনুমোদনের জন্য একটি নিয়মেরও (2001) প্রয়োজন হবে।
ক্লাউড শেল থেকে
gcloud compute network-firewall-policies rules create 2000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "allow traffic from load balancer proxy subnet" \
--direction INGRESS \
--src-ip-ranges 10.100.101.0/24 \
--layer4-configs tcp:443 \
--global-firewall-policy
gcloud compute network-firewall-policies rules create 2001 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "allow load balancer health checks" \
--direction INGRESS \
--src-ip-ranges 130.211.0.0/22,35.191.0.0/16 \
--layer4-configs tcp:443 \
--global-firewall-policy
৬. অ্যাপাচি ওয়েব সার্ভিস তৈরি করুন
আমরা একটি সাধারণ অ্যাপাচি ওয়েব সার্ভিস তৈরি করব যা "PSC Service" প্রদর্শন করবে।
ইনস্ট্যান্স টেমপ্লেট তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute instance-templates create apache-service-template \
--network producer-vpc \
--subnet service-subnet \
--region $region \
--no-address \
--metadata startup-script='#! /bin/bash
sudo apt-get update
apt-get install apache2 -y
a2enmod ssl
sudo a2ensite default-ssl
echo "PSC Service" | \
tee /var/www/html/index.html
systemctl restart apache2'
MIG-এর জন্য স্বাস্থ্য পরীক্ষা তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute health-checks create https service-mig-healthcheck \
--port=443 \
--global
পরিচালিত ইনস্ট্যান্স গ্রুপ তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute instance-groups managed create psc-service-mig \
--region $region \
--size=2 \
--template=apache-service-template \
--health-check=service-mig-healthcheck
gcloud compute instance-groups managed set-named-ports psc-service-mig \
--named-ports=https:443 \
--region=$region
৭. একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন
একটি সেলফ-সাইন্ড সার্টিফিকেট তৈরি করতে এখানের নির্দেশাবলীর ধাপ ১ সম্পূর্ণ করুন। আপনি ক্লাউড শেল-এ সমস্ত কমান্ড চালাতে পারেন। ধাপ ১ সম্পূর্ণ হলে এই স্থানে ফিরে আসুন। আপনার কমন নেম অবশ্যই EXAMPLE.COM দিয়ে কনফিগার করা থাকতে হবে।
আপনার লোড ব্যালেন্সারের সাথে যুক্ত করার জন্য একটি সার্টিফিকেট রিসোর্স তৈরি করুন। সার্টিফিকেট এবং প্রাইভেট-কী প্যারামিটারগুলো আপনার নির্দিষ্ট ফাইলের নাম দিয়ে প্রতিস্থাপন করুন।
ক্লাউড শেল থেকে
gcloud compute ssl-certificates create producer-service-cert \
--certificate=<your-producer-certfile.cert> \
--private-key=<your-producer-keyfile.pem> \
--region=$region
৮. অভ্যন্তরীণ আঞ্চলিক অ্যাপ্লিকেশন লোড ব্যালেন্সার তৈরি করুন।
এরপরে আমরা সার্ভিসটির জন্য লোড ব্যালান্সার কম্পোনেন্টগুলো তৈরি করব। আমরা ইন্টারনাল রিজিওনাল অ্যাপ্লিকেশন লোড ব্যালান্সার ব্যবহার করছি, কিন্তু আপনার কাছে যেকোনো গুগল ক্লাউড ইন্টারনাল লোড ব্যালান্সার ব্যবহার করার বিকল্প রয়েছে। TLS হ্যান্ডলিং-এর জন্য উপযুক্ত লোড ব্যালান্সারের ডকুমেন্টেশন অনুসরণ করুন।
আপনার লোড ব্যালান্সারের ফরওয়ার্ডিং নিয়মের জন্য যে অভ্যন্তরীণ আইপি ঠিকানাটি ব্যবহার করা হবে, সেটি তৈরি করুন এবং পরবর্তীতে পরিষেবাটিতে পরীক্ষামূলক কল করার সময় ব্যবহারের জন্য আইপি-টি লিখে রাখুন।
ক্লাউড শেল থেকে
gcloud compute addresses create apache-service-ip \ --region=$region \ --subnet=service-subnet gcloud compute addresses describe apache-service-ip \ --format="get(address)" \ --region=$region
লোড ব্যালেন্সারের স্বাস্থ্য পরীক্ষা তৈরি করুন।
ক্লাউড শেল থেকে
gcloud compute health-checks create https lb-apache-service-hc \
--region=$region \
--port-name=https
ব্যাকএন্ড সার্ভিসটি তৈরি করুন।
ক্লাউড শেল থেকে
gcloud compute backend-services create apache-bes\ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTPS \ --port-name=https \ --health-checks=lb-apache-service-hc \ --health-checks-region=$region \ --region=$region gcloud compute backend-services add-backend apache-bes \ --balancing-mode=UTILIZATION \ --instance-group=psc-service-mig \ --region=$region
ইউআরএল ম্যাপটি তৈরি করুন।
ক্লাউড শেল থেকে
gcloud compute url-maps create producer-url-map \ --default-service=apache-bes \ --region=$region
লক্ষ্য HTTPS প্রক্সিগুলো তৈরি করুন।
ক্লাউড শেল থেকে
gcloud compute target-https-proxies create https-proxy \ --url-map=producer-url-map \ --region=$region \ --ssl-certificates=producer-service-cert
ফরওয়ার্ডিং নিয়মটি তৈরি করুন।
ক্লাউড শেল থেকে
gcloud compute forwarding-rules create apache-fr \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=producer-vpc \ --subnet=service-subnet \ --address=apache-service-ip \ --ports=443 \ --region=$region \ --target-https-proxy=https-proxy \ --target-https-proxy-region=$region \ --allow-global-access
৯. একটি টেস্ট ভিএম তৈরি করুন এবং সার্ভিসটি স্থানীয়ভাবে পরীক্ষা করুন
সার্ভিস অ্যাটাচমেন্ট তৈরি করার আগে, লোড ব্যালেন্সারটি গ্লোবাল অ্যাক্সেস এবং টিএলএস-এর সাথে সঠিকভাবে কনফিগার করা আছে কিনা তা পরীক্ষা করার জন্য আমরা অন্য একটি অঞ্চলে একটি টেস্ট ক্লায়েন্ট ভিএম তৈরি করব।
ক্লাউড শেল থেকে
gcloud compute instances create vm-client \
--zone=us-east4-a \
--subnet=test-client-subnet \
--no-address
প্রোভিশনিং সম্পন্ন হওয়ার জন্য প্রায় এক মিনিট অপেক্ষা করুন এবং তারপর ইনস্ট্যান্সটিতে SSH-এর মাধ্যমে লগইন করুন।
ক্লাউড শেল থেকে
gcloud compute ssh \
--zone "us-east4-a" "vm-client" \
--tunnel-through-iap \
--project $project
লোড ব্যালান্সারের মাধ্যমে 443 পোর্টে সংযোগ করে অ্যাপাচি সার্ভিসটি পরীক্ষা করুন। অভ্যন্তরীণ আইপি অ্যাড্রেসটি হলো সেটি যা আপনি আগে সংরক্ষণ করে লিখে রেখেছিলেন।
curl https://example.com:443 -k --connect-to example.com:443:<YOUR-INTERNAL-IP>:443
প্রত্যাশিত ফলাফল
PSC Service
ভিএম থেকে প্রস্থান করুন।
ভিএম-ক্লায়েন্ট থেকে
exit
১০. সার্ভিস অ্যাটাচমেন্ট তৈরি করুন
এই উদাহরণের জন্য, আমরা আমাদের সার্ভিস অ্যাটাচমেন্টকে এমনভাবে কনফিগার করছি যাতে এটি শুধুমাত্র এই প্রজেক্ট থেকে PSC কানেকশন গ্রহণ করে। এটিকে এক বা একাধিক নির্দিষ্ট প্রজেক্ট বা নেটওয়ার্ক গ্রহণ করার জন্য কনফিগার করা যেতে পারে, কিন্তু উভয়ই নয়। আমরা আমাদের সর্বোচ্চ কানেকশন সীমা ৫টি নির্ধারণ করেছি। প্রতিটি প্রজেক্ট বা নেটওয়ার্কের জন্য একটি সীমা নির্ধারণ করা আবশ্যক।
ক্লাউড শেল থেকে
gcloud compute service-attachments create apache-service-attachment \
--region=$region \
--producer-forwarding-rule=apache-fr \
--connection-preference=ACCEPT_MANUAL \
--consumer-accept-list=$project=5 \
--nat-subnets=psc-nat-subnet
সার্ভিস অ্যাটাচমেন্ট ইউআরআই ( selfLink ) টি লিখে রাখুন, কারণ পরবর্তী ধাপে পিএসসি ব্যাকএন্ড কনফিগারেশনের জন্য আপনার এটি প্রয়োজন হবে। ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালিয়ে আপনি এটি পেতে পারেন।
ক্লাউড শেল থেকে
gcloud compute service-attachments describe apache-service-attachment \
--region $region
প্রজেক্ট থেকে শুরু করে URI কপি করুন
উদাহরণ: projects/$project/regions/$region/serviceAttachments/apache-service-attachment
১১. কনজিউমার ভিপিসি সেটআপ
ভিপিসি নেটওয়ার্ক তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute networks create consumer-vpc --subnet-mode custom
সাবনেট তৈরি করুন
গ্রাহক প্রান্তে একটি সাবনেট প্রয়োজন যেখানে প্রাইভেট সার্ভিস কানেক্ট নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ (NEG) স্থাপন করা হবে।
ক্লাউড শেল থেকে
gcloud compute networks subnets create consumer-subnet \
--network=consumer-vpc \
--region=$region \
--range=10.0.0.0/28
১২. এক্সটার্নাল আইপি রিজার্ভ করুন এবং কনজিউমার সাইড সেলফ-সাইনড সার্টিফিকেট তৈরি করুন।
বাহ্যিক আইপি
একটি এক্সটার্নাল স্ট্যাটিক আইপি অ্যাড্রেস তৈরি করুন যা পরবর্তীতে আমাদের লোড ব্যালেন্সার ফরওয়ার্ডিং রুলের জন্য ব্যবহৃত হবে এবং আইপি অ্যাড্রেসটি একটি ক্লাউড শেল ভেরিয়েবলে সংরক্ষণ করুন।
ক্লাউড শেল থেকে
gcloud compute addresses create external-psc-ip \
--network-tier=PREMIUM \
--ip-version=IPV4 \
--global
export externalip=$(gcloud compute addresses describe external-psc-ip \
--format="get(address)" \
--global)
echo $externalip
ভোক্তার স্ব-স্বাক্ষরিত শংসাপত্র
একটি সেলফ-সাইন্ড সার্টিফিকেট তৈরি করতে, এখানের নির্দেশাবলীর ধাপ ১ দ্বিতীয়বারের মতো সম্পূর্ণ করুন। আপনি ক্লাউড শেলে সমস্ত কমান্ড চালাতে পারেন। ধাপ ১ সম্পূর্ণ হলে এই স্থানে ফিরে আসুন। আমরা আমাদের নিজস্ব পাবলিক ডিএনএস জোনের পরিবর্তে nip.io নামক একটি ওপেন সোর্স পাবলিক ওয়াইল্ডকার্ড ডিএনএস পরিষেবা ব্যবহার করব। আপনার পিএসসি পরিষেবার পাবলিক ইউআরএলটি আপনার এইমাত্র কনফিগার করা এক্সটার্নাল আইপি অ্যাড্রেসটি ব্যবহার করবে। আপনার কমন নেম অবশ্যই <YOUR-EXTERNAL-IP.nip.io> দিয়ে কনফিগার করতে হবে।
আপনার এক্সটার্নাল লোড ব্যালান্সারের সাথে যুক্ত করার জন্য একটি সার্টিফিকেট রিসোর্স তৈরি করুন। সার্টিফিকেট এবং প্রাইভেট-কী প্যারামিটারগুলো আপনার নির্দিষ্ট ফাইলের নাম দিয়ে প্রতিস্থাপন করুন।
ক্লাউড শেল থেকে
gcloud compute ssl-certificates create consumer-service-cert \
--certificate=<your-consumer-certfile.cert> \
--private-key=<your-consumer-keyfile.pem> \
--global
১৩. লোড ব্যালেন্সারের উপাদানগুলো তৈরি করুন
আমরা একটি গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশন লোড ব্যালান্সার তৈরি করব, যার PSC NEG আমাদের সদ্য নির্মিত সার্ভিস অ্যাটাচমেন্টকে একটি ব্যাকএন্ড সার্ভিস হিসেবে নির্দেশ করবে।
গত ধাপে আমরা যে সার্ভিস অ্যাটাচমেন্ট ইউআরআই (Service Attachment URI) লিখে রেখেছিলাম, সেটি হাতের কাছে রাখুন। নিচের psc-target-service-এর জায়গায় আপনার ইউআরআই (URI) বসান।
ক্লাউড শেল থেকে
gcloud compute network-endpoint-groups create apache-psc-neg \ --network-endpoint-type=private-service-connect \ --psc-target-service=projects/$project/regions/$region/serviceAttachments/apache-service-attachment \ --region=$region \ --network=consumer-vpc \ --subnet=consumer-subnet
ব্যাকএন্ড সার্ভিসটি তৈরি করুন।
ক্লাউড শেল থেকে
gcloud compute backend-services create apache-pscneg-bes \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=HTTPS \
--global
gcloud compute backend-services add-backend apache-pscneg-bes \
--network-endpoint-group=apache-psc-neg \
--network-endpoint-group-region=$region \
--global
ইউআরএল ম্যাপ তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute url-maps create consumer-url-map \
--default-service=apache-pscneg-bes \
--global
লক্ষ্য HTTPS প্রক্সিগুলো তৈরি করুন।
ক্লাউড শেল থেকে
gcloud compute target-https-proxies create psc-https-proxy \
--url-map=consumer-url-map \
--ssl-certificates=consumer-service-cert
ফরওয়ার্ডিং নিয়ম তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute forwarding-rules create external-fr \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=external-psc-ip \ --global \ --target-https-proxy=psc-https-proxy \ --ports=443
১৪. পাবলিক ডিএনএস জোন তৈরি করুন
ক্লাউড শেল থেকে
gcloud dns managed-zones create "psc-service" \
--dns-name=$externalip.nip.io. \
--description="public dns for psc service" \
--visibility=public
ক্লাউড শেল থেকে
gcloud dns record-sets transaction start \ --zone="psc-service" gcloud dns record-sets transaction add $externalip \ --name=$externalip.nip.io \ --ttl=300 \ --type=A \ --zone="psc-service" gcloud dns record-sets transaction execute \ --zone="psc-service"
১৫. কনজিউমার পিএসসি সংযোগ পরীক্ষা করুন
পাবলিক ডিএনএস ছড়িয়ে পড়ার জন্য পরীক্ষা করার আগে ৭ থেকে ১০ মিনিট অপেক্ষা করুন।
ক্লাউড শেল থেকে
curl https://$externalip.nip.io -k
আপনি আপনার ব্রাউজার বা ডেস্কটপ টার্মিনালে https://<YOUR-EXTERNAL-IP>.nip.io লিখেও পরীক্ষা করতে পারেন।
প্রত্যাশিত ফলাফল
PSC Service
১৬. পরিষ্কার করার পদক্ষেপ
একটিমাত্র ক্লাউড শেল টার্মিনাল থেকে ল্যাবের উপাদানগুলো মুছে ফেলুন
gcloud dns record-sets delete $externalip.nip.io --zone="psc-service" --type=A -q gcloud dns managed-zones delete "psc-service" -q gcloud compute forwarding-rules delete external-fr --global -q gcloud compute target-https-proxies delete psc-https-proxy -q gcloud compute url-maps delete consumer-url-map --global -q gcloud compute backend-services delete apache-pscneg-bes --global -q gcloud compute network-endpoint-groups delete apache-psc-neg --region=$region -q gcloud compute ssl-certificates delete consumer-service-cert --global -q gcloud compute addresses delete external-psc-ip --global -q gcloud compute networks subnets delete consumer-subnet --region $region -q gcloud compute networks delete consumer-vpc -q gcloud compute instances delete vm-client --zone=us-east4-a -q gcloud compute service-attachments delete apache-service-attachment --region $region -q gcloud compute forwarding-rules delete apache-fr --region $region -q gcloud compute target-https-proxies delete https-proxy --region $region -q gcloud compute url-maps delete producer-url-map --region $region -q gcloud compute backend-services delete apache-bes --region $region -q gcloud compute health-checks delete lb-apache-service-hc --region $region -q gcloud compute addresses delete apache-service-ip --region $region -q gcloud compute ssl-certificates delete producer-service-cert --region $region -q gcloud compute instance-groups managed delete psc-service-mig --region $region -q gcloud compute health-checks delete service-mig-healthcheck --global -q gcloud compute instance-templates delete apache-service-template -q gcloud compute network-firewall-policies rules delete 2001 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 2000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy --name=network-producer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete producer-vpc-policy --global -q gcloud compute routers nats delete central-nat --router=central-cr --region $region -q gcloud compute routers delete central-cr --region $region -q gcloud compute networks subnets delete psc-nat-subnet --region $region -q gcloud compute networks subnets delete service-subnet --region $region -q gcloud compute networks subnets delete test-client-subnet --region us-east4 -q gcloud compute networks subnets delete central-proxy-subnet --region $region -q gcloud compute networks delete producer-vpc -q
১৭. অভিনন্দন!
কোডল্যাবটি সম্পন্ন করার জন্য অভিনন্দন।
আমরা যা আলোচনা করেছি
- গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশন লোড ব্যালান্সারের সাথে যুক্ত একটি পিএসসি ব্যাকএন্ড তৈরি ও কনফিগার করুন।
- একটি অ্যাপাচি ম্যানেজড ওয়েব সার্ভিস কনফিগার করুন এবং সার্ভিস অ্যাটাচমেন্টের মাধ্যমে এটিকে একটি PSC সার্ভিস হিসেবে উন্মুক্ত করুন।
- অভ্যন্তরীণ এবং বাহ্যিক অ্যাপ্লিকেশন লোড ব্যালেন্সারগুলিতে SSL টার্মিনেট করার জন্য SSL সার্টিফিকেট তৈরি করুন।
- PSC পরিষেবা অ্যাক্সেস করার জন্য একটি ক্লাউড DNS পাবলিক জোন কনফিগার করুন।