Private Service Connect ile çok bölgeli MongoDB Atlas'a erişme

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. 4f9551fc32ed83f5.png

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-access iş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?

  1. 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.
  2. us-west1 ve us-west2'deki MongoDB kümelerine erişmek için bir tüketici VPC'si ve ilişkili sanal makine.
  3. 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. ab6c2791514c4481.png

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.

796f5bda844bf400.png

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

56c340661d86962c.png

  • 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)

6c10293ffd9814ae.png

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

e652bd944d785871.png

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

ffa0195b96c2c5ff.png

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

3720fb8c15ba5cc2.png

  • Seç → Küme Oluştur

ec5e3e6983c02e27.png

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

d75778d5abf484aa.png

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

1f0ec6a401578650.png

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.

f622ab14ddc96fc7.png

  • 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 88f5c1d9ae7e46d9.png seçin.

Bulut sağlayıcı

  • Google Cloud'u ve ardından İleri'yi seçin.

5503248bf4019a35.png

Hizmet eki

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

cb31aea7cad182f9.png

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

21d76af5367832f4.png

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.

5c80cf7315a05c25.png

  • 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.

2856802dd6497f51.png b0059dc8e1558891.png

JSON dosyasını yükleyin

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

3a74e8d9952d793a.png

4938fd8256eb81b4.png

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

972aff09d180d9de.png

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:

5472dd938604b3.png

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 88f5c1d9ae7e46d9.png seçin.

Bulut sağlayıcı

  • Google Cloud'u ve ardından İleri'yi seçin.

5503248bf4019a35.png

Hizmet eki

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

fc0b7a8e4274be3b.png

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

17b5a056587ede8a.png

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.

b021821e7d59f450.png

  • 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.

2856802dd6497f51.png 6e3d944944718f13.png

JSON dosyasını yükleyin

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

3a74e8d9952d793a.png

4938fd8256eb81b4.png

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:

8801df4f6b39d20a.png

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.

6131abcdef5c1f49.png

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.

c1524d2c0c5765d1.png

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

3eea96af20bfad20.png

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

16a9090e495640c7.png

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

35e422af16cb5ce0.png

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.

51be47403c00bab4.png

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

5da980ff86265dd8.png

Ö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.

698286bdf3dee3c7.png

Ö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:

d5d0324a273b4d5e.png

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.

64ca0395807bb3ac.png

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.

3a50da4381817975.png

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

b8dfff376477bcbb.png

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

76494a750a040bc5.png

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

Pencereyi kapat

3a9f0359bd4e288f.png

bac1b2db0d754bbf.png

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.

86fd7d5230715645.png

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:

d262800a557b41a3.png

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

20c2571d84c0661d.png

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

192548e374b444a1.png

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

4cebf164c4fecd83.png

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.

f82e28ac984d9e20.png

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

38feaf055abdceea.png

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.

f249a61bcc966d41.png

9427a9349daa1fea.png

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

9ef6d3a6387c5b4b.png

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.

56415ea954b2fec9.png

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.

8c2a10eb841f7b01.jpeg

Yapabilecekleriniz

Şu codelab'lere göz atın:

Daha fazla bilgi ve videolar

Referans belgeler