1. Giriş
Private Service Connect (PSC), hizmetlerin güvenli ve özel olarak tüketilme şeklini basitleştirir. Bu model, hizmet tüketicilerinin kuruluşlar arası hizmet üreticilerine özel olarak bağlanmasına olanak tanıyarak ağ mimarisini önemli ölçüde kolaylaştırır ve sanal özel bulut eşlemesi ihtiyacını ortadan kaldırır. Şekil 1'de VPC eşleme ve PSC özellikleri gösterilmektedir.
Şekil 1. 
Hizmet tüketicisi olarak, özel IP'lerinizi hizmetlere nasıl tahsis edeceğinizi seçme esnekliği sunarken üretici VPC'leri için alt ağ aralıklarını yönetme yükünü ortadan kaldırır. Artık bir hizmet bağlantısı kullanarak VPC'nizden seçtiğiniz bir sanal IP'yi bu tür bir hizmete kolayca atayabilirsiniz.
Bu codelab'de, MongoDB Atlas ile PSC global erişiminin kullanımını gösteren kapsamlı bir Private Service Connect mimarisi oluşturacaksınız.
Global erişim, istemcilerin bölgesel sınırlar arasında Private Service Connect'e (PSC) bağlanmasına olanak tanır. Bu, birden fazla bölgede barındırılan yönetilen hizmetlerde yüksek kullanılabilirlik oluşturmak veya istemcilerin, istemciyle aynı bölgede olmayan bir hizmete erişmesine izin vermek için kullanışlıdır.
2. Genel erişimi etkinleştirme
Genel erişim, tüketici tarafındaki yönlendirme kuralında yapılandırılan isteğe bağlı bir özelliktir. Aşağıdaki komutta nasıl yapılandırıldığı gösterilmektedir:
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-accessişareti, Private Service Connect uç noktasında genel erişimi etkinleştirir- Global erişim, istemcinin Private Service Connect iletim kuralından farklı bir bölgede olmasına olanak tanır ancak iletim kuralı, bağlandığı hizmet ekiyle aynı bölgede olmalıdır.
- Global erişimi etkinleştirmek için üreticinin hizmet ekinde yapılandırma yapılması gerekmez. Bu seçenek tamamen tüketici tarafında kullanılabilir.
Mevcut uç noktalar için genel erişim de istediğiniz zaman etkinleştirilebilir veya devre dışı bırakılabilir. Mevcut bir uç noktada genel erişim etkinleştirildiğinde etkin bağlantılarda trafik kesintisi olmaz. Aşağıdaki komutla mevcut bir yönlendirme kuralında genel erişim etkinleştirilir:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
Genel erişimi devre dışı bırakma
Genel erişim, --no-allow-psc-global-access işaretiyle mevcut yönlendirme kurallarında da devre dışı bırakılabilir. Bu komut çalıştırıldıktan sonra bölgeler arası etkin trafiğin sonlandırılacağını unutmayın.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. Ne oluşturacaksınız?
- us-west1 bölgesinde bir düğüm ve us-west2 bölgesinde iki düğüm olacak şekilde çok bölgeli bir MongoDB Atlas kümesi (Şekil 2'de açıklanan topoloji) oluşturulur.
- us-west1 ve us-west2'deki MongoDB kümelerine erişmek için bir tüketici VPC'si ve ilişkili sanal makine.
- us-west1 ve us-west2 bölgelerinde sırasıyla bir VPC ve iki alt ağ. Her alt ağda en az 64 boş IP adresi olmalıdır (alt ağları /26 ve daha küçük bir CIDR ile oluşturun).
MongoDB istemcisi, tüketici VPC'sindeki vm1'e yüklenir. Birincil düğüm us-west1'de başarısız olduğunda istemci, us-west2'deki yeni birincil düğüm üzerinden okuma/yazma işlemi yapabilir.
Şekil 2. 
Neler öğreneceksiniz?
- İki bölgede dağıtılan bir VPC ve alt ağlar oluşturma
- Çok bölgeli MongoDB Atlas kümesi dağıtma
- Özel uç nokta oluşturma
- MongoDB'ye bağlanma
- Çok bölgeli MongoDB yük devretmesi gerçekleştirme ve doğrulama
Gerekenler
- Google Cloud projesi
- Bölge başına /26 alt ağı sağlayın
- Küme katmanı M10 veya daha yüksek olan bir MongoDB kümesi oluşturmak için MongoDB Atlas'a proje sahibi veya kuruluş sahibi erişimi. (Lütfen GETATLAS'ı kullanarak PoV'yi çalıştırmak için ücretsiz kredi alın.)
4. Başlamadan önce
Projeyi Codelab'i destekleyecek şekilde güncelleme
Bu Codelab, Cloud Shell'de gcloud yapılandırma uygulamasını kolaylaştırmak için $variables kullanır.
Cloud Shell'de aşağıdakileri yapın:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. Tüketici Kurulumu
Tüketici VPC'sini oluşturma
Cloud Shell'de aşağıdakileri yapın:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Tüketici alt ağlarını oluşturma
Cloud Shell'de aşağıdakileri yapın:
gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1
Cloud Shell'de us-west1 için tüketici uç noktasını oluşturun:
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'de us-west2 için tüketici uç noktası oluşturun:
gcloud compute networks subnets create psc-endpoint-us-west2 --project=$projectname --range=172.16.10.0/26 --network=consumer-vpc --region=us-west2
Cloud Router ve NAT yapılandırması
Sanal makine örneklerinde harici IP adresi olmadığından, yazılım paketi yükleme için bu codelab'de Cloud NAT kullanılır.
Cloud Shell'de bulut yönlendiricisini oluşturun.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
Cloud Shell'de NAT ağ geçidini oluşturun.
gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1
vm1 örneği yapılandırması
Aşağıdaki bölümde, Compute Engine örneği olan vm1'i oluşturacaksınız.
Cloud Shell'de vm1 örneğini oluşturun.
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'nin sanal makine örneklerinize bağlanmasına izin vermek için aşağıdaki özellikleri içeren bir güvenlik duvarı kuralı oluşturun:
- IAP kullanarak erişmek istediğiniz tüm sanal makine örnekleri için geçerlidir.
- 35.235.240.0/20 IP aralığından gelen giriş trafiğine izin verir. Bu aralık, IAP'nin TCP yönlendirme için kullandığı tüm IP adreslerini içerir.
Cloud Shell'de IAP güvenlik duvarı kuralını oluşturun.
gcloud compute firewall-rules create ssh-iap-consumer-vpc \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Çok bölgeli MongoDB Atlas kümesini oluşturma
- PSC kurulumuna başlamadan önce bir Atlas kümesi oluşturmamız gerekir. MongoDB Atlas'a aşağıdaki iki yöntemden birini kullanarak abone olabilirsiniz:
- Google Cloud hesabınız varsa Google Cloud Marketplace üzerinden Aboneliğinizi ayarlamak için dokümanları inceleyin.
- Atlas kayıt sayfası ile.
- Atlas'a abone olduktan sonra aşağıdaki resimde gösterildiği gibi Veritabanı Oluştur düğmesini tıklayın.

- Yeni küme oluşturma → Ayrılmış

- Bulut sağlayıcı ve bölge → Google Cloud
- Çoklu bulut, çok bölgeli ve iş yükü yalıtımı → Seçili (mavi onay işareti)

- Seçilebilir düğümler → us-west1 (1 düğüm), us-west2 (2 düğüm)

- Küme katmanı → M10, Diğer tüm ayarları varsayılan olarak bırakın.

- Küme adı → psc-mongodb-uswest1-uswest2

- Seç → Küme Oluştur

- Veritabanı oluşturma işlemi 7-10 dakika sürer.

Dağıtıldıktan sonra kümenin görünümü

7. us-west1 için özel uç nokta oluşturma
- Atlas hesabınıza giriş yapın ve projenize gidin.
Herhangi bir veritabanına okuma/yazma erişimine izin vermek için yeni bir kullanıcı oluşturma
Güvenlik → Veritabanı Erişimi'nde yeni veritabanı kullanıcısı ekle'yi seçin. Aşağıda bir örnek verilmiştir. Kullanıcı adı ve şifre, codelab olarak yapılandırılmıştır. Yerleşik rolü seçtiğinizden emin olun: Herhangi bir veritabanına okuma ve yazma.

- Güvenlik → Ağ Erişimi bölümünde IP Erişim Listesi için giriş gerekmez.
MongoDB Atlas'ta özel uç noktaları hazırlama
- Ağ erişimi → Özel uç noktalar → Ayrılmış küme → Özel uç nokta ekle'yi
seçin.
Bulut sağlayıcı
- Google Cloud'u ve ardından İleri'yi seçin.

Hizmet eki
- Bölgeyi (us-west1) ve ardından "Sonraki"yi seçin.

Uç noktalar
- Private Service Connect uç noktası oluşturmak için aşağıdakileri sağlayın:
- Google Cloud proje kimliği: Ayrıntılar için "talimatları göster"i seçin.
- VPC adı: consumer-vpc
- Alt ağ adı: psc-endpoint-us-west1
- Private Service Connect uç noktası öneki: psc-endpoint-us-west1

Uç noktaları ayarlama
Aşağıdaki bölümde, yerel olarak setup_psc.sh adıyla kaydedilmesi gereken bir kabuk komut dosyası oluşturulur. Kaydettikten sonra, psc'nin genel erişimine izin vermek için kabuk komut dosyasını düzenleyin. Bu işlemi Google Cloud projesi Cloud Shell'de gerçekleştirebilirsiniz.
- Örnek kabuk komut dosyası. Çıkışınızda farklı değerler olacaktır.

- MongoBD konsolundan kabuk komut dosyasını kopyalayın ve içeriği Google Cloud Cloud Shell terminaline kaydedin. Komut dosyasını setup_psc.sh olarak kaydettiğinizden emin olun.
Güncelleme öncesindeki örnek:
#!/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
Kabuk komut dosyasını küresel erişimi destekleyecek şekilde güncelleme
Kabuk komut dosyasını aşağıdaki söz dizimiyle tanımlamak ve güncellemek için nano veya vi düzenleyiciyi kullanın:
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
Güncellemeden sonraki örnek:
#!/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
Kabuk komut dosyasını çalıştırma
setup_psc.sh komut dosyasını bulup çalıştırın. İşlem tamamlandığında atlasEndpoints-psc-endpoint-us-west1.json adlı bir dosya oluşturulur. JSON dosyası, dağıtımın sonraki adımı için gereken IP adreslerinin ve Private Service Connect uç nokta adlarının listesini içerir.
Cloud Shell'de aşağıdakileri yapın:
sh setup_psc.sh
Komut dosyası tamamlandıktan sonra atlasEndpoints-psc-endpoint-us-west1.json dosyasını yerel olarak indirmek için Cloud Shell Düzenleyici'yi kullanın.

JSON dosyasını yükleyin
Daha önce kaydedilen JSON dosyasını (atlasEndpoints-psc-endpoint-us-west1.json) yükleyin.


Oluştur'u seçin.
Private Service Connect uç noktalarını doğrulama
MongoDB kullanıcı arayüzünde projenize, ardından Güvenlik → Ağ erişimi → Özel uç nokta'ya gidin. Sekmeyi seçtiğinizde, ayrılmış kümenin ve uç noktanın kullanılabilir duruma geçmesi 10 dakika sürer.
Kullanılabilirlik durumu

Google Cloud Console'da Ağ hizmetleri → Private Service Connect'e gidin, Tüketici uç noktalarının Beklemede → Kabul Edildi durumuna geçişini gösteren Bağlı uç nokta sekmesini seçin. Aşağıda örnek verilmiştir:

8. us-west2 için özel uç nokta oluşturma
- Atlas hesabınıza giriş yapın ve projenize gidin.
MongoDB Atlas'ta özel uç noktaları hazırlama
- Ağ erişimi → Özel uç noktalar → Ayrılmış küme → Özel uç nokta ekle'yi
seçin.
Bulut sağlayıcı
- Google Cloud'u ve ardından İleri'yi seçin.

Hizmet eki
- us-west2 bölgesini ve ardından "Sonraki"yi seçin.

Uç noktalar
- Private Service Connect uç noktası oluşturmak için aşağıdakileri sağlayın:
- Google Cloud proje kimliği: Ayrıntılar için "talimatları göster"i seçin.
- VPC adı: consumer-vpc
- Alt ağ adı: psc-endpoint-us-west2
- Private Service Connect uç noktası öneki: psc-endpoint-us-west2

Uç noktaları ayarlama
Aşağıdaki bölümde, yerel olarak setup_psc.sh adıyla kaydedilmesi gereken bir kabuk komut dosyası oluşturulur. Kaydettikten sonra, psc'nin genel erişimine izin vermek için kabuk komut dosyasını düzenleyin. Bu işlemi Google Cloud projesi Cloud Shell'de gerçekleştirebilirsiniz.
- Örnek kabuk komut dosyası. Çıkışınızda farklı değerler olacaktır.

- MongoBD konsolundan kabuk komut dosyasını kopyalayın ve içeriği Google Cloud Cloud Shell terminaline kaydedin. Komut dosyasını setup_psc.sh olarak kaydettiğinizden emin olun.
Güncellemeden önceki örnek:
#!/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
Kabuk komut dosyasını küresel erişimi destekleyecek şekilde güncelleme
Kabuk komut dosyasını aşağıdaki söz dizimiyle tanımlamak ve güncellemek için nano veya vi düzenleyiciyi kullanın:
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
Güncellemeden sonraki örnek:
#!/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
Kabuk komut dosyasını çalıştırma
setup_psc.sh komut dosyasını bulup çalıştırın. İşlem tamamlandığında atlasEndpoints-psc-endpoint-us-west2.json adlı bir dosya oluşturulur. JSON dosyası, dağıtımın sonraki adımı için gereken IP adreslerinin ve Private Service Connect uç nokta adlarının listesini içerir.
Cloud Shell'de aşağıdakileri yapın:
sh setup_psc.sh
Komut dosyası tamamlandıktan sonra Cloud Shell Düzenleyici'yi kullanarak atlasEndpoints-psc-endpoint-us-west2.json dosyasını yerel olarak indirin.

JSON dosyasını yükleyin
Daha önce kaydedilen JSON dosyasını (atlasEndpoints-psc-endpoint-us-west2.json) yükleyin.


Oluştur'u seçin.
Private Service Connect uç noktalarını doğrulama
MongoDB kullanıcı arayüzünde projenize, ardından Güvenlik → Ağ erişimi → Özel uç nokta'ya gidin. Sekme seçildiğinde, ayrılmış küme uç noktası 10 dakika sonra kullanılabilir duruma geçer.
Kullanılabilirlik durumu:

Google Cloud Console'da Ağ hizmetleri → Private Services Connect'e gidin, Tüketici uç noktalarının Beklemede → Kabul Edildi olarak geçişini gösteren Bağlı uç nokta sekmesini seçin. Aşağıda örnek verilmiştir. Tüketici uç noktasında toplam 100 uç nokta dağıtıldı ve bir sonraki adıma geçmeden önce kabul edilen uç noktalara geçiş yapılması gerekiyor.

9. Özel uç noktalardan MongoDB Atlas'a bağlanma
Özel hizmet bağlantıları kabul edildikten sonra MongoDB kümesinin güncellenmesi için ek süre (10-15 dakika) gerekir. MongoDB kullanıcı arayüzünde gri ana hat, küme güncellemesini temsil eder. Bu nedenle özel uç noktaya bağlanmak mümkün değildir.

Dağıtımı belirleyin ve Bağlan'ı seçin (gri kutunun artık görünmediğini unutmayın).

Bağlantı türünü seçin → Özel uç nokta, Bağlantı yöntemi seçin'i belirleyin.

MongoDB Shell ile bağlan'ı seçin.

MongoDB Shell'in yüklü olmadığını, Ubuntu 20.4'ü seçin ve 1. ve 3. adımdaki içerikleri bir not defterine kopyaladığınızdan emin olun.

10. mongosh uygulamasını yükleme
Yüklemeden önce, 1. ve 3. adımlarda elde edilen daha önce kopyalanmış değerlere dayalı bir komut dizesi oluşturmanız gerekir. Ardından, Cloud Shell'i kullanarak vm1'e SSH ile bağlanacak, ardından birincil (us-west1) veritabanına mongosh uygulamasını yükleyip doğrulayacaksınız. consumer-vpc'de vm1 oluşturulurken Ubuntu 20.4 görüntüsü yüklendi.
Bağlantı yöntemi seçin: 1. adım, indirme URL'sini kopyalama

Örnek komut dizesi, özel değerlerinizle değiştirin:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
3. adım: Bağlantı yöntemi seçin.

Örnek komut dizesi, özel değerlerinizle değiştirin:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
vm1'e giriş yapın
Cloud Shell'de aşağıdakileri yapın:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Cloud Shell'de IAP'yi kullanarak vm1'e giriş yapın. Zaman aşımı olursa tekrar deneyin.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Yüklemeyi işletim sisteminden gerçekleştirme
Yüklemeyi Cloud Shell os login'den gerçekleştirin. Ek ayrıntılar mevcuttur. Aşağıdaki söz dizimini özel dizeyle güncelleyin.
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
İşlem,
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 dağıtımına bağlanma
Cloud Shell işletim sistemi girişinde aşağıdakileri yapın. Yapılandırılan kullanıcı adı ve şifre codelab'dir.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Aşağıda bir örnek gösterilmiştir:

Veritabanında komut yürütme
Cloud Shell işletim sistemi girişinde aşağıdakileri yapın.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Etkin MongoDB bölgesi olan us-west1'de yük devretme
Yedek devretme işlemini gerçekleştirmeden önce us-west1'in birincil, us-west2'nin ise iki ikincil düğüme sahip olduğunu doğrulayalım.
Database → psc-mongodb-uswest1-uswest2 → Overview'a (Veritabanı → psc-mongodb-uswest1-uswest2 → Genel Bakış) gidin.

Aşağıdaki bölümde us-west1'de bulunan vm1'e giriş yapın, birincil MongoDB küme bölgesi us-west1'de yük devretme gerçekleştirin ve veritabanına us-west2'deki MongoDB kümesinden erişilebildiğini doğrulayın.
Atlas kullanıcı arayüzünden hem birincil hem de bölgesel yük devretmeyi test edebilirsiniz.
- Atlas kullanıcı arayüzüne giriş yapın.
- Küme adınızın yanındaki [...] simgesini tıklayın, psc-mongodb-uswest1-uswest2 → Test Outage'ı (Test Kesintisi) seçin.

- Bölgesel kesinti'yi seçin → Bölgeleri seçin.

- Birincil bölgeyi seçin: us-west1→ Simulate Regional Outage (Bölgesel Kesintiyi Simüle Et).

Seçildikten sonra kümede 3-4 dakika içinde kesinti simülasyonu gösterilir.
Pencereyi kapat


us-west1'in kapalı olduğunu ve us-west2'nin artık birincil olarak devralındığını doğrulayın.
Database → psc-mongodb-uswest1-uswest2 → Overview'a (Veritabanı → psc-mongodb-uswest1-uswest2 → Genel Bakış) gidin.

Yeni birincil bölge olan us-west2 ile kümeye bağlantıyı doğrulama
us-west1'de bulunan vm1'e giriş yapın ve us-west2'deki mongodb'ye erişerek Private Service Connect'in genel erişimini doğrulayın.
Cloud Shell oturumunuz sonlandırıldıysa aşağıdakileri yapın:
Cloud Shell'de aşağıdakileri yapın:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Cloud Shell'de IAP'yi kullanarak vm1'e giriş yapın. Zaman aşımı olursa tekrar deneyin.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
MongoDB dağıtımına bağlanma
Cloud Shell işletim sistemi girişinde aşağıdakileri yapın.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Aşağıda bir örnek gösterilmiştir:

Veritabanında komut yürütme
Cloud Shell işletim sistemi girişinde aşağıdakileri yapın.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit

Başarılı: PSC küresel erişiminin, bölgeler arasında sorunsuz tüketici uç noktası bağlantısına izin vererek yüksek kullanılabilirliği desteklediğini veya bölgesel kesintilerden kaynaklandığını doğruladınız. Codelab'de, MongoDB bölgesel yük devretmesi us-west1'de bulunan birincil düğümde gerçekleşti. Bu nedenle, ikincil bölge us-west2 birincil bölge olarak devraldı. Küme bölgesel bir kesintiye neden olsa da us-west1'de bulunan consumer vm1, us-west2'deki yeni birincil kümeye başarıyla ulaştı.
12. Temizleme
Cloud Console'dan tüketici uç noktalarını silin.
Ağ hizmetleri → Private Service Connect → BAĞLI UÇ NOKTALAR'a gidin.
Laboratuvar dışındaki tüketici uç noktalarının silinme olasılığını ortadan kaldırmak için psc-endpoint filtresini kullanın. Tüm uç noktaları seçin → SİL

Tüketici uç noktalarıyla ilişkili statik dahili IP adreslerini silin.
VPC ağı → consumer-vpc → STATIC INTERNAL IP ADDRESSES'e (STATİK DAHİLİ IP ADRESLERİ) gidin.
Laboratuvar dışı tüketici uç noktalarının silinme olasılığını ortadan kaldırmak ve sayfa başına satır sayısını 100'e çıkarmak için psc-endpoint filtresini kullanın. Tüm uç noktaları seçin → RELEASE

Cloud Shell'den codelab bileşenlerini silin.
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 kullanıcı arayüzünde küme psc-mongodb-uswest1-uswest2 → simülasyonu sonlandır'ı belirleyin.

Kesinti simülasyonunu sonlandır —> Çıkış'ı seçin.

Küme şu anda birincil olarak us-west1'e geri dönüyor. Bu işlem 3-4 dakika sürecek. İşlem tamamlandıktan sonra kümeyi sonlandırın ve durum değişikliğini gösteren gri ana hattı not edin.


Küme adını girin → Sonlandır

us-west1 ve us-west2 ile ilişkili özel uç noktayı silin.
Atlas kullanıcı arayüzünde Güvenlik → Ağ Erişimi → Özel Uç Nokta → Sonlandır'ı seçin.

13. Tebrikler
Tebrikler! Bölgeler arası MongoDB'ye küresel erişim sağlayan bir Private Service Connect uç noktasını başarıyla yapılandırdınız ve doğruladınız. Tüketici VPC'si, çok bölgeli MongoDB ve tüketici uç noktalarını başarıyla oluşturdunuz. us-west1 bölgesinde bulunan bir sanal makine, bölgesel yük devretme sonrasında hem us-west1 hem de us-west2 bölgelerindeki MongoDB'ye başarıyla bağlandı.
Cosmopup, codelab'lerin harika olduğunu düşünüyor.

Yapabilecekleriniz
Şu codelab'lere göz atın:
- GKE ile hizmet yayınlamak ve kullanmak için Private Service Connect'i kullanma
- Hizmet yayınlamak ve kullanmak için Private Service Connect'i kullanma
- Private Service Connect ve dahili TCP Proxy yük dengeleyici kullanarak karma ağ üzerinden şirket içi hizmetlere bağlanma
- Otomatik DNS yapılandırmasıyla Private Service Connect'i kullanma
Daha fazla bilgi ve videolar
- Private Service Connect'e genel bakış
- Private Service Connect nedir?
- Desteklenen yük dengeleyici türleri