1. Giriş
Private Service Connect (PSC), hizmetlerin güvenli ve gizli bir şekilde nasıl kullanıldığını basitleştirir. Bu model, hizmet tüketicilerinin kuruluşlar genelinde hizmet üreticilere ö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 elde edersiniz. Ayrıca, üretici VPC'ler için alt ağ aralıklarını yönetme yükünü de ortadan kaldırırsınız. Artık bir hizmet bağlantısı kullanarak VPC'nizden bu tür bir hizmete seçtiğiniz bir sanal IP atamanız yeterlidir.
Bu codelab'de, PSC küresel erişiminin MongoDB Atlas ile kullanımını gösteren kapsamlı bir Private Service Connect mimarisi oluşturacaksınız.
Küresel erişim, istemcilerin bölgesel sınırlar boyunca 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 kendileriyle 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ında yönlendirme kuralında yapılandırılan isteğe bağlı bir özelliktir. Aşağıdaki komut, nasıl yapılandırıldığını gösterir:
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
işareti, Private Service Connect uç noktasında genel erişimi etkinleştirir- Küresel erişim, istemcinin Private Service Connect yönlendirme kuralından farklı bir bölgede olmasına olanak tanır ancak yönlendirme kuralı, bağlı olduğu hizmet eki ile aynı bölgede olmalıdır.
- Üretici, genel erişimi etkinleştirmek için hizmet ekinde herhangi bir yapılandırma yapmalıdır. Bu, yalnızca tüketici tarafında kullanılabilen bir seçenektir.
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 yaşanmaz. Mevcut bir yönlendirme kuralında aşağıdaki komutla global erişim etkinleştirilir:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
Küresel erişimi devre dışı bırakma
Mevcut yönlendirme kurallarında --no-allow-psc-global-access
işareti kullanılarak da global erişim devre dışı bırakılabilir. Bu komut çalıştırıldıktan sonra etkin bölgeler arası 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?
- Sırasıyla us-west1 bölgesinde bir ve us-west2 bölgesinde iki düğüm içeren ç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 makinesi.
- Her alt ağda en az 64 ücretsiz IP adresi bulunan bir VPC ve sırasıyla us-west1 ve us-west2 bölgelerinde iki alt ağ (/26 ve altındaki alt ağlar oluşturun).
MongoDB istemcisi, tüketici VPC'sindeki vm1'e yüklenir. us-west1 bölgesindeki birincil düğüm devre dışı kaldığında istemci, us-west2 bölgesindeki yeni birincil düğüm üzerinden okuma/yazma yapabilir.
Şekil 2.
Neler öğreneceksiniz?
- İki bölgede dağıtılan bir VPC ve alt ağ oluşturma
- Çok bölgeli MongoDB Atlas kümesi dağıtma
- Özel uç nokta oluşturma
- MongoDB'ye bağlanma
- Çok bölgeli MongoDB yedekleme işlemini gerçekleştirme ve doğrulama
Gerekenler
- Google Cloud projesi
- Bölge başına /26 alt ağı sağlayın
- M10 veya daha yüksek küme katmanlı bir MongoDB kümesi oluşturmak için MongoDB Atlas'a proje sahibi veya kuruluş sahibi erişimi. (Bakış açısını çalıştırmak için ücretsiz kredi almak üzere lütfen GETATLAS'ı kullanın)
4. Başlamadan önce
Projeyi, codelab'i destekleyecek şekilde güncelleme
Bu Codelab'de, Cloud Shell'de gcloud yapılandırmasının uygulanmasına yardımcı olmak için $variables değişkenleri kullanılı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ını 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 örneklerinin harici IP adresi olmadığından, kod laboratuvarındaki yazılım paketi yükleme işlemi için Cloud NAT kullanılır.
Cloud Shell'de bulut yönlendiriciyi 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
Örnek vm1 yapılandırması
Aşağıdaki bölümde, vm1 adlı Compute Engine örneğini 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ğıdakileri yapan bir güvenlik duvarı kuralı oluşturun:
- IAP kullanılarak erişilmesini 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 gerekiyor. MongoDB Atlas'a aşağıdaki iki yöntemden biriyle abone olabilirsiniz:
- Google Cloud hesabınız varsa Google Cloud Marketplace üzerinden. Aboneliğinizi ayarlamak için dokümanlara bakın.
- Atlas kayıt sayfası ile.
- Atlas'a abone olduktan sonra aşağıdaki gibi Veritabanı Oluştur düğmesini tıklayın.
- Yeni küme oluştur → Özel
- Bulut sağlayıcı ve bölge → Google Cloud
- Çoklu bulut, çoklu bölge 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çin → 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'ni seçin ve yeni veritabanı kullanıcısı ekleyin. Aşağıda, codelab olarak yapılandırılmış bir kullanıcı adı ve şifre örneği verilmiştir. Yerleşik rolü seçtiğinizden ve herhangi bir veritabanına okuma ve yazma izni verdiğinizden emin olun.
- Güvenlik → Ağ Erişimi bölümündeki IP Erişim Listesi için giriş gerekmez.
MongoDB Atlas'ta özel uç noktalar hazırlama
- Ağ erişimi → Özel Uç Noktaları → Özel küme → Özel uç noktası ekle'yi seçin.
Bulut sağlayıcı
- Google Cloud'u ve ardından sonrakini seçin
Hizmet eki
- Bölgeyi (us-west1) seçip ileriye gidin.
Uç noktalar
- Private Service Connect uç noktası oluşturmak için şunları 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ı ön eki: psc-endpoint-us-west1
Uç noktaları ayarlama
Aşağıdaki bölümde, yerel olarak setup_psc.sh olarak kaydedilmesi gereken bir kabuk komut dosyası oluşturulur. Kaydettikten sonra kabuk komut dosyasını, psc'nin küresel erişimine izin verecek şekilde düzenleyin. Bu işlemi Google Cloud projesi Cloud Shell'de gerçekleştirebilirsiniz.
- Örnek kabuk komut dosyası. Çıktınız farklı değerlere sahip olacaktır.
- MongoBD konsolundan kabuk komut dosyasını kopyalayıp 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-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
Küresel erişimi desteklemek için kabuk komut dosyasını güncelleme
Kabuk komut dosyasını tanımlamak ve aşağıdaki söz dizimini kullanarak 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üncelleme sonrası ö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ına gidin ve dosyayı çalıştırın. İşlem tamamlandığında atlasEndpoints-psc-endpoint-us-west1.json adlı bir dosya oluşturulur. JSON dosyası, dağıtımın bir sonraki adımı için gereken IP adreslerinin ve Private Service Connect uç noktası 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üzenleyiciyi kullanın.
JSON dosyasını yükleme
Önceden kaydedilmiş atlasEndpoints-psc-endpoint-us-west1.json json dosyasını 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ç noktaya gidin. Sekme, özel küme seçildiğinde uç noktanın kullanılabilir duruma geçişi 10 dakika sürer.
Kullanılabilir durum
Google Cloud Console'da Ağ hizmetleri → Private Services Connect'e gidin, Beklemede → Kabul Edildi durumuna geçen tüketici uç noktalarını gösteren Bağlı uç noktası sekmesini seçin. Aşağıdaki örnekte gösterildiği gibi:
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ı → Özel küme → Özel uç noktası ekle'yi seçin.
Bulut sağlayıcı
- Google Cloud'u ve ardından sonrakini seçin
Hizmet eki
- Bölgeyi (us-west2) seçip sonrakine gidin.
Uç noktalar
- Private Service Connect uç noktası oluşturmak için şunları 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ı ön eki: psc-endpoint-us-west2
Uç noktaları ayarlama
Aşağıdaki bölümde, yerel olarak setup_psc.sh olarak kaydedilmesi gereken bir kabuk komut dosyası oluşturulur. Kaydettikten sonra kabuk komut dosyasını, psc'nin küresel erişimine izin verecek şekilde düzenleyin. Bu işlemi Google Cloud projesi Cloud Shell'de gerçekleştirebilirsiniz.
- Örnek kabuk komut dosyası. Çıktınız farklı değerlere sahip olacaktır.
- MongoBD konsolundan kabuk komut dosyasını kopyalayıp 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
Küresel erişimi desteklemek için kabuk komut dosyasını güncelleme
Kabuk komut dosyasını tanımlamak ve aşağıdaki söz dizimini kullanarak 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üncelleme sonrası ö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
Shell komut dosyasını çalıştırma
setup_psc.sh komut dosyasına gidin ve dosyayı çalıştırın. İşlem tamamlandığında atlasEndpoints-psc-endpoint-us-west2.json adlı bir dosya oluşturulur. JSON dosyası, dağıtımın bir sonraki adımı için gereken IP adreslerinin ve Private Service Connect uç noktası 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-west2.json dosyasını yerel olarak indirmek için Cloud Shell düzenleyiciyi kullanın.
JSON dosyasını yükleme
Önceden kaydedilmiş atlasEndpoints-psc-endpoint-us-west2.json json dosyasını 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ç noktaya gidin. Sekme, özel küme seçildiğinde uç nokta 10 dakika sonra kullanılabilir hale gelir.
Kullanılabilirlik durumu:
Google Cloud Console'da Ağ hizmetleri → Private Services Connect'e gidin, Bekleme → Kabul edildi durumuna geçen tüketici uç noktalarını gösteren Bağlı uç noktası sekmesini seçin (aşağıdaki örnek). Tüketici uç noktasında toplam 100 uç nokta dağıtılır ve bir sonraki adıma geçmeden önce kabul edilene geçirilmesi gerekir.
9. Özel uç noktalardan MongoDB Atlas'a bağlanma
Özel hizmet bağlantıları kabul edildikten sonra MongoDB kümesini güncellemek 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ğlanamazsınız.
Dağıtımla ilgili bilgileri girin ve Bağlan'ı seçin (gri kutunun artık mevcut olmadığını unutmayın)
Bağlantı türünü seçin → Özel uç nokta, Bağlantı yöntemi seçin'i seçin
MongoDB Shell ile bağlan'ı seçin.
MongoDB Shell yüklü değil, Ubuntu 20.4'ü seçin ve 1. adım ile 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 kopyalanan değerlere dayalı bir komut dizesi oluşturmanız gerekir. Ardından, Cloud Shell'i kullanarak vm1'e SSH bağlantısı kurar, ardından mongosh uygulamasını yükler ve birincil (us-west1) veritabanında doğrularsınız. consumer-vpc'de vm1 oluşturulurken Ubuntu 20.4 resmi yüklendi.
Bağlantı yöntemi seçin: 1. Adım, İndirme URL'sini kopyalayın
Örnek komut dizesi. Özel değerlerinizle değiştirin:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
3. adımda 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 işletim sistemi girişinden gerçekleştirin. Ek ayrıntılar mevcuttur. Aşağıdaki söz dizimini özel dizenizle 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 yedek bölgesi, us-west1
Yedekleme işlemini gerçekleştirmeden önce us-west1'in birincil, us-west2'nin ise iki ikincil düğüme sahip olduğunu doğrulayalım.
Veritabanı → psc-mongodb-uswest1-uswest2 → Genel bakış'a gidin.
Aşağıdaki bölümde us-west1 bölgesindeki vm1'e giriş yapın, birincil MongoDB kümesi bölgesi us-west1'de yedekleme yapın ve veritabanına us-west2'deki MongoDB kümesinden hâlâ erişilebildiğini doğrulayın.
Hem birincil hem de bölgesel yedekleme özelliğini Atlas kullanıcı arayüzünden test edebilirsiniz.
- Atlas kullanıcı arayüzüne giriş yapın.
- psc-mongodb-uswest1-uswest2 küme adınızın yanındaki [...] simgesini tıklayın → Test Kesintisi'ni tıklayın.
- Bölgesel kesinti seçeneğini belirleyin → Bölgeleri seçin.
- Birincil bölgeyi (us-west1) seçin → Bölgesel Kesintiyi Simüle Et'i tıklayın.
Küme seçildikten sonra 3-4 dakika içinde kesinti simülasyonu gösterilir.
Pencereyi kapat
us-west1 bölgesinin devre dışı olduğunu ve us-west2 bölgesinin birincil olarak devralındığını doğrulayın
Veritabanı → psc-mongodb-uswest1-uswest2 → Genel bakış'a gidin.
Yeni birincil (us-west2) ile kümeye bağlantıyı doğrulama
us-west1 bölgesindeki vm1'e giriş yapın ve özel Service Connect küresel erişimini doğrulayarak us-west2'deki mongodb'e erişin.
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, yüksek kullanılabilirliğe yardımcı olmak için veya bölgesel kesintiler nedeniyle bölgeler arasında sorunsuz tüketici uç noktası bağlantısına izin verdiğini doğruladınız. Codelab'de, MongoDB bölgesel yedekleme us-west1 bölgesindeki birincil düğümde gerçekleşti. Bu nedenle, ikincil bölge us-west2 birincil düğümü devraldı. Küme bölgesel bir kesintiye neden olsa da us-west1'de bulunan tüketici 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 SON NOKTALAR'a gidin.
Laboratuvar dışındaki tüketici uç noktalarının olası silinmesini önlemek 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 silme
VPC ağı → consumer-vpc → STATİK DAhili IP ADRESLERİ'ne gidin.
Laboratuvar dışındaki tüketici uç noktalarının olası silinmesini önlemek 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 → YAYINLA
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 psc-mongodb-uswest1-uswest2 kümesini tanımlayın → simülasyonu sonlandırın
Kesinti simülasyonunu sonlandır'ı seçin —> Çıkış yapın
Küme şu anda birincil olarak us-west1'e geri dönüyor. Bu işlem 3-4 dakika sürecektir. İşlem tamamlandığında kümeyi sonlandırın. Durum değişikliğini belirten gri ana hatları not edin.
Küme adını girin → Sonlandır
us-west1 ve us-west2 ile ilişkili özel uç noktayı silme
Atlas kullanıcı arayüzünde Güvenlik → Ağ Erişimi → Özel Uç Noktası'na gidin → Sonlandır'ı seçin.
13. Tebrikler
Tebrikler. Bölgeler genelinde MongoDB'a küresel erişimi olan bir Private Service Connect uç noktasını başarıyla yapılandırıp doğruladınız. Tüketici VPC'si, çok bölgeli MongoDB ve tüketici uç noktaları başarıyla oluşturuldu. us-west1 bölgesinde bulunan bir sanal makine, bölgesel yedekleme üzerine hem us-west1 hem de us-west2'de MongoDB'ye başarıyla bağlandı.
Cosmopup, codelab'lerin harika olduğunu düşünüyor.
Sırada ne var?
Bu codelab'lerden bazılarına göz atın...
- GKE ile hizmet yayınlamak ve kullanmak için Private Service Connect'i kullanma
- Hizmetleri 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
- Private Service Connect'i otomatik DNS yapılandırmasıyla kullanma
Daha fazla bilgi ve videolar
- Private Service Connect'e genel bakış
- Private Service Connect nedir?
- Desteklenen Yük Dengeleyici Türleri