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

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

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?

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

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.

796f5bda844bf400.png

  • Yeni küme oluştur → Özel

56c340661d86962c.png

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

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çin → 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'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.

f622ab14ddc96fc7.png

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

Bulut sağlayıcı

  • Google Cloud'u ve ardından sonrakini seçin

5503248bf4019a35.png

Hizmet eki

  • Bölgeyi (us-west1) seçip ileriye gidin.

cb31aea7cad182f9.png

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

21d76af5367832f4.png

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.

5c80cf7315a05c25.png

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

2856802dd6497f51.png b0059dc8e1558891.png

JSON dosyasını yükleme

Önceden kaydedilmiş 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, 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

972aff09d180d9de.png

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:

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ı → Özel küme → Özel uç noktası ekle'yi 88f5c1d9ae7e46d9.png seçin.

Bulut sağlayıcı

  • Google Cloud'u ve ardından sonrakini seçin

5503248bf4019a35.png

Hizmet eki

  • Bölgeyi (us-west2) seçip sonrakine gidin.

fc0b7a8e4274be3b.png

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

17b5a056587ede8a.png

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.

b021821e7d59f450.png

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

2856802dd6497f51.png 6e3d944944718f13.png

JSON dosyasını yükleme

Önceden kaydedilmiş 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, 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:

8801df4f6b39d20a.png

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.

6131abcdef5c1f49.png

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.

c1524d2c0c5765d1.png

Dağıtımla ilgili bilgileri girin ve Bağlan'ı seçin (gri kutunun artık mevcut olmadığını unutmayın)

3eea96af20bfad20.png

Bağlantı türünü seçin → Ö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 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.

51be47403c00bab4.png

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

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ımda 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 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:

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

64ca0395807bb3ac.png

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.

3a50da4381817975.png

  • Bölgesel kesinti seçeneğini belirleyin → Bölgeleri seçin.

b8dfff376477bcbb.png

  • Birincil bölgeyi (us-west1) seçin → Bölgesel Kesintiyi Simüle Et'i tıklayın.

76494a750a040bc5.png

Küme seçildikten sonra 3-4 dakika içinde kesinti simülasyonu gösterilir.

Pencereyi kapat

3a9f0359bd4e288f.png

bac1b2db0d754bbf.png

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.

86fd7d5230715645.png

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:

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, 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

192548e374b444a1.png

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

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

f82e28ac984d9e20.png

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

38feaf055abdceea.png

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.

f249a61bcc966d41.png

9427a9349daa1fea.png

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

9ef6d3a6387c5b4b.png

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.

56415ea954b2fec9.png

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.

8c2a10eb841f7b01.jpeg

Sırada ne var?

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

Daha fazla bilgi ve videolar

Referans dokümanları