Google API-এর জন্য ব্যক্তিগত পরিষেবা সংযোগ

1. ভূমিকা

প্রাইভেট সার্ভিস কানেক্টের মাধ্যমে, আপনি গুগল এপিআই অ্যাক্সেস করতে আপনার ভিপিসি নেটওয়ার্কের মধ্যে গ্লোবাল ইন্টারনাল আইপি অ্যাড্রেস ব্যবহার করে ব্যক্তিগত এন্ডপয়েন্ট তৈরি করতে পারেন। আপনি স্টোরেজ-pscendpoint.p.googleapis.com এবং bigtable-adsteam.p.googleapis.com এর মতো অর্থপূর্ণ নামগুলির সাথে এই অভ্যন্তরীণ আইপি ঠিকানাগুলিতে DNS নাম বরাদ্দ করতে পারেন। স্টোরেজ.googleapis.com-এর মতো পাবলিক সার্ভিস এন্ডপয়েন্টে API অনুরোধ পাঠানোর পরিবর্তে, আপনি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টে অনুরোধ পাঠাতে পারেন, যেটি আপনার ভিপিসি নেটওয়ার্কের ব্যক্তিগত এবং অভ্যন্তরীণ।

এই নাম এবং IP ঠিকানাগুলি আপনার ভিপিসি নেটওয়ার্কের অভ্যন্তরীণ এবং যে কোনও অন-প্রিমিসেস নেটওয়ার্ক যা ক্লাউড ভিপিএন টানেল বা ক্লাউড ইন্টারকানেক্ট অ্যাটাচমেন্ট (VLANs) ব্যবহার করে এর সাথে সংযুক্ত।

আপনি কোন ট্র্যাফিক কোন এন্ডপয়েন্টে যাবে তা নিয়ন্ত্রণ করতে পারেন এবং ট্রাফিক Google ক্লাউডের মধ্যেই থাকে তা প্রদর্শন করতে পারেন।

আপনি কি শিখবেন

  • ব্যক্তিগত পরিষেবা সংযোগ ব্যবহারের ক্ষেত্রে
  • নেটওয়ার্ক প্রয়োজনীয়তা
  • সমর্থিত API
  • একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করুন
  • একটি ক্লাউড স্টোরেজ বালতি তৈরি করুন
  • ক্লাউড ডিএনএস প্রাইভেট জোন তৈরি এবং আপডেট করুন
  • পাবলিক googleapis অ্যাক্সেস করতে একটি NAT GW তৈরি করুন
  • একটি BOTO কনফিগারেশন ফাইল তৈরি এবং আপডেট করুন
  • আপনার PSC পরিষেবার শেষ পয়েন্টের বিরুদ্ধে সমাধান করা VM1-এ gsutil তালিকা সম্পাদন করুন
  • পাবলিক googleapis.com এর বিরুদ্ধে সমাধান করা VM2-এ gsutil তালিকা সম্পাদন করুন
  • DNS রেজোলিউশন যাচাই করতে Tcpdump ব্যবহার করুন

আপনি কি প্রয়োজন হবে

  • DNS, ন্যানো বা vi সম্পাদকের জ্ঞান

2. ব্যক্তিগত পরিষেবা সংযোগ ব্যবহারের ক্ষেত্রে

আপনি একই VPC নেটওয়ার্কে একাধিক প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করতে পারেন। একটি নির্দিষ্ট শেষ বিন্দুতে ব্যান্ডউইথের কোন সীমা নেই। যেহেতু প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টগুলি বিশ্বব্যাপী অভ্যন্তরীণ IP ঠিকানাগুলি ব্যবহার করে, সেগুলি আপনার VPC নেটওয়ার্কের যে কোনও সংস্থান দ্বারা ব্যবহার করা যেতে পারে৷

একাধিক এন্ডপয়েন্ট সহ, আপনি ক্লাউড রাউটার এবং ফায়ারওয়াল নিয়ম ব্যবহার করে বিভিন্ন নেটওয়ার্ক পাথ নির্দিষ্ট করতে পারেন।

  • আপনি ফায়ারওয়াল নিয়ম তৈরি করতে পারেন যাতে কিছু ভিএমকে প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টের মাধ্যমে Google এপিআই অ্যাক্সেস করা থেকে আটকাতে, অন্য ভিএম-কে অ্যাক্সেস করার অনুমতি দেওয়া হয়।
  • আপনি একটি VM দৃষ্টান্তে একটি ফায়ারওয়াল নিয়ম রাখতে পারেন যা ইন্টারনেটে সমস্ত ট্র্যাফিকের অনুমতি দেয় না; প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টে পাঠানো ট্রাফিক এখনও Google-এ পৌঁছায়।
  • আপনার যদি ক্লাউড VPN টানেল বা ক্লাউড ইন্টারকানেক্ট অ্যাটাচমেন্ট (VLAN) ব্যবহার করে VPC-তে সংযুক্ত অন-প্রিমিসেস হোস্ট থাকে, তাহলে আপনি পাবলিক ইন্টারনেটে অন্যান্য অনুরোধ পাঠানোর সময় টানেল বা VLAN-এর মাধ্যমে কিছু অনুরোধ পাঠাতে পারেন। এই কনফিগারেশনটি আপনাকে Google Books এর মতো পরিষেবাগুলির জন্য টানেল বা VLAN বাইপাস করতে দেয় যা ব্যক্তিগত Google অ্যাক্সেস দ্বারা সমর্থিত নয়৷ এই কনফিগারেশন তৈরি করতে, একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করুন, ক্লাউড রাউটার কাস্টম রুট বিজ্ঞাপন ব্যবহার করে প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট আইপি অ্যাড্রেসের বিজ্ঞাপন দিন এবং একটি ক্লাউড ডিএনএস ইনবাউন্ড ফরওয়ার্ডিং নীতি সক্ষম করুন। অ্যাপ্লিকেশনটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টের নাম ব্যবহার করে ক্লাউড ভিপিএন টানেল বা ক্লাউড ইন্টারকানেক্ট অ্যাটাচমেন্ট (ভিএলএএন) এর মাধ্যমে কিছু অনুরোধ পাঠাতে পারে এবং অন্যান্য ডিফল্ট ডিএনএস নাম ব্যবহার করে ইন্টারনেটে।
  • আপনি যদি একাধিক ক্লাউড ইন্টারকানেক্ট অ্যাটাচমেন্ট (VLANs) ব্যবহার করে আপনার অন-প্রিমিসেস নেটওয়ার্ককে আপনার VPC নেটওয়ার্কের সাথে সংযুক্ত করেন, তাহলে আপনি একটি VLAN এর মাধ্যমে অন-প্রিমিসেস থেকে কিছু ট্রাফিক পাঠাতে পারেন এবং বাকিটা অন্যের উপর পাঠাতে পারেন, যেমন চিত্র 2-এ দেখানো হয়েছে। এটি আপনাকে আপনার ব্যবহার করতে দেয়। Google-এর পরিবর্তে নিজস্ব ওয়াইড-এরিয়া নেটওয়ার্কিং, এবং ভৌগলিক প্রয়োজনীয়তা মেটাতে ডেটা চলাচল নিয়ন্ত্রণ করতে। এই কনফিগারেশন তৈরি করতে, দুটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করুন। প্রথম VLAN পরিচালনাকারী ক্লাউড রাউটারের BGP সেশনে প্রথম এন্ডপয়েন্টের জন্য একটি কাস্টম রুটের বিজ্ঞাপন তৈরি করুন এবং দ্বিতীয় VLAN পরিচালনাকারী ক্লাউড রাউটারের BGP সেশনে দ্বিতীয় শেষ পয়েন্টের জন্য একটি ভিন্ন কাস্টম রুটের বিজ্ঞাপন তৈরি করুন। প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট নাম ব্যবহার করার জন্য কনফিগার করা অন-প্রিমিসেস হোস্টগুলি সংশ্লিষ্ট ক্লাউড ইন্টারকানেক্ট অ্যাটাচমেন্ট (VLAN) এর উপর ট্রাফিক পাঠায়।
  • আপনি একটি সক্রিয়/সক্রিয় টপোলজিতে একাধিক ক্লাউড ইন্টারকানেক্ট সংযুক্তি (VLANs) ব্যবহার করতে পারেন। আপনি যদি একই প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট আইপি অ্যাড্রেসের বিজ্ঞাপন দিয়ে থাকেন BGP সেশনের জন্য কাস্টম রুট বিজ্ঞাপন ব্যবহার করে ক্লাউড রাউটারগুলিতে VLAN পরিচালনা করে, তাহলে অন-প্রিমিসেস সিস্টেম থেকে এন্ডপয়েন্টে পাঠানো প্যাকেটগুলি ECMP ব্যবহার করে VLAN জুড়ে রাউট করা হয়।

5e142c2fbf6f010e.png

চিত্র 1. প্রাইভেট সার্ভিস কানেক্ট, ক্লাউড রাউটার এবং অন-প্রিমিসেস হোস্ট কনফিগার করে, আপনি নিয়ন্ত্রণ করতে পারেন কোন ক্লাউড ইন্টারকানেক্ট সংযুক্তি (VLAN) Google API-এ ট্রাফিক পাঠাতে ব্যবহৃত হয়।

3. নেটওয়ার্ক প্রয়োজনীয়তা

প্রাইভেট সার্ভিস কানেক্ট ব্যবহার করার জন্য, বাহ্যিক আইপি অ্যাড্রেস ছাড়া ভার্চুয়াল মেশিন (ভিএম) দৃষ্টান্তগুলির একটি সাবনেটে প্রাইভেট গুগল অ্যাক্সেস সক্ষম থাকা আবশ্যক।

একটি বাহ্যিক আইপি ঠিকানা সহ একটি VM প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট ব্যবহার করে Google API এবং পরিষেবাগুলি অ্যাক্সেস করতে পারে তার সাবনেটের জন্য ব্যক্তিগত Google অ্যাক্সেস সক্ষম করা হোক বা না হোক। প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টের সংযোগ Google এর নেটওয়ার্কের মধ্যেই থাকে।

পিয়ারড ভিপিসি নেটওয়ার্ক থেকে প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট অ্যাক্সেসযোগ্য নয়।

সমর্থিত API

যখন আপনি একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করেন, তখন আপনি বেছে নেন যে কোন API-এ আপনার অ্যাক্সেস প্রয়োজন: all-apis বা vpc-sc।

API বান্ডেলগুলি একই APIগুলিতে অ্যাক্সেস দেয় যা ব্যক্তিগত Google অ্যাক্সেস VIP-এর মাধ্যমে উপলব্ধ।

  • অল-এপিস বান্ডেলটি private.googleapis.com-এর মতো একই API-এ অ্যাক্সেস প্রদান করে।
  • vpc-sc বান্ডেল restricted.googleapis.com-এর মতো একই API-তে অ্যাক্সেস প্রদান করে।

4. কোডল্যাব টপোলজি এবং ব্যবহার কেস

2ac275eb86f26338.png

চিত্র 1 - কোডল্যাব টপোলজি

কোডল্যাব ব্যবহারের ক্ষেত্রে -

আমাদের গ্রাহকের ক্লাউড স্টোরেজ ডেটা স্থানান্তরের জন্য ব্যক্তিগত (আন্তঃসংযোগ) এবং সর্বজনীন googleapis অ্যাক্সেসের মিশ্রণ প্রয়োজন। আমাদের গ্রাহকদের প্রয়োজনীয়তা পূরণ করতে, আমরা একটি অনন্য /32 ঠিকানা, BOTO কনফিগারেশন এবং DNS রেকর্ড আপডেট সমন্বিত ব্যক্তিগত পরিষেবা সংযোগ স্থাপন করব। ভার্চুয়াল মেশিন 1 ক্লাউড স্টোরেজ বালতি অ্যাক্সেসের জন্য পিএসসি ব্যবহার করবে; বিপরীতে, VM2 NAT GW এর মাধ্যমে সর্বজনীন googleapis.com আইপি রেঞ্জ ব্যবহার করবে।

ল্যাবের সমস্ত দিক Google ক্লাউড প্ল্যাটফর্মের মধ্যে স্থাপন করা হয়েছে, তবুও একই ব্যবহারের ক্ষেত্রে হাইব্রিড ক্লাউড স্থাপনার জন্য প্রযোজ্য যা ট্রাফিক বিচ্ছেদ প্রয়োজন৷

5. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এটি পরে এই কোডল্যাবে PROJECT_ID হিসাবে উল্লেখ করা হবে।

  1. এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷

এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। "ক্লিনিং আপ" বিভাগে যে কোনও নির্দেশাবলী অনুসরণ করতে ভুলবেন না যা আপনাকে কীভাবে সংস্থানগুলি বন্ধ করতে হবে তা পরামর্শ দেয় যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন৷ Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

ক্লাউড শেল শুরু করুন

যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।

GCP কনসোল থেকে উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:

bce75f34b2c53987.png

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

f6ef2b5f13479f3a.png

এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই ল্যাবে আপনার সমস্ত কাজ কেবল একটি ব্রাউজার দিয়ে করা যেতে পারে।

6. আপনি শুরু করার আগে

এপিআই সক্ষম করুন

ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রকল্প আইডি সেট আপ করা আছে

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

সমস্ত প্রয়োজনীয় পরিষেবা সক্রিয় করুন

gcloud services enable compute.googleapis.com
gcloud services enable servicedirectory.googleapis.com
gcloud services enable dns.googleapis.com

7. ভিপিসি নেটওয়ার্ক তৈরি করুন

ভিপিসি নেটওয়ার্ক

ক্লাউড শেল থেকে

gcloud compute networks create psc-lab --subnet-mode custom

সাবনেট তৈরি করুন

ক্লাউড শেল থেকে

gcloud compute networks subnets create psclab-subnet \
--network psc-lab --range 10.0.0.0/24 --region us-central1 --enable-private-ip-google-access

ফায়ারওয়াল নিয়ম তৈরি করুন

IAP কে আপনার VM দৃষ্টান্তের সাথে সংযোগ করার অনুমতি দিতে, একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:

  • আপনি IAP ব্যবহার করে অ্যাক্সেসযোগ্য হতে চান এমন সমস্ত VM দৃষ্টান্তগুলিতে প্রযোজ্য।
  • IP পরিসর 35.235.240.0/20 থেকে ট্র্যাফিক প্রবেশের অনুমতি দেয়। এই পরিসরে সমস্ত আইপি ঠিকানা রয়েছে যা IAP TCP ফরওয়ার্ডিংয়ের জন্য ব্যবহার করে।

ক্লাউড শেল থেকে

gcloud compute firewall-rules create psclab-ssh \
    --network psc-lab --allow tcp:22 --source-ranges=35.235.240.0/20

Cloud NAT উদাহরণ তৈরি করুন

ক্লাউড রাউটার তৈরি করুন

ক্লাউড শেল থেকে

gcloud compute routers create crnat \
    --network psc-lab \
    --asn 65000 \
    --region us-central1

Cloud NAT তৈরি করুন

ক্লাউড শেল থেকে

gcloud compute routers nats create cloudnat \
    --router=crnat \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges \
    --enable-logging \
    --region us-central1

8. প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করুন

যখন আপনি Private Service Connect endpoint IP <pscendpointip> কনফিগার করেন, তখন আপনাকে একটি অনন্য IP ঠিকানা প্রদান করতে হবে যা আপনার VPC-তে সংজ্ঞায়িত করা হয়নি।

ক্লাউড শেল থেকে

gcloud compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=192.168.255.250 \
    --network=psc-lab

ল্যাবের সময়কালের জন্য 'pscendpointip' সংরক্ষণ করুন

pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)")

echo $pscendpointip

এন্ডপয়েন্টকে Google API এবং পরিষেবাগুলির সাথে সংযুক্ত করতে একটি ফরওয়ার্ডিং নিয়ম তৈরি করুন৷

ক্লাউড শেল থেকে

gcloud compute forwarding-rules create pscendpoint \
    --global \
    --network=psc-lab \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

কনফিগার করা প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তালিকা করুন

ক্লাউড শেল থেকে

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

কনফিগার করা প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট বর্ণনা করুন

ক্লাউড শেল থেকে

gcloud compute forwarding-rules describe \
    pscendpoint --global

9. একটি বালতি তৈরি করুন

একটি ক্লাউড স্টোরেজ বালতি তৈরি করুন এবং আপনার পছন্দের একটি বিশ্বব্যাপী অনন্য নাম দিয়ে BUCKET_NAME প্রতিস্থাপন করুন৷

ক্লাউড শেল থেকে

gsutil mb  -l us-central1 -b on gs://BUCKET_NAME

ল্যাবের সময়কালের জন্য 'BUCKET_NAME' স্টোর করুন

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

10. DNS কনফিগারেশন

যখন আপনি একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করেন, সার্ভিস ডিরেক্টরি সেই এন্ডপয়েন্ট ব্যবহার করে উপলব্ধ API এবং পরিষেবাগুলির জন্য একটি DNS রেকর্ড তৈরি করে।

DNS রেকর্ডগুলি আপনার প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট আইপি অ্যাড্রেস নির্দেশ করে এবং এই ফর্ম্যাটে রয়েছে: SERVICE-ENDPOINT.p.googleapis.com।

আপনি আপনার এপিআই অনুরোধগুলিতে এই DNS নামগুলি ব্যবহার করতে পারেন অনুরোধটি আপনার প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টে নির্দেশ করতে। আপনি আপনার অনুরোধের হোস্ট হেডারে এই DNS নামগুলিও ব্যবহার করতে পারেন।

আপনি যদি Google API এবং পরিষেবাগুলি অ্যাক্সেস করে এমন একটি ক্লায়েন্ট বা অ্যাপ্লিকেশনের সাথে একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট ব্যবহার করতে চান, তাহলে p.googleapis.com DNS নামগুলি ব্যবহার করতে আপনার ক্লায়েন্ট বা অ্যাপ্লিকেশন আপডেট করুন৷

বিস্তারিত জানার জন্য আপনার ক্লায়েন্ট বা ক্লায়েন্ট লাইব্রেরির ডকুমেন্টেশন দেখুন। যেমন:

যেমন: gcloud config সেট api_endpoint_overrides/storage https://storage-xyz.p.googleapis.com/storage/v1/

আপনি যদি আপনার ক্লায়েন্ট বা অ্যাপ্লিকেশনটি একটি ভিন্ন এন্ডপয়েন্ট ব্যবহার করতে কনফিগার করতে না পারেন, তাহলে ডিফল্ট DNS নামের সাথে মেলে DNS রেকর্ড তৈরি করুন। যেমন, storage.googleapis.com। ডিফল্ট DNS নাম ব্যবহার করে DNS রেকর্ড তৈরি করা দেখুন।

DNS রেকর্ড যাচাই করুন

ক্লাউড কনসোল থেকে নেটওয়ার্ক পরিষেবা → ক্লাউড ডিএনএস-এর অধীনে অবস্থিত জেনারেটেড ডিএনএস এন্ট্রি যাচাই করুন। জেনারেট করা DNS নাম 'p.googleapis.com' নোট করুন।

11. ভার্চুয়াল মেশিন তৈরি করুন

ভার্চুয়াল মেশিন (psc-instance-1) তৈরি করুন যা প্রাইভেট সার্ভিস সংযোগ যাচাই করতে ব্যবহৃত হয়

ক্লাউড শেল থেকে

  gcloud compute instances create psc-instance-1 \
    --subnet psclab-subnet \
    --zone us-central1-a \
    --image=centos-7-v20210122 \
    --image-project=centos-cloud \
    --no-address \
    --metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y 

ভিএম ইনস্ট্যান্সে লগ ইন করুন (psc-ইনস্ট্যান্স-1)

ক্লাউড শেলের মাধ্যমে VM-এ SSH

gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"

তিনবার + (নীচের স্ক্রিনশট) ক্লিক করে অতিরিক্ত ক্লাউড শেল টার্মিনাল তৈরি করুন।

69ea94e1527912bb.png

সার্বজনীন Googleapis যাচাই করতে ব্যবহৃত ভার্চুয়াল মেশিন (psc-instance-2) তৈরি করুন

ট্যাব 2 থেকে

  gcloud compute instances create psc-instance-2 \
    --subnet psclab-subnet \
    --zone us-central1-a \
    --image=centos-7-v20210122 \
    --image-project=centos-cloud \
    --no-address \
    --metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y 

ট্যাব 2 SSH থেকে ক্লাউড শেলের মাধ্যমে VM-এ

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


gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"

ক্লাউড শেল এর মাধ্যমে ট্যাব 3 SSH থেকে psc-instance-1 এ

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


gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"

ট্যাব 4 শেল এসএসএইচ থেকে ক্লাউড শেল এর মাধ্যমে psc-instance-2 এ

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


gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"

12. বিদ্যমান Gsutil আচরণ যাচাই করুন

ট্যাব 4 (psc-instance-2) থেকে tcpdump শুরু করুন এবং DNS ট্র্যাফিক নিরীক্ষণ করুন

sudo tcpdump -vv -i eth0 port 53

ট্যাব 2 (psc-instance-2) থেকে স্টোরেজ বাকেট DNS লুকআপ পরিদর্শন করুন

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME
gsutil -D ls gs://$BUCKET_NAME

gsutil ডিবাগ পরিদর্শন করুন, HOST storage.googleapis.com DNS রেজোলিউশনের জন্য ব্যবহৃত হয়

<snip>
send: 'GET /storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\nHost: storage.googleapis.com\r\ncontent-length: 0\r\nauthorization: Bearer ya29.c.KpkB7wfaMjfc_WXEKCeNF4Md0fEHnfDU7tqBf3cd0u43yEmYXqj8fX_X5wWdNdDVH6k1EkjeAeIJDzKGvyjPOkf1Io2kVeUqYX69sDv53huW1NslffjAHKchbZ0CP3Cg83TS3Pa55jLcuE0TLbYycVrgSbD3H90LaapUGbWD3kj4IsJLf9J8R98Bqobu8HZwwqk92hlZ4zVzRqOM\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
<snip>

ট্যাব 4 (psc-instance-2) থেকে GoogleAPI.com সার্বজনীন DNS যাচাই করুন স্টোরেজ বাকেট অ্যাক্সেস করার সময় একটি রেকর্ড(গুলি) ব্যবহার করা হয়।

metadata.google.internal.domain > psc-instance-2.c.yourprojectname.internal.33973: [udp sum ok] 36442 q: A? storage.googleapis.com. 11/0/0 storage.googleapis.com. A 108.177.111.128, storage.googleapis.com. A 142.250.128.128, storage.googleapis.com. A 74.125.70.128, storage.googleapis.com. A 74.125.201.128, storage.googleapis.com. A 64.233.183.128, storage.googleapis.com. A 173.194.198.128, storage.googleapis.com. A 172.217.219.128, storage.googleapis.com. A 142.250.136.128, storage.googleapis.com. A 209.85.234.128, storage.googleapis.com. A 172.217.212.128, storage.googleapis.com. A 172.217.214.128

13. Gsutil আচরণ পরিবর্তন করুন

পূর্ববর্তী ধাপে স্মরণ করুন, আপনি একটি ব্যক্তিগত DNS জোন তৈরি করেছেন এবং PSC এন্ডপয়েন্ট আইপি ঠিকানায় ম্যাপ করা একটি রেকর্ড। নিম্নলিখিত ধাপে, আমরা এখন psc-instance-1-এ VM BOTO ফাইল আপডেট করে gsutil কীভাবে আচরণ করে তা নিয়ন্ত্রণ করব।

ট্যাব 1 (psc-instance-1) থেকে VM ইনস্ট্যান্স টার্মিনাল থেকে ডিফল্ট BOTO কনফিগারেশন দেখুন

[psc-instance ~]$ more  /etc/boto.cfg

আউটপুট (আপনার প্রকল্প_আইডি আলাদা হবে)

[GSUtil]
default_project_id  = [your project number]
default_api_version = 2

[GoogleCompute]
service_account = default

ন্যানো বা VI এডিটর ব্যবহার করে BOTO কনফিগারেশন আপডেট করুন, সমস্ত এন্ট্রি কপি এবং পেস্ট করা নিশ্চিত করুন।

উদাহরণ: sudo nano /etc/boto.cfg

বা

উদাহরণ: sudo vi /etc/boto.cfg

ভিএম ইনস্ট্যান্স টার্মিনাল ট্যাব 1 (psc-ইনস্ট্যান্স-1) থেকে

[Credentials]
gs_host = storage-pscendpoint.p.googleapis.com
gs_host_header = storage.googleapis.com
gs_json_host = storage-pscendpoint.p.googleapis.com
gs_json_host_header = www.googleapis.com

কনফিগারেশন যাচাই করুন, ডিএনএস লুকআপের জন্য [প্রমাণপত্রের] ক্রম গুরুত্বপূর্ণ

more /etc/boto.cfg
[Credentials]
gs_host = storage-pscendpoint.p.googleapis.com
gs_host_header = storage.googleapis.com
gs_json_host = storage-pscendpoint.p.googleapis.com
gs_json_host_header = www.googleapis.com

[GSUtil]
default_project_id  = [your project number
default_api_version = 2

[GoogleCompute]
service_account = default

14. আপডেট করা gsutil লুকআপ আচরণ যাচাই করুন

ট্যাব 3 (psc-instance-1) থেকে tcpdump শুরু করুন এবং DNS ট্র্যাফিক নিরীক্ষণ করুন

sudo tcpdump -vv -i eth0 port 53

ট্যাব 1 (psc-instance-1) থেকে স্টোরেজ বাকেট gsutil লুকআপ পরিদর্শন করুন

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

gsutil -D ls gs://$BUCKET_NAME

ডিবাগ লগ নিশ্চিত করে যে স্টোরেজ বাকেটটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট "pscendpoint" এর মাধ্যমে পৌঁছানো যায়

আউটপুট:

<snip>
INFO 0131 22:14:18.795986 base_api.py] Making http GET to https://storage-pscendpoint.p.googleapis.com/storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000
INFO 0131 22:14:18.796415 base_api.py] Headers: {u'Host': 'www.googleapis.com',
 'accept': 'application/json',
 'accept-encoding': 'gzip, deflate',
 'content-length': '0',
 'user-agent': 'apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0'}
INFO 0131 22:14:18.796502 base_api.py] Body: (none)
connect: (storage-pscendpoint.p.googleapis.com, 443)
send: 'GET /storage/v1/b/psc-bucket/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\ncontent-length: 0\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\nhost: www.googleapis.com\r\nauthorization: Bearer ya29.c.KpkB7wd3XWiYeRyTuth5_HPlNV-hPwc2Nn7RSIeMpzrpa_j4EsMPl2m_mDGKAcGHvYIgiC5bT2UVQirAPpSbbpToa6G6lkaBbH5SZwHwgNXYfisp5Ww1UjXe4rTa69a_Wp0WesafcwPNnYzDo3xf5VGh3iGhySA04kTXuyT--MgOU8U-XLII2LJQxUWlV8KEdrvyCuqRb-jsDdk_\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
<snip>

ট্যাব 3 (psc-instance-1) থেকে যাচাই করুন আপনার PSC এন্ডপয়েন্ট IP হল DNS A রেকর্ড যা আপনার স্টোরেজ বাকেট অ্যাক্সেস করার চেষ্টা করার সময় ব্যবহৃত হয়।

@psc-instance-1 ~]$ sudo tcpdump -vv -i eth0 port 53
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
05:02:33.936256 IP (tos 0x0, ttl 64, id 55416, offset 0, flags [DF], proto UDP (17), length 82)
    psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0xcceb!] 34796+ A? storage-pscendpoint.p.googleapis.com. (54)
05:02:33.936269 IP (tos 0x0, ttl 64, id 55417, offset 0, flags [DF], proto UDP (17), length 82)
    psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0x3ebd!] 5632+ AAAA? storage-pscendpoint.p.googleapis.com. (54)
05:02:33.944018 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 98)
    metadata.google.internal.domain > psc-instance-1.c.yourprojectname.42296: [udp sum ok] 34796 q: A? storage-pscendpoint.p.googleapis.com. 1/0/0 storage-pscendpoint.p.googleapis.com. A 10.10.110.10 (70)
05:02:33.946005 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 175)

ভেরিফাই প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট আইপি এখন DNS রেজোলিউশনের জন্য ব্যবহার করা হয়

ট্যাব 1 থেকে

nslookup storage-pscendpoint.p.googleapis.com

আউটপুট

@psc-instance ~]$ nslookup storage-pscendpoint.p.googleapis.com
Server:         169.254.169.254
Address:        169.254.169.254#53

Non-authoritative answer:
Name:   storage-pscendpoint.p.googleapis.com
Address: <pscip>

15. পরিচ্ছন্নতার পদক্ষেপ

VM উদাহরণ থেকে প্রস্থান করুন (সমস্ত ট্যাব)

exit

একটি একক ক্লাউড শেল টার্মিনাল থেকে ল্যাব উপাদান মুছে দিন

gcloud compute routers nats delete cloudnat --router=crnat --region=us-central1 --quiet

gcloud compute routers delete crnat --region=us-central1 --quiet

gcloud compute forwarding-rules delete pscendpoint --global --quiet

gcloud compute addresses delete psc-ip --global --quiet

gsutil rm -r gs://$BUCKET_NAME

gcloud compute instances delete psc-instance-1 --zone=us-central1-a --quiet

gcloud compute instances delete psc-instance-2 --zone=us-central1-a --quiet

gcloud compute firewall-rules delete psclab-ssh --quiet

gcloud compute networks subnets delete psclab-subnet --region us-central1 --quiet

gcloud compute networks delete psc-lab --quiet

কনসোল থেকে, নিশ্চিত করুন যে আপনি সঠিক প্রকল্পটি দেখছেন, তারপরে নেটওয়ার্কিং পরিষেবা → ক্লাউড ডিএনএস নির্বাচন করুন

16. অভিনন্দন!

কোডল্যাব সম্পূর্ণ করার জন্য অভিনন্দন।

আমরা কভার করেছি কি

  • ব্যক্তিগত পরিষেবা সংযোগ ব্যবহারের ক্ষেত্রে
  • নেটওয়ার্ক প্রয়োজনীয়তা
  • সমর্থিত API
  • একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করা হয়েছে
  • একটি ক্লাউড স্টোরেজ বালতি তৈরি করা হয়েছে
  • একটি BOTO কনফিগারেশন ফাইল আপডেট করা হয়েছে৷
  • একটি NAT GW তৈরি করেছে
  • VM1-এ gsutil তালিকা সম্পাদন করুন যা আপনার PSC পরিষেবা শেষ পয়েন্টের বিরুদ্ধে সমাধান করে
  • VM2 তে gsutil তালিকা সম্পাদন করুন যা সর্বজনীন googleapis.com এর বিরুদ্ধে সমাধান করে
  • DNS রেজোলিউশন যাচাই করতে Tcpdump ব্যবহার করুন