1. مقدمه
Private Service Connect (PSC) نحوه مصرف ایمن و خصوصی سرویس ها را ساده می کند. این مدل با اجازه دادن به مصرف کنندگان خدمات برای اتصال خصوصی به تولیدکنندگان خدمات در سراسر سازمان ها، معماری شبکه را به شدت آسان می کند و نیاز به همتاسازی ابر خصوصی مجازی را از بین می برد. شکل 1 ویژگی های همتاسازی VPC و PSC را نشان می دهد.
شکل 1.
به عنوان یک مصرف کننده خدمات، این امکان را به شما می دهد تا در انتخاب نحوه تخصیص IP های خصوصی خود به سرویس ها انعطاف پذیر باشید، در حالی که بار مدیریت محدوده های زیرشبکه را برای VPC های تولید کننده از بین می برد. اکنون می توانید به سادگی با استفاده از یک سرویس اتصال، یک IP مجازی انتخابی از VPC خود را به چنین سرویسی اختصاص دهید.
در این نرمافزار، شما یک معماری جامع Private Service Connect ایجاد میکنید که استفاده از دسترسی سراسری PSC را با اطلس MongoDB نشان میدهد.
دسترسی جهانی به مشتریان این امکان را می دهد تا به Private Service Connect (PSC) در سراسر مرزهای منطقه متصل شوند. این برای ایجاد دسترسی بالا در سرویسهای مدیریتشده که در چندین منطقه میزبانی میشوند یا به مشتریان اجازه دسترسی به سرویسی را که در همان منطقه مشتری نیست، مفید است.
2. فعال کردن دسترسی جهانی
دسترسی سراسری یک ویژگی اختیاری است که بر روی قانون حمل و نقل سمت مصرف کننده پیکربندی شده است. دستور زیر نحوه پیکربندی آن را نشان می دهد:
gcloud beta compute forwarding-rules create psc-west \ --region=us-west1 \ --network=consumer-vpc \ --address=psc-west-address \ --target-service-attachment=projects/.../serviceAttachments/sa-west \ --allow-psc-global-access
- پرچم
--allow-psc-global-access
دسترسی جهانی را در یک نقطه پایانی Private Service Connect فعال می کند. - دسترسی سراسری به مشتری اجازه می دهد تا در منطقه ای متفاوت از قانون حمل و نقل Private Service Connect قرار گیرد، اما قانون حمل و نقل همچنان باید در همان منطقه ای باشد که پیوست سرویس به آن متصل است.
- برای فعال کردن دسترسی سراسری، هیچ پیکربندی مورد نیاز در پیوست سرویس تولیدکننده وجود ندارد. این صرفا یک گزینه سمت مصرف کننده است.
دسترسی سراسری را نیز می توان در هر زمان برای نقاط پایانی موجود روشن یا خاموش کرد. هنگام فعال کردن دسترسی سراسری در یک نقطه پایانی موجود، هیچ اختلالی در ترافیک برای اتصالات فعال وجود ندارد. دسترسی جهانی در یک قانون حمل و نقل موجود با دستور زیر فعال می شود:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
غیرفعال کردن دسترسی جهانی
دسترسی سراسری را نیز میتوان در قوانین حمل و نقل موجود با پرچم --no-allow-psc-global-access
غیرفعال کرد. توجه داشته باشید که هر ترافیک بین منطقه ای فعال پس از اجرای این دستور خاتمه می یابد.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. آنچه می سازید
- یک خوشه MongoDB Atlas چند منطقه ای (توپولوژی شرح داده شده در شکل 2) به ترتیب با یک گره در ناحیه us-west1 و دو گره در مناطق us-west2 ایجاد می شود.
- یک VPC مصرف کننده و vm مرتبط برای دسترسی به خوشه های MongoDB در us-west1 و us-west2.
- یک VPC و دو زیرشبکه در مناطق us-west1 و us-west2 به ترتیب با حداقل 64 آدرس IP رایگان در هر زیرشبکه (ایجاد زیرشبکه با /26 و پایین تر).
کلاینت MongoDB روی vm1 در vpc مصرف کننده نصب خواهد شد. هنگامی که گره اولیه در us-west1 از کار می افتد، مشتری می تواند از طریق گره اصلی جدید در us-west2 بخواند/بنویسد.
شکل 2.
چیزی که یاد خواهید گرفت
- نحوه ایجاد VPC و زیر شبکه های مستقر در دو منطقه
- نحوه استقرار یک خوشه اطلس MongoDB چند منطقه ای
- نحوه ایجاد یک نقطه پایانی خصوصی
- نحوه اتصال به MongoDB
- نحوه انجام و اعتبار سنجی خطای MongoDB چند منطقه ای
آنچه شما نیاز دارید
- پروژه Google Cloud
- برای هر منطقه یک زیرشبکه /26 ارائه دهید
- دسترسی مالک پروژه یا مالک سازمان به MongoDB Atlas برای ایجاد یک خوشه MongoDB با ردیف کلاستر M10 یا بالاتر. (لطفا از GETATLAS برای دریافت اعتبار رایگان برای اجرای PoV استفاده کنید)
4. قبل از شروع
پروژه را برای پشتیبانی از Codelab به روز کنید
این Codelab از متغیرهای $ برای کمک به پیاده سازی پیکربندی gcloud در Cloud Shell استفاده می کند.
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. راه اندازی مصرف کننده
VPC مصرف کننده را ایجاد کنید
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
زیرشبکه های مصرف کننده ایجاد کنید
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1
در داخل Cloud Shell، نقطه پایان مصرف کننده را برای us-west1 ایجاد کنید:
gcloud compute networks subnets create psc-endpoint-us-west1 --project=$projectname --range=192.168.10.0/26 --network=consumer-vpc --region=us-west1
در داخل Cloud Shell، نقطه پایان مصرف کننده را برای us-west2 ایجاد کنید:
gcloud compute networks subnets create psc-endpoint-us-west2 --project=$projectname --range=172.16.10.0/26 --network=consumer-vpc --region=us-west2
روتر ابری و پیکربندی NAT
Cloud NAT در کد لبه برای نصب بسته نرم افزاری استفاده می شود زیرا نمونه های VM آدرس IP خارجی ندارند.
در داخل Cloud Shell، روتر ابری را ایجاد کنید.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
در داخل Cloud Shell، دروازه NAT را ایجاد کنید.
gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1
پیکربندی نمونه vm1
در بخش زیر، نمونه Compute Engine، vm1 را ایجاد خواهید کرد.
در داخل پوسته ابری، نمونه vm1 را ایجاد کنید.
gcloud compute instances create vm1 \
--project=$projectname \
--zone=us-west1-a \
--machine-type=e2-micro \
--network-interface=subnet=vm-subnet,no-address \
--maintenance-policy=MIGRATE \
--provisioning-model=STANDARD \
--create-disk=auto-delete=yes,boot=yes,device-name=vm1,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20230213,mode=rw,size=10,type=projects/$projectname/zones/us-west1-a/diskTypes/pd-balanced
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump -y
sudo apt-get install dnsutils -y"
برای اینکه به IAP اجازه دهید به نمونه های VM شما متصل شود، یک قانون فایروال ایجاد کنید که:
- برای تمام نمونه های VM که می خواهید با استفاده از IAP در دسترس باشند، اعمال می شود.
- به ترافیک ورودی از محدوده IP 35.235.240.0/20 اجازه می دهد. این محدوده شامل تمام آدرس های IP است که IAP برای ارسال TCP استفاده می کند.
در داخل Cloud Shell، قانون فایروال IAP را ایجاد کنید.
gcloud compute firewall-rules create ssh-iap-consumer-vpc \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. خوشه MongoDB Atlas چند منطقه ای را ایجاد کنید
- قبل از شروع راه اندازی PSC باید یک خوشه Atlas راه اندازی کنیم. می توانید به یکی از دو روش زیر در MongoDB Atlas مشترک شوید:
- اگر حساب Google Cloud دارید، از طریق Google Cloud Marketplace . برای تنظیم اشتراک خود به مستندات مراجعه کنید.
- با صفحه ثبت نام اطلس .
- پس از عضویت در Atlas روی دکمه Build a Database مطابق شکل زیر کلیک کنید.
- ایجاد خوشه جدید → اختصاصی
- ارائه دهنده و منطقه ابر → Google Cloud
- چند ابری، چند منطقه ای و ایزوله بار کاری → انتخاب شده (بررسی آبی)
- گره های قابل انتخاب → us-west1 (1 گره)، us-west2 (2 گره)
- Cluster Tier → M10، تمام تنظیمات دیگر را به عنوان پیش فرض بگذارید
- نام خوشه ← psc-mongodb-uswest1-uswest2
- ← Create Cluster را انتخاب کنید
- ایجاد پایگاه داده 7-10 دقیقه طول می کشد
نمای خوشه پس از استقرار
7. ایجاد نقطه پایانی خصوصی برای us-west1
- به حساب Atlas خود وارد شوید و به پروژه خود بروید.
یک کاربر جدید ایجاد کنید تا اجازه دسترسی خواندن/نوشتن به هر پایگاه داده را بدهد
امنیت → دسترسی به پایگاه داده افزودن کاربر پایگاه داده جدید را انتخاب کنید. در زیر یک مثال، نام کاربری و رمز عبور پیکربندی شده به عنوان Codelab آورده شده است. اطمینان حاصل کنید که نقش داخلی خواندن و نوشتن در هر پایگاه داده را انتخاب کنید.
- در بخش امنیت → دسترسی به شبکه، فهرست دسترسی IP به ورودی نیاز ندارد
نقاط پایانی خصوصی را در MongoDB Atlas آماده کنید
- را انتخاب کنید، دسترسی به شبکه ← نقاط پایانی خصوصی ← خوشه اختصاصی ← افزودن نقطه پایانی خصوصی
ارائه دهنده ابر
- Google Cloud و سپس next را انتخاب کنید
پیوست سرویس
- منطقه، us-west1، سپس next را انتخاب کنید
نقاط پایانی
- برای ایجاد یک نقطه پایانی اتصال سرویس خصوصی موارد زیر را ارائه دهید:
- شناسه پروژه ابری Google: برای جزئیات، «نمایش دستورالعملها» را انتخاب کنید
- نام VPC: customers-vpc
- نام زیر شبکه: psc-endpoint-us-west1
- پیشوند نقطه پایانی اتصال سرویس خصوصی: psc-endpoint-us-west1
نقاط پایانی را تنظیم کنید
در بخش زیر یک پوسته اسکریپت ایجاد می شود که باید به صورت محلی با نام setup_psc.sh ذخیره شود. پس از ذخیره، اسکریپت پوسته را ویرایش کنید تا امکان دسترسی سراسری psc فراهم شود. می توانید این عمل را در پروژه Google Cloud Cloud Shell انجام دهید.
- به عنوان مثال پوسته اسکریپت، خروجی شما مقادیر متفاوتی خواهد داشت
- اسکریپت پوسته را از کنسول MongoBD کپی کنید و محتویات را در ترمینال Google Cloud Shell ذخیره کنید، مطمئن شوید که اسکریپت را به عنوان setup_psc.sh ذخیره کنید.
مثال قبل از بروزرسانی:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
اسکریپت پوسته را برای پشتیبانی از دسترسی جهانی به روز کنید
از ویرایشگر nano یا vi برای شناسایی و به روز رسانی پوسته اسکریپت با نحو زیر استفاده کنید:
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
مثال بعد از بروز رسانی:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
اسکریپت پوسته را اجرا کنید
اسکریپت setup_psc.sh را پیمایش و اجرا کنید، پس از تکمیل فایلی به نام atlasEndpoints-psc-endpoint-us-west1.json ایجاد می شود. فایل json حاوی لیستی از آدرسهای IP و نامهای نقطه پایانی اتصال سرویس خصوصی است که برای مرحله بعدی استقرار لازم است.
Inside Cloud Shell موارد زیر را انجام می دهد:
sh setup_psc.sh
پس از تکمیل اسکریپت، از ویرایشگر Cloud Shell برای دانلود atlasEndpoints-psc-endpoint-us-west1.json به صورت محلی استفاده کنید.
فایل JSON را آپلود کنید
آپلود فایل json ذخیره شده قبلی atlasEndpoints-psc-endpoint-us-west1.json
ایجاد را انتخاب کنید
اعتبار سنجی نقاط پایانی Private Service Connect
در MongoDB UI، به پروژه خود و سپس امنیت → دسترسی به شبکه → نقطه پایانی خصوصی بروید. با انتخاب برگه، خوشه اختصاصی، انتقال نقطه پایانی به موجود 10 دقیقه طول می کشد.
وضعیت موجود
در کنسول ابری Google، به خدمات شبکه ← Private Services Connect بروید، برگه نقطه پایانی متصل را انتخاب کنید که نقاط پایانی مصرف کننده را در حال انتقال در انتظار → پذیرفته شده نشان می دهد، مثال زیر:
8. ایجاد نقطه پایانی خصوصی برای us-west2
- به حساب Atlas خود وارد شوید و به پروژه خود بروید.
نقاط پایانی خصوصی را در MongoDB Atlas آماده کنید
- را انتخاب کنید، دسترسی به شبکه ← نقاط پایانی خصوصی ← خوشه اختصاصی ← افزودن نقطه پایانی خصوصی
ارائه دهنده ابر
- Google Cloud و سپس next را انتخاب کنید
پیوست سرویس
- منطقه، us-west2، سپس next را انتخاب کنید
نقاط پایانی
- برای ایجاد یک نقطه پایانی اتصال سرویس خصوصی موارد زیر را ارائه دهید:
- شناسه پروژه ابری Google: برای جزئیات، «نمایش دستورالعملها» را انتخاب کنید
- نام VPC: customers-vpc
- نام زیر شبکه: psc-endpoint-us-west2
- پیشوند نقطه پایانی اتصال سرویس خصوصی: psc-endpoint-us-west2
نقاط پایانی را تنظیم کنید
در بخش زیر یک پوسته اسکریپت ایجاد می شود که باید به صورت محلی با نام setup_psc.sh ذخیره شود. پس از ذخیره، اسکریپت پوسته را ویرایش کنید تا امکان دسترسی سراسری psc فراهم شود. می توانید این عمل را در پروژه Google Cloud Cloud Shell انجام دهید.
- به عنوان مثال پوسته اسکریپت، خروجی شما مقادیر متفاوتی خواهد داشت
- اسکریپت پوسته را از کنسول MongoBD کپی کنید و محتویات را در ترمینال Google Cloud Shell ذخیره کنید، مطمئن شوید که اسکریپت را به عنوان setup_psc.sh ذخیره کنید.
مثال قبل از بروزرسانی:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
اسکریپت پوسته را برای پشتیبانی از دسترسی جهانی به روز کنید
از ویرایشگر nano یا vi برای شناسایی و به روز رسانی پوسته اسکریپت با نحو زیر استفاده کنید:
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
مثال بعد از بروز رسانی:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
اسکریپت پوسته را اجرا کنید
اسکریپت setup_psc.sh را پیمایش و اجرا کنید، پس از تکمیل فایلی به نام atlasEndpoints-psc-endpoint-us-west2.json ایجاد می شود. فایل json حاوی لیستی از آدرسهای IP و نامهای نقطه پایانی اتصال سرویس خصوصی است که برای مرحله بعدی استقرار لازم است.
Inside Cloud Shell موارد زیر را انجام می دهد:
sh setup_psc.sh
پس از تکمیل اسکریپت، از ویرایشگر Cloud Shell برای دانلود atlasEndpoints-psc-endpoint-us-west2.json به صورت محلی استفاده کنید.
فایل JSON را آپلود کنید
آپلود فایل json ذخیره شده قبلی atlasEndpoints-psc-endpoint-us-west2.json
ایجاد را انتخاب کنید
اعتبار سنجی نقاط پایانی Private Service Connect
در MongoDB UI، به پروژه خود و سپس امنیت → دسترسی به شبکه → نقطه پایانی خصوصی بروید. انتخاب برگه، خوشه اختصاصی، انتقال نقطه پایانی به پس از 10 دقیقه در دسترس است.
وضعیت موجود:
در کنسول ابری Google، به خدمات شبکه ← Private Services Connect بروید، برگه نقطه پایانی متصل را انتخاب کنید که نقاط پایانی مصرف کننده را در حال انتقال در انتظار → پذیرفته شده، به عنوان مثال در زیر نشان می دهد. در مجموع 100 نقطه پایانی در نقطه پایانی مصرفکننده مستقر شدهاند و باید قبل از حرکت به مرحله بعدی به مرحله پذیرش تبدیل شوند.
9. از نقاط پایانی خصوصی به اطلس MongoDB متصل شوید
هنگامی که اتصالات سرویس خصوصی پذیرفته شد، زمان بیشتری (10-15 دقیقه) برای به روز رسانی خوشه MongoDB لازم است. در MongoDB UI، طرح کلی خاکستری نشان دهنده به روز رسانی خوشه است، بنابراین اتصال به نقطه پایانی خصوصی در دسترس نیست.
استقرار را شناسایی کرده و Connect را انتخاب کنید (توجه داشته باشید که کادر خاکستری دیگر وجود ندارد)
نوع اتصال ← نقطه پایان خصوصی را انتخاب کنید، انتخاب روش اتصال را انتخاب کنید
Connect with the MongoDB Shell را انتخاب کنید
انتخاب کنید، من MongoDB Shell، اوبونتو 20.4 را نصب نکردهام و مطمئن شوید که محتویات مرحله 1 و مرحله 3 را در دفترچه یادداشت کپی کنید.
10. اپلیکیشن mongosh را نصب کنید
قبل از نصب، باید یک رشته فرمان بر اساس مقادیر کپی شده قبلی به دست آمده در مراحل 1 و 3 ایجاد کنید. پس از آن، با استفاده از Cloud Shell به vm1 وارد میشوید و سپس برنامه mongosh را نصب و اعتبار سنجی در پایگاه داده اولیه (us-west1) خواهید داشت. تصویر اوبونتو 20.4 هنگام ایجاد vm1 در consumer-vpc نصب شد.
روش اتصال را انتخاب کنید: مرحله 1، URL دانلود را کپی کنید
به عنوان مثال رشته فرمان، با مقادیر سفارشی خود جایگزین کنید:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
یک روش اتصال را انتخاب کنید، مرحله 3.
به عنوان مثال رشته فرمان، با مقادیر سفارشی خود جایگزین کنید:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
وارد vm1 شوید
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
با استفاده از IAP در Cloud Shell وارد vm1 شوید، اگر مهلت زمانی وجود داشت دوباره امتحان کنید.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
نصب را از سیستم عامل انجام دهید
نصب را از ورود به سیستم Cloud Shell انجام دهید، جزئیات اضافی موجود است ، نحو زیر را با رشته سفارشی خود بهروزرسانی کنید
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
عملیات باید با یک پاسخ دهد
OK
.
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update -y
wget https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
sudo dpkg -i mongodb-mongosh_1.7.1_amd64.deb
به استقرار MongoDB متصل شوید
در داخل سیستم ورود به سیستم Cloud Shell موارد زیر را انجام دهید. نام کاربری و رمز عبور پیکربندی شده Codelab است.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
مثال زیر:
اجرای دستورات در مقابل پایگاه داده
در داخل سیستم ورود به سیستم Cloud Shell موارد زیر را انجام دهید.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. منطقه MongoDB فعال Failover، us-west1
قبل از انجام failover، اجازه دهید اعتبار سنجی کنیم که us-west1 اولیه است و us-west2 دارای دو گره ثانویه است.
به پایگاه داده → psc-mongodb-uswest1-uswest2 → مرور کلی بروید
در بخش زیر وارد vm1 واقع در us-west1 شوید، منطقه خوشه MongoDB اولیه us-west1 را خراب کنید و بررسی کنید که پایگاه داده هنوز از خوشه MongoDB در us-west2 قابل دسترسی است.
از Atlas UI میتوانید هم خطای اصلی و هم منطقهای را آزمایش کنید.
- وارد رابط کاربری Atlas شوید.
- روی [...] در کنار نام خوشه خود، psc-mongodb-uswest1-uswest2 → Test Outage کلیک کنید.
- قطع منطقه ای ← انتخاب مناطق را انتخاب کنید.
- منطقه اصلی، us-west1 → Simulate Regional Outage را انتخاب کنید.
پس از انتخاب، خوشه پس از 3-4 دقیقه شبیه سازی خاموشی را نشان می دهد
پنجره را ببند
بررسی کنید که us-west1 پایین است و us-west2 اکنون به عنوان اصلی انتخاب شده است
به پایگاه داده → psc-mongodb-uswest1-uswest2 → مرور کلی بروید
اعتبارسنجی اتصال به خوشه توسط اولیه جدید، us-west2
وارد vm1 واقع در us-west1 شوید و به mongodb در us-west2 دسترسی داشته باشید و سرویس خصوصی اعتبار سنجی دسترسی جهانی را متصل کنید.
اگر جلسه Cloud Shell شما خاتمه یافت، موارد زیر را انجام دهید:
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
با استفاده از IAP در Cloud Shell وارد vm1 شوید، اگر مهلت زمانی وجود داشت دوباره امتحان کنید.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
به استقرار MongoDB متصل شوید
در داخل سیستم ورود به سیستم Cloud Shell موارد زیر را انجام دهید.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
مثال زیر:
اجرای دستورات در مقابل پایگاه داده
در داخل سیستم ورود به سیستم Cloud Shell موارد زیر را انجام دهید.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit
موفقیت: شما تأیید کردهاید که دسترسی جهانی PSC امکان اتصال یکپارچه نقطه پایانی مصرفکننده را در سراسر مناطق برای کمک به دسترسی بالا یا به دلیل قطعیهای منطقهای فراهم میکند. در Codelab، خطای منطقهای MongoDB در گره اولیه واقع در us-west1 رخ داد، بنابراین منطقه ثانویه us-west2 یک اولیه را گرفت. اگرچه خوشه منجر به قطع منطقه ای شد، مصرف کننده vm1 واقع در us-west1 با موفقیت به خوشه اولیه جدید در us-west2 رسید.
12. پاکسازی
از Cloud Console نقاط پایانی مصرف کننده را حذف کنید
به خدمات شبکه → اتصال سرویس خصوصی → نقاط پایانی متصل بروید
از فیلتر psc-endpoint برای حذف حذف احتمالی نقاط پایانی مصرف کننده غیر آزمایشگاهی استفاده کنید. تمام نقاط پایانی → DELETE را انتخاب کنید
آدرس های IP داخلی ثابت مرتبط با نقاط پایانی مصرف کننده را حذف کنید
به شبکه VPC → مصرف کننده-vpc → آدرس های IP داخلی استاتیک بروید
از فیلتر psc-endpoint برای حذف حذف احتمالی نقاط پایانی مصرفکننده غیرآزمایشگاهی و افزایش ردیفها در هر صفحه به 100 استفاده کنید. همه نقاط پایانی را انتخاب کنید → RELEASE
از Cloud Shell، اجزای codelab را حذف کنید.
gcloud compute instances delete vm1 --zone=us-west1-a --quiet
gcloud compute networks subnets delete psc-endpoint-us-west1 vm-subnet --region=us-west1 --quiet
gcloud compute networks subnets delete psc-endpoint-us-west2 --region=us-west2 --quiet
gcloud compute firewall-rules delete ssh-iap-consumer --quiet
gcloud compute routers delete consumer-cr --region=us-west1 --quiet
gcloud compute networks delete consumer-vpc --quiet
از رابط کاربری Atlas خوشه psc-mongodb-uswest1-uswest2 را شناسایی کنید → شبیه سازی پایان
پایان شبیه سازی خاموشی —> خروج را انتخاب کنید
خوشه اکنون us-west1 را به عنوان اصلی برمیگرداند، این فرآیند 3-4 دقیقه طول میکشد. پس از تکمیل، خوشه را خاتمه دهید، به طرح خاکستری توجه کنید که نشان دهنده تغییر وضعیت است.
نام خوشه را وارد کنید → خاتمه
نقطه پایانی خصوصی مرتبط با us-west1 و us-west2 را حذف کنید
از رابط کاربری Atlas به امنیت → دسترسی به شبکه → نقطه پایانی خصوصی → خاتمه را انتخاب کنید.
13. تبریک می گویم
تبریک میگوییم، شما با موفقیت یک نقطه پایانی Private Service Connect را با دسترسی جهانی به MongoDB در سراسر مناطق پیکربندی و تأیید کردید. شما با موفقیت یک VPC مصرف کننده، MongoDB چند منطقه ای و نقاط پایانی مصرف کننده ایجاد کردید. یک VM واقع در us-west1 با موفقیت به MongoDB در هر دو us-west1 و us-west2 پس از خرابی منطقهای متصل شد.
Cosmopup فکر می کند که نرم افزارهای کدنویسی عالی هستند!!
بعدش چی؟
برخی از این کدها را بررسی کنید...
- استفاده از Private Service Connect برای انتشار و مصرف خدمات با GKE
- استفاده از Private Service Connect برای انتشار و مصرف خدمات
- با استفاده از Private Service Connect و یک متعادل کننده بار داخلی TCP Proxy از طریق شبکه هیبریدی به سرویس های اولیه متصل شوید.
- با استفاده از Private Service Connect با پیکربندی خودکار DNS