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

1. Giriş

Private Service Connect (PSC), hizmetlerin güvenli ve gizli şekilde kullanılmasını basitleştirir. Bu model, hizmet tüketicilerinin kuruluşlardaki hizmet üreticilerine özel olarak bağlanmasına olanak tanıyarak ağ mimarisini büyük ölçüde kolaylaştırır ve sanal özel bulut eşleme ihtiyacını ortadan kaldırır. Şekil 1'de VPC eşleme ve PSC özellikleri gösterilmektedir.

Şekil1. 4f9551fc32ed83f5.png.

Hizmet tüketicisi olarak size özel IP'lerinizi hizmetlere nasıl ayıracağınızı seçme esnekliği sunar ve ü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 hizmete kolayca atayabilirsiniz.

Bu codelab'de, MongoDB atlas ile PSC küresel erişiminin 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 içindeki Private Service Connect'e (PSC) bağlanmasına olanak tanır. Bu, birden çok bölgede barındırılan yönetilen hizmetler genelinde 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ı iletim kuralında yapılandırılan isteğe bağlı bir özelliktir. Aşağıdaki komut, yapılandırmanın nasıl yapı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şime olanak tanır
  • Genel erişim, istemcinin Private Service Connect iletim kuralından farklı bir bölgede olmasına izin verir ancak iletim kuralının bağlı olduğu hizmet eki ile aynı bölgede olması gerekir.
  • Genel erişimi etkinleştirmek için üreticinin hizmet ekinde yapılandırma gerekmez. Bu tamamen tüketici tarafında bir seçenektir.

Ayrıca, mevcut uç noktalar için genel erişim herhangi bir zamanda açılıp kapatılabilir. Mevcut bir uç noktalarda genel erişim etkinleştirilirken etkin bağlantılarda trafikte kesinti olmaz. Genel Erişim, mevcut bir yönlendirme kuralında aşağıdaki komutla 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 iletim kurallarında da devre dışı bırakılabilir. Etkin bölgeler arası trafiğin bu komut çalıştırıldıktan sonra sonlandırılacağını unutmayın.

gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access

3. Neler oluşturacaksınız?

  1. Sırasıyla us-west1 ve us-west2 bölgelerinde iki düğümlü çok bölgeli bir MongoDB Atlas kümesi (Şekil2'de açıklanan topoloji) oluşturulacak.
  2. us-west1 ve us-west2 bölgelerindeki MongoDB kümelerine erişecek bir tüketici VPC'si ve ilişkili sanal makine.
  3. Her alt ağda en az 64 ücretsiz IP adresi bulunan us-west1 ve us-west2 bölgelerinde sırasıyla bir VPC ve iki alt ağ (/26 ve altı ile alt ağ oluşturun).

MongoDB istemcisi tüketici VPC'sindeki vm1'e yüklenecek. us-west1 bölgesinde birincil düğüm başarısız olduğunda istemci us-west2 bölgesindeki yeni birincil düğüm üzerinden okuma/yazma işlemi gerçekleştirebilir.

Ş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 devretme işlemini gerçekleştirme ve doğrulama

Gerekenler

  • Google Cloud Projesi
  • Bölge başına bir /26 alt ağı sağlayın
  • Proje sahibi veya kuruluş sahibi, küme katmanı M10 veya üzeri olan bir MongoDB kümesi oluşturmak için MongoDB Atlas'a erişebilir. (PoV'yi çalıştırarak ücretsiz kredi almak için lütfen GETATLAS'ı kullanın.)

4. Başlamadan önce

Codelab'i desteklemek için projeyi güncelleme

Bu Codelab, Cloud Shell'de gcloud yapılandırması uygulamasına yardımcı olmak için $variables kullanır.

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

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

5. Tüketici Kurulumu

Tüketici VPC'si oluşturma

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom

Tüketici alt ağlarını oluşturma

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1

Cloud Shell'in içinde us-west1 için tüketici uç noktası 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'in içinde 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 Yönlendirici ve NAT yapılandırması

Sanal makine örneklerinin harici IP adresi olmadığından, codelab'de yazılım paketi kurulumu için Cloud NAT kullanılır.

Cloud Shell'in içinde bulut yönlendiricisini oluşturun.

gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1

Cloud Shell'in içinde 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 sanal makine1 yapılandırması

Aşağıdaki bölümde Compute Engine örneğini (vm1) oluşturacaksınız.

Cloud Shell'in içinde vm1 örneği 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 şartları yerine getiren bir güvenlik duvarı kuralı oluşturun:

  • IAP kullanarak erişilmesini istediğiniz tüm sanal makine örnekleri için geçerlidir.
  • 35.235.240.0/20 IP aralığından giriş trafiğine izin verir. Bu aralık, IAP'nin TCP yönlendirme için kullandığı tüm IP adreslerini içerir.

Cloud Shell'in içinde 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 birini kullanarak abone olabilirsiniz:
  • Google Cloud hesabınız varsa Google Cloud Marketplace üzerinden. Aboneliğinizi ayarlamak için belgeleri inceleyin.
  • Atlas kayıt sayfası ile.
  • Atlas'a abone olduktan sonra, aşağıda gösterildiği gibi Build a Database (Veritabanı Oluştur) düğmesini tıklayın.

796f5bda844bf400.png

  • Yeni küme oluştur → Özel

56c340661d86962c.png

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

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

Kümenin dağıtıldıktan sonra 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.

Tüm veritabanlarına okuma/yazma erişimi vermek için yeni bir kullanıcı oluşturma

Güvenlik → Veritabanı Erişimi Yeni veritabanı kullanıcısı ekle'yi seçin. Aşağıda, codelab olarak yapılandırılan bir kullanıcı adı ve şifre örneği verilmiştir. Yerleşik rol okumayı ve herhangi bir veritabanına yazma işlemini seçtiğinizden emin olun.

f622ab14ddc96fc7.png

  • Güvenlik → Ağ Erişimi altında, IP Erişim Listesi bir giriş gerektirmez

MongoDB Atlas'ta Özel Uç Nokta Hazırlama

  • Ağ erişimi → Özel Uç Noktalar → Özel küme → Özel uç nokta ekle 88f5c1d9ae7e46d9.png

Bulut sağlayıcı

  • Google Cloud'u seçip sonrakine geçin

5503248bf4019a35.png

Hizmet eki

  • Bölgeyi seçin, us-west1, ardından ileri

cb31aea7cad182f9.png

Uç noktalar

  • Özel hizmet bağlantı uç noktası oluşturmak için aşağıdakileri sağlayın:
  • Google Cloud proje kimliği: "Talimatları göster"i seçin ayrıntılar için
  • VPC adı: consumer-vpc
  • Alt ağ adı: psc-endpoint-us-west1
  • Private Service Connect uç nokta öneki: psc-endpoint-us-west1

21d76af5367832f4.png

Uç noktaları ayarlama

Aşağıdaki bölümde kurulum_psc.sh adlı yerel olarak kaydedilmesi gereken bir kabuk komut dosyası oluşturulmuştur. Kaydedildikten sonra, kabuk komut dosyasını psc'ye genel erişime izin verecek şekilde düzenleyin. Bu işlemi Google Cloud projesi Cloud Shell'de gerçekleştirebilirsiniz.

  • Örnek kabuk komut dosyası, çıkışınız farklı değerlere sahip olacak

5c80cf7315a05c25.png

  • Kabuk komut dosyasını MongoBD konsolundan kopyalayıp içeriği Google 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

Kabuk komut dosyasını, genel erişimi destekleyecek şekilde güncelleme

Kabuk komut dosyasını tanımlamak ve aşağıdaki söz dizimiyle 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ını bulup çalıştırın. Komutun çalışması tamamlandığında atlasEndpoints-psc-endpoint-us-west1.json adlı dosya oluşturulur. Bu json dosyası, dağıtımın bir sonraki adımı için gerekli olan IP adreslerinin ve Private Service Connect Uç Nokta Adlarının listesini içerir.

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

sh setup_psc.sh

Komut dosyası tamamlandıktan sonra yerel olarak atlasEndpoints-psc-endpoint-us-west1.json dosyasını indirmek için Cloud Shell düzenleyicisini kullanın.

2856802dd6497f51.png b0059dc8e1558891.png

JSON dosyasını yükleme

Daha önce kaydedilen atlasEndpoints-psc-endpoint-us-west1.json JSON dosyasını 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 gidin, ardından Güvenlik → Ağ erişimi → Özel uç nokta'yı tıklayın. Sekmeyi ve özel kümeyi seçtiğinizde uç nokta geçişi 10 dakika sürer.

Kullanılabilir durum

972aff09d180d9de.png

Google Cloud Console'da Ağ hizmetleri → Private Services Connect'e gidin, Beklemede → Kabul edildi (aşağıdaki örnek) gösterilen tüketici uç noktalarını gösteren Bağlı uç nokta sekmesini seçin:

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ç Nokta Hazırlama

  • Ağ erişimi → Özel Uç Noktalar → Özel küme → Özel uç nokta ekle 88f5c1d9ae7e46d9.png

Bulut sağlayıcı

  • Google Cloud'u seçip sonrakine geçin

5503248bf4019a35.png

Hizmet eki

  • Bölgeyi seçin, us-west2, ardından ileri

fc0b7a8e4274be3b.png

Uç noktalar

  • Özel hizmet bağlantı uç noktası oluşturmak için aşağıdakileri sağlayın:
  • Google Cloud proje kimliği: "Talimatları göster"i seçin ayrıntılar için
  • VPC adı: consumer-vpc
  • Alt ağ adı: psc-endpoint-us-west2
  • Private Service Connect uç nokta öneki: psc-endpoint-us-west2

17b5a056587ede8a.png

Uç noktaları ayarlama

Aşağıdaki bölümde kurulum_psc.sh adlı yerel olarak kaydedilmesi gereken bir kabuk komut dosyası oluşturulmuştur. Kaydedildikten sonra, kabuk komut dosyasını psc'ye genel erişime izin verecek şekilde düzenleyin. Bu işlemi Google Cloud projesi Cloud Shell'de gerçekleştirebilirsiniz.

  • Örnek kabuk komut dosyası, çıkışınız farklı değerlere sahip olacak

b021821e7d59f450.png

  • Kabuk komut dosyasını MongoBD konsolundan kopyalayıp içeriği Google 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ı, genel erişimi destekleyecek şekilde güncelleme

Kabuk komut dosyasını tanımlamak ve aşağıdaki söz dizimiyle 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

Kabuk komut dosyasını çalıştırma

Setup_psc.sh komut dosyasını bulup çalıştırın. Komutun çalışması tamamlandığında atlasEndpoints-psc-endpoint-us-west2.json adlı dosya oluşturulur. Bu json dosyası, dağıtımın bir sonraki adımı için gerekli olan IP adreslerinin ve Private Service Connect Uç Nokta Adlarının listesini içerir.

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

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üzenleyicisini kullanın.

2856802dd6497f51.png 6e3d944944718f13.png

JSON dosyasını yükleme

Daha önce kaydedilen atlasEndpoints-psc-endpoint-us-west2.json JSON dosyasını 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 gidin, ardından Güvenlik → Ağ erişimi → Özel uç nokta'yı tıklayın. Sekmeyi, özel kümeyi ve uç nokta geçişinin 10 dakika sonra kullanılabilir olarak ayarlanmasını seçin.

Kullanılabilir durum:

8801df4f6b39d20a.png

Google Cloud Console'da Ağ hizmetleri → Private Services Connect'e gidin, Beklemede → Kabul edildi (aşağıdaki örnek) gösterilen tüketici uç noktalarını gösteren Bağlı uç nokta sekmesini seçin. Tüketici uç noktasında toplam 100 uç nokta dağıtılıyor ve sonraki adıma geçmeden önce kabul edildi durumuna geçmeniz gerekir.

6131abcdef5c1f49.png

9. Özel uç noktalardan MongoDB atlasa 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 dış çizgili küme güncellemesini temsil eder. Bu nedenle, özel uç noktaya bağlanılamaz.

c1524d2c0c5765d1.png

Dağıtımı tanımlayın ve Bağlan'ı seçin (gri kutu artık olmadığına dikkat edin)

3eea96af20bfad20.png

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

16a9090e495640c7.png

MongoDB Shell ile bağlan'ı seçin

35e422af16cb5ce0.png

MongoDB Shell'i (Ubuntu 20.4) yüklemedim ve 1. adım ile 3. adımdaki içerikleri not defterine kopyaladığınızdan emin olun.

51be47403c00bab4.png

10. Mongosh uygulamasını yükle

Yüklemeden önce, 1 ve 3. adımlarda açıklanan önceden kopyalanan değerlere dayalı bir komut dizesi oluşturmanız gerekir. Ardından, Cloud Shell'i kullanarak vm1'e SSH uygulayacaksınız. Ardından, birincil (us-west1) veritabanına mongosh uygulama yükleme ve doğrulama gerçekleştireceksiniz. Consumer-vpc'de vm1 oluşturulurken Ubuntu 20.4 görüntüsü yüklendi.

Bağlantı yöntemi seçin: 1. adım, İndirme URL'sini kopyalayın

5da980ff86265dd8.png

Özel değerlerinizle değiştirin örnek komut dizesi:

https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb

Bir bağlantı yöntemi seçin, 3. adım.

698286bdf3dee3c7.png

Özel değerlerinizle değiştirin örnek komut dizesi:

mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab

vm1'e giriş yapma

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

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

Cloud Shell'de IAP kullanarak vm1'e giriş yapın, zaman aşımı varsa tekrar deneyin.

gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap

İşletim sisteminden yüklemeyi gerçekleştirme

Yüklemeyi Cloud Shell os girişinden yapın, ek bilgi mevcut, 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 sistemine giriş bölümünde aşağıdaki işlemleri gerçekleştirin. 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 çalıştırma

Cloud Shell işletim sistemine giriş bölümünde aşağıdaki işlemleri gerçekleştirin.

show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})

11. Yük devretme etkin MongoDB bölgesi, us-west1

Yük devretmeyi gerçekleştirmeden önce us-west1'in birincil, us-west2'nin ise iki ikincil düğümü olduğunu doğrulayalım.

Veritabanına git → psc-mongodb-uswest1-uswest2 → Genel Bakış

64ca0395807bb3ac.png

Aşağıdaki bölümde us-west1 bölgesinde bulunan vm1'e giriş yapın, us-west1 birincil MongoDB küme bölgesinin yük devretmesini yapın ve veritabanına us-west2 bölgesindeki MongoDB kümesinden hâlâ 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 Kesintisi).

3a50da4381817975.png

  • Bölgesel Kesinti → Bölgeleri seçin.

b8dfff376477bcbb.png

  • Birincil bölge olan us-west1→ Bölgesel Kesintiyi Simüle Et'i seçin.

76494a750a040bc5.png

Seçilen küme, 3-4 dakika sonra kesinti simülasyonunu gösterir

Pencereyi kapat

3a9f0359bd4e288f.png

bac1b2db0d754bbf.png

us-west1'in çöktüğünü ve us-west2'nin birincil olarak devralındığını doğrulayın

Veritabanına git → psc-mongodb-uswest1-uswest2 → Genel Bakış

86fd7d5230715645.png

Küme bağlantısını yeni birincil us-west2 ile doğrulayın

us-west1 bölgesindeki vm1'e giriş yapın ve us-west2 bölgesindeki mongodb'ye erişin. Özel hizmet bağlantısını kullanarak genel erişimi doğrulayın.

Cloud Shell oturumunuz sonlandırıldıysa aşağıdakileri yapın:

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

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

Cloud Shell'de IAP kullanarak vm1'e giriş yapın, zaman aşımı varsa 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 sistemine giriş bölümünde aşağıdaki işlemleri gerçekleştirin.

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 çalıştırma

Cloud Shell işletim sistemine giriş bölümünde aşağıdaki işlemleri gerçekleştirin.

show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()

exit

20c2571d84c0661d.png

Başarı: PSC küresel erişiminin, yüksek kullanılabilirliğe yardımcı olmak veya bölgesel kesintiler nedeniyle bölgeler arasında sorunsuz tüketici uç noktası bağlantısına olanak sağladığını doğruladınız. Codelab'de MongoDB bölgesel yük devretme işlemi, us-west1 konumundaki birincil düğümde meydana geldiğinden, us-west2 ikincil bölgesi birincil düğümü devraldı. Küme bölgesel kesintiye neden olmasına rağmen us-west1 bölgesinde bulunan tüketici vm1'i us-west2 bölgesindeki yeni birincil kümeye başarıyla ulaştı.

12. Temizleme

Cloud Console'dan tüketici uç noktalarını silme

Ağ hizmetleri → Private Service Connect → BAĞLI UÇ NOKTALAR'a gidin

Laboratuvar dışı 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ç → DELETE

192548e374b444a1.png

Tüketici uç noktalarıyla ilişkili statik dahili IP adreslerini silin

VPC ağına gidin → consumer-vpc→ STATIC DAHİLİ IP ADRELERİ

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ç → YAYINLA

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ünden psc-mongodb-uswest1-uswest2 kümesini tanımlayın → Simülasyonu sonlandır

f82e28ac984d9e20.png

Kesinti simülasyonunu sonlandır —> seçeneğini belirleyin Çık

38feaf055abdceea.png

Küme artık us-west1 alanını birincil olarak geri döndürüyor. Bu işlem 3-4 dakika sürecek. İşlem tamamlandığında kümeyi sonlandırın. Durum değişikliğini gösteren gri dış çizgiye dikkat edin.

f249a61bcc966d41.png

9427a9349daa1fea.png

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

9ef6d3a6387c5b4b.png

us-west1 ve us-west2 ile ilişkili özel uç noktayı silin

Atlas kullanıcı arayüzünden Güvenlik → Ağ Erişimi → Özel Uç Nokta → Sonlandır'ı seçin.

56415ea954b2fec9.png

13. Tebrikler

Tebrikler, bölgeler arasında MongoDB'ye küresel erişim sunan 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ı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ölgelerinde MongoDB'ye başarıyla bağlandı.

Cosmopup, codelab'lerin muhteşem olduğunu düşünüyor!!

8c2a10eb841f7b01.jpeg

Sırada ne var?

Bu codelab'lerden bazılarına göz atın...

Daha fazla bilgi ve Videolar

Referans belgeler