Loading...
No results found.

Apply your skills in Google Cloud console

Get access to 700+ labs and courses

Dahili uygulama yük dengeleyicisi kullanma

Lab 45 minutes universal_currency_alt 1 Credit show_chart Introductory
info This lab may incorporate AI tools to support your learning.
Get access to 700+ labs and courses

GSP041

Google Cloud yönlendirmesiz öğrenim laboratuvarı logosu

Genel Bakış

Dahili uygulama yük dengeleyicisi, işletme faaliyetlerinizi destekleyen sağlam, güvenli ve kolay yönetilebilir dahili uygulamalar oluşturmak için gereklidir. Bu laboratuvarda, sanal makinelerinizi doğrudan herkese açık internete maruz bırakmadan özel bulut ağınızdaki ağ trafiğini nasıl dağıtacağınızı keşfedecek, bu sayede hizmetlerinizin güvenliğini ve verimliliğini koruyabileceksiniz.

Bu laboratuvarda basitleştirilmiş ancak çok yaygın bir mimari model oluşturacaksınız:

  • Başka bir dahili hizmetten yardım istemesi gereken bir "web katmanı" (herkese açık web sitesi)
  • Belirli görevleri yerine getiren ve birden fazla makineye dağıtılan bir "dahili hizmet katmanı" (asal sayı hesaplayıcı)

Yük dengeleyici, istekleri otomatik olarak sağlıklı makinelere yönlendirdiğinden bu kurulum, dahili hizmetinizin bir bölümü meşgul olsa veya çökse bile genel sistemin sorunsuz bir şekilde çalışmaya devam etmesini sağlar.

Yapacaklarınız

Bu laboratuvarda, aşağıdaki görevleri nasıl gerçekleştireceğinizi öğreneceksiniz:

  • Dahili yük dengeleyiciyi oluşturan bileşenler hakkında bilgi edinme
  • Arka uç makinelerden oluşan bir grup oluşturma (asal sayı hesaplayıcı)
  • Dahili trafiği arka uç makinelerine yönlendirecek şekilde dahili yük dengeleyiciyi ayarlama
  • Dahili yük dengeleyiciyi başka bir dahili makineden test etme
  • Dahili "asal sayı hesaplayıcı" hizmetinden sonuç almak için dahili yük dengeleyiciyi kullanan, herkese açık bir web sunucusu oluşturma

Ön koşullar

  • Google Cloud Compute Engine hakkında temel düzeyde bilgi sahibi olma (sanal makine örneğinin ne olduğunu anlama)
  • Ağ iletişimiyle ilgili temel kavramlar (IP adresi nedir?)
  • Temel düzeyde Unix/Linux komut satırı bilgisi (terminale komut yazma)
  • VPC'ler (sanal özel bulutlar) hakkında bazı bilgiler (Google Cloud kaynaklarınızın özel bir ağda bulunduğunu anlama)

Kurulum ve şartlar

Laboratuvarı Başlat düğmesini tıklamadan önce

Buradaki talimatları okuyun. Laboratuvarlar süreli olduğundan duraklatılamaz. Start Lab'i (Laboratuvarı başlat) tıkladığınızda başlayan zamanlayıcı, Google Cloud kaynaklarının ne süreyle kullanımınıza açık durumda kalacağını gösterir.

Bu uygulamalı laboratuvarı kullanarak, laboratuvar etkinliklerini simülasyon veya demo ortamı yerine gerçek bir bulut ortamında gerçekleştirebilirsiniz. Bunu yapabilmeniz için size yeni, geçici kimlik bilgileri verilir. Bu kimlik bilgilerini laboratuvar süresince Google Cloud'da oturum açmak ve Google Cloud'a erişmek için kullanabilirsiniz.

Bu laboratuvarı tamamlamak için gerekenler:

  • Standart bir internet tarayıcısına erişim (Chrome Tarayıcı önerilir)
Not: Bu laboratuvarı çalıştırmak için tarayıcıyı gizli modda (önerilen) veya gizli tarama penceresinde açın. Aksi takdirde, kişisel hesabınızla öğrenci hesabınız arasında oluşabilecek çakışmalar nedeniyle kişisel hesabınızdan ek ücret alınabilir.
  • Laboratuvarı tamamlamak için yeterli süre (Laboratuvarlar başlatıldıktan sonra duraklatılamaz.)
Not: Bu laboratuvar için yalnızca öğrenci hesabını kullanın. Farklı bir Google Cloud hesabı kullanırsanız bu hesaptan ödeme alınabilir.

Laboratuvarınızı başlatma ve Google Cloud Console'da oturum açma

  1. Laboratuvarı Başlat düğmesini tıklayın. Laboratuvar için ödeme yapmanız gerekiyorsa ödeme yöntemini seçebileceğiniz bir iletişim kutusu açılır. Soldaki "Laboratuvar ayrıntıları" panelinde şunlar yer alır:

    • "Google Cloud konsolunu aç" düğmesi
    • Kalan süre
    • Bu laboratuvarda kullanmanız gereken geçici kimlik bilgileri
    • Bu laboratuvarda ilerlemek için gerekebilecek diğer bilgiler
  2. Google Cloud Console'u aç'ı tıklayın (veya Chrome Tarayıcı'yı kullanıyorsanız sağ tıklayıp Bağlantıyı gizli pencerede aç'ı seçin).

    Laboratuvar, kaynakları çalıştırır ve sonra "Oturum aç" sayfasını gösteren başka bir sekme açar.

    İpucu: Sekmeleri ayrı pencerelerde, yan yana açın.

    Not: Hesap seçin iletişim kutusunu görürseniz Başka bir hesap kullan'ı tıklayın.
  3. Gerekirse aşağıdaki kullanıcı adını kopyalayıp Oturum açın iletişim kutusuna yapıştırın.

    {{{user_0.username | "Username"}}}

    Kullanıcı adını "Laboratuvar ayrıntıları" panelinde de bulabilirsiniz.

  4. İleri'yi tıklayın.

  5. Aşağıdaki şifreyi kopyalayıp Hoş geldiniz iletişim kutusuna yapıştırın.

    {{{user_0.password | "Password"}}}

    Şifreyi "Laboratuvar ayrıntıları" panelinde de bulabilirsiniz.

  6. İleri'yi tıklayın.

    Önemli: Laboratuvarın sizinle paylaştığı giriş bilgilerini kullanmanız gerekir. Google Cloud hesabınızın kimlik bilgilerini kullanmayın. Not: Bu laboratuvarda kendi Google Cloud hesabınızı kullanabilmek için ek ücret ödemeniz gerekebilir.
  7. Sonraki sayfalarda ilgili düğmeleri tıklayarak ilerleyin:

    • Hükümler ve koşulları kabul edin.
    • Geçici bir hesap kullandığınızdan kurtarma seçenekleri veya iki faktörlü kimlik doğrulama eklemeyin.
    • Ücretsiz denemelere kaydolmayın.

Birkaç saniye sonra Google Cloud konsolu bu sekmede açılır.

Not: Google Cloud ürün ve hizmetlerine erişmek için gezinme menüsünü tıklayın veya Arama alanına hizmetin veya ürünün adını yazın. Gezinme menüsü simgesi ve arama alanı

Cloud Shell'i etkinleştirme

Cloud Shell, çok sayıda geliştirme aracı içeren bir sanal makinedir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Cloud Shell, Google Cloud kaynaklarınıza komut satırı erişimi sağlar.

  1. Google Cloud konsolunun üst kısmından Activate Cloud Shell (Cloud Shell'i etkinleştir) Cloud Shell'i etkinleştir simgesi simgesini tıklayın.

  2. Aşağıdaki pencereleri tıklayın:

    • Cloud Shell bilgi penceresinde devam edin.
    • Google Cloud API çağrıları yapmak için Cloud Shell'e kimlik bilgilerinizi kullanma yetkisi verin.

Bağlandığınızda kimliğiniz zaten doğrulanmıştır. Proje ise Project_ID'nize () göre ayarlanmıştır. Çıkış, bu oturum için Project_ID'yi tanımlayan bir satır içerir:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud, Google Cloud'un komut satırı aracıdır. Cloud Shell'e önceden yüklenmiştir ve sekmeyle tamamlamayı destekler.

  1. (İsteğe bağlı) Etkin hesap adını şu komutla listeleyebilirsiniz:
gcloud auth list
  1. Authorize'ı (Yetkilendir) tıklayın.

Çıkış:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (İsteğe bağlı) Proje kimliğini şu komutla listeleyebilirsiniz:
gcloud config list project

Çıkış:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Not: gcloud ile ilgili tüm belgeleri, Google Cloud'daki gcloud CLI'a genel bakış rehberinde bulabilirsiniz.

Bölgeyi ve alt bölgeyi ayarlama

  • Bu laboratuvarın proje bölgesini ve alt bölgesini ayarlayın:
gcloud config set compute/region {{{project_0.default_region | Region}}} gcloud config set compute/zone {{{project_0.default_zone | Zone}}}

Bölgeler ve Alt Bölgeler belgesinde daha fazla bilgi edinebilirsiniz.

Not: gcloud'u kendi makinenizde çalıştırdığınızda yapılandırma ayarları oturumlar genelinde kalıcı olur. Ama Cloud Shell'de bu ayarları her yeni oturum veya yeniden bağlanma için tekrar belirlemeniz gerekir.

1. görev: Sanal ortam oluşturma

Sanal ortam, projenizin yazılımını düzenli tutar ve kodunuzun gereken belirli araç sürümleriyle her zaman çalışmasını sağlar.

Paket yüklemeyi sistemden ayrı tutmak için Python sanal ortamları kullanılır.

  1. virtualenv ortamını yükleyin:
sudo apt-get install -y virtualenv
  1. Sanal ortamı derleyin:
python3 -m venv venv
  1. Sanal ortamı etkinleştirin:
source venv/bin/activate

Cloud Shell IDE'de Gemini Code Assist'i etkinleştirme

Cloud Shell gibi entegre geliştirme ortamlarında (IDE) Gemini Code Assist'i kullanarak kodlarla ilgili rehberlik alabilir veya kodlarınızdaki sorunları çözebilirsiniz. Gemini Code Assist'i kullanmaya başlamadan önce etkinleştirmeniz gerekir.

  1. Cloud Shell'de aşağıdaki komutu kullanarak Google Cloud için Gemini API'yi etkinleştirin:
gcloud services enable cloudaicompanion.googleapis.com
  1. Cloud Shell araç çubuğunda Open Editor'ı (Düzenleyiciyi Aç) tıklayın.
Not: Cloud Shell Düzenleyici'yi açmak için Cloud Shell araç çubuğunda Open Editor'ı (Düzenleyiciyi Aç) tıklayın. İhtiyaç duyduğunuzda Open Editor'ı (Düzenleyiciyi Aç) veya Open Terminal'ı (Terminali Aç) tıklayarak Cloud Shell ile kod düzenleyici arasında geçiş yapabilirsiniz.
  1. Sol bölmede Ayarlar simgesini tıklayın, ardından Ayarlar görünümünde Gemini Code Assist'i arayın.

  2. Geminicodeassist: Enable (Geminicodeassist: Etkinleştir) onay kutusunu bulun ve işaretli olduğundan emin olun. Ardından Settings'i (Ayarlar) kapatın.

  3. Ekranın alt kısmındaki durum çubuğunda Cloud Code - No Project'i (Cloud Code - Proje Yok) tıklayın.

  4. Eklentiyi talimatlara uygun şekilde yetkilendirin. Proje otomatik olarak seçilmezse Google Cloud projesi seçin'i tıklayın ve öğesini seçin.

  5. Durum çubuğundaki Cloud Code durum mesajında Google Cloud projenizin () göründüğünü doğrulayın.

2. görev: Arka uç yönetilen örnek grubu oluşturma

Google Cloud, "yönetilen örnek grubu" kullanarak hizmetinizin aynı kopyalarını otomatik olarak oluşturup koruyabilir. Bir kopya başarısız olursa Google Cloud bunu değiştirerek hizmetinizin daha güvenilir olmasını sağlar.

Başlangıç komut dosyasını oluşturma

Bu komut dosyası, grubunuzdaki her yeni sanal makinenin başlatıldığında uyguladığı bir dizi talimat gibidir. Senaryonuzda, bir sayının asal olduğunu (True) veya olmadığını (False) söyleyebilen, Python ile yazılmış küçük bir web sunucusu yer alıyor.

  1. Cloud Shell terminalinde aşağıdaki komutu çalıştırarak ana dizinde backend.sh komut dosyanızı oluşturun:
touch ~/backend.sh
  1. Cloud Shell araç çubuğunun üst kısmındaki Open Editor (Düzenleyiciyi aç) simgesini tıklayın. İstenirse Open in a new window'u (Yeni pencerede aç) tıklayın.

Kullanıcı arayüzünde vurgulanan Open Editor (Düzenleyiciyi aç) simgesi

Not: Kod düzenleyici simgesini görmüyorsanız gezinme menüsünü (☰) tıklayarak sol paneli kapatın.

Birkaç saniye sonra çalışma alanı gösterilir.

  1. Dosya gezgini bölmesinde backend.sh dosyasını seçin.

  2. Şimdi aşağıdaki komut dosyasını düzenleyiciye ekleyin:

sudo chmod -R 777 /usr/local/sbin/ sudo cat << EOF > /usr/local/sbin/serveprimes.py import http.server def is_prime(a): return a!=1 and all(a % i for i in range(2,int(a**0.5)+1)) class myHandler(http.server.BaseHTTPRequestHandler): def do_GET(s): s.send_response(200) s.send_header("Content-type", "text/plain") s.end_headers() s.wfile.write(bytes(str(is_prime(int(s.path[1:]))).encode('utf-8'))) http.server.HTTPServer(("",80),myHandler).serve_forever() EOF nohup python3 /usr/local/sbin/serveprimes.py >/dev/null 2>&1 &
  1. File (Dosya) > Save'i (Kaydet) tıklayın ancak dosyayı kapatmayın.

  2. IDE'de Gemini Code Assist etkinken düzenleyicide backend.sh gibi bir dosyayı açtığınızda araç çubuğunun sağ üst köşesinde Gemini Code Assist: Akıllı İşlemler simgesini görürsünüz. Bu simge, Gemini Code Assist'in kullanıma hazır olduğunu gösterir.

    Gemini Code Assist, doğrudan kod düzenleyicinizde yapay zeka destekli akıllı işlemler sunarak üretkenliği artırır ve farklı araçlar arasında geçiş yapma ihtiyacını azaltır. Ardından, yönetilen örnek grubundaki bir sanal makine başlangıç komut dosyasının amacını ve işlevini bir ekip üyesine açıklamak için Gemini Code Assist'i kullanacaksınız.

  3. Gemini Code Assist: Smart Actions (Gemini Code Assist: Akıllı İşlemler) Gemini Code Assist: Akıllı İşlemler simgesini tıklayın ve Explain this'i (Bunu açıkla) seçin.

  4. Gemini Code Assist, Explain this (Bunu açıkla) istemiyle önceden doldurulmuş bir sohbet bölmesi açar. Cod Assist sohbetinin satır içi metin kutusunda, önceden doldurulmuş istemi aşağıdakiyle değiştirin ve Send'i (Gönder) tıklayın:

As an Application Developer at Cymbal AI, explain the backend.sh startup script to a new team member. This script is used to run a small Python web server written in a Python file serveprimes.py. Provide a detailed breakdown of the script's key components and explain the function of each command. For the suggested improvements, don't make any changes to the file's content.

Küçük bir web sunucusu çalıştırmak için kullanılan başlangıç komut dosyası backend.sh ile ilgili ayrıntılı açıklama Gemini Code Assist sohbetinde gösterilir.

Örnek şablonu oluşturma

  1. Cloud Shell'in araç çubuğunda Open Terminal'ı (Terminali aç) tıklayın. primecalc örnek şablonunu oluşturmak için aşağıdaki komutu çalıştırın:
gcloud compute instance-templates create primecalc \ --metadata-from-file startup-script=backend.sh \ --no-address --tags backend --machine-type=e2-medium

Bu, arka uç sanal makinelerinin "şemasıdır". --no-address parametresinin kullanıldığını fark edeceksiniz. Arka uç sanal makinelerinin güvenlik nedeniyle genel internet erişimine sahip olmayacağı anlamına gelir.

Güvenlik duvarını açma

80 numaralı bağlantı noktasındaki trafiğin (standart HTTP trafiği) arka uç sanal makinelerine ulaşmasına izin vermek için güvenlik duvarı kuralı oluşturmanız gerekir. Bu, dahili uygulama yük dengeleyicisinin ve durum denetimlerinin sanal makinelerle iletişim kurması için çok önemlidir.

  1. Güvenlik duvarını 80 numaralı bağlantı noktasına açmak için aşağıdaki komutu çalıştırın:
gcloud compute firewall-rules create http --network default --allow=tcp:80 \ --source-ranges {{{project_0.startup_script.selected_cidr | IP}}} --target-tags backend

Bu laboratuvarda programa uygun biçimde ilerlediğinizi doğrulamak için Check my progress'i (İlerleme durumumu kontrol et) tıklayın.

Örnek şablonu oluşturma ve 80 numaralı bağlantı noktasında güvenlik duvarını açma

Örnek grubunu oluşturma

  1. Ardından backend adlı yönetilen örnek grubunu oluşturmak için aşağıdaki komutu çalıştırın. 3 örnekle başlayın:
gcloud compute instance-groups managed create backend \ --size 3 \ --template primecalc \ --zone {{{project_0.default_zone | ZONE }}}
  1. Bu işlem tamamlandığında konsol sekmesine geri dönün. Compute Engine > VM instances'a (Sanal makine örnekleri) gidin. Artık örnek grubunuz tarafından oluşturulan üç arka uç sanal makinesini göreceksiniz.

Instances (Örnekler) adındaki sekmeli sayfada listelenen üç arka uç

Arka uçlar artık trafiği yönetmeye hazırdır.

Bu laboratuvarda programa uygun biçimde ilerlediğinizi doğrulamak için Check my progress'i (İlerleme durumumu kontrol et) tıklayın.

Örnek grubunu oluşturma

3. görev: Dahili yük dengeleyiciyi ayarlama

Dahili hizmetiniz için tek bir özel VIP girişi oluşturacaksınız. Bu sayede diğer dahili uygulamalar, hangi belirli arka uç sanal makinesinin etkin veya kullanılabilir olduğunu bilmeye gerek kalmadan "asal sayı hesaplayıcınıza" güvenilir bir şekilde ulaşabilir.

Bu görevde, dahili yük dengeleyiciyi ayarlayıp yeni oluşturduğunuz örnek grubuna bağlayacaksınız.

Dahili yük dengeleyici üç ana bölümden oluşur:

  • İletim kuralı: Diğer dahili hizmetlerin istek göndereceği asıl özel IP adresidir. Trafiği arka uç hizmetinize "iletir".
  • Arka uç hizmeti: Yük dengeleyicinin, trafiği sanal makine örneklerinize nasıl dağıttığını tanımlar. Durum denetimini de içerir.
  • Durum denetimi: Arka uç sanal makinelerinizin "durumunu" izleyen sürekli bir denetimdir. Yük dengeleyici, yalnızca durum denetimlerini geçen makinelere trafik göndererek hizmetinizin her zaman kullanılabilir olmasını sağlar.

Aşağıdaki diyagramda, farklı bölgelerdeki birden fazla arka uç grubunda birden fazla örnek kullanılarak örnek yüklerinin nasıl dengelendiği gösterilmektedir.

Yük dengeleme diyagramı

Durum denetimi oluşturma

  1. Yük dengeleyicinin yalnızca iyi durumda olan örneklere trafik göndermesi için durum denetimi gerekir. Arka uç hizmetiniz bir HTTP sunucusudur. Bu nedenle, belirli bir URL yolunda (bu örnekte, 2'nin asal olup olmadığını teyit etmek üzere /2) "200 OK" yanıtı verip vermediğini kontrol etmek için aşağıdaki komutu çalıştırın:
gcloud compute health-checks create http ilb-health --request-path /2

HTTP hizmeti sağlandığından, belirli bir URL yolunda (bu örnekte 2'nin asal olup olmadığını kontrol etmek için /2) 200 yanıtının döndürülüp döndürülmediğini kontrol edin.

Arka uç hizmeti oluşturma

  1. Şimdi prime-service adlı arka uç hizmetini oluşturmak için aşağıdaki komutu çalıştırın:
gcloud compute backend-services create prime-service \ --load-balancing-scheme internal --region={{{project_0.default_region | REGION}}} \ --protocol tcp --health-checks ilb-health

Bu hizmet, durum denetimini örnek grubuna bağlar.

Örnek grubunu arka uç hizmetine ekleme

  1. Arka uç örnek grubunuzu prime-service arka uç hizmetine bağlamak için aşağıdaki komutu çalıştırın. Bu işlem, yük dengeleyiciye hangi makineleri yönetmesi gerektiğini söyler:
gcloud compute backend-services add-backend prime-service \ --instance-group backend --instance-group-zone={{{project_0.default_zone | ZONE }}} \ --region={{{project_0.default_region | REGION}}}

İletim kuralını oluşturma

  1. Son olarak, statik IP'siyle prime-lb adlı iletim kuralını oluşturmak için aşağıdaki komutu çalıştırın:
gcloud compute forwarding-rules create prime-lb \ --load-balancing-scheme internal \ --ports 80 --network default \ --region={{{project_0.default_region | REGION}}} --address {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}} \ --backend-service prime-service

Dahili "asal sayı hesaplama" hizmetiniz artık tamamen ayarlanmıştır ve dahili IP adresi üzerinden sorgulanmaya hazırdır.

Bu laboratuvarda programa uygun biçimde ilerlediğinizi doğrulamak için Check my progress'i (İlerleme durumumu kontrol et) tıklayın.

Dahili yük dengeleyiciyi ayarlama

4. görev: Yük dengeleyiciyi test etme

Bu adım, dahili uygulama yük dengeleyicinizin trafiği arka uç hizmetlerine doğru şekilde yönlendirdiğini doğrulamak için çok önemlidir. Bu işlem, diğer dahili uygulamaların artık tek ve kararlı bir IP adresi üzerinden hizmetinize güvenilir bir şekilde ulaşabileceğini kanıtlayarak kesintisiz çalışmaya olanak tanır.

Yük dengeleyiciyi test etmek için dahili uygulama yük dengeleyicinizle aynı ağda yeni bir sanal makine örneği oluşturmanız gerekir. Bu hizmete yalnızca özel bulut ağınızdan erişilebilir. Doğrudan Cloud Shell'den erişilemez (Bu ağın dışında yer alır).

  1. Cloud Shell'de aşağıdaki gcloud komutunu çalıştırarak basit bir test örneği oluşturun:
gcloud compute instances create testinstance \ --machine-type=e2-standard-2 --zone {{{project_0.default_zone | ZONE }}}
  1. Ardından, SSH ile bağlanmak için aşağıdaki komutu çalıştırın:
gcloud compute ssh testinstance --zone {{{project_0.default_zone | ZONE }}}

İstenirse Y yazın ve devam etmek için Enter tuşuna iki kez basın.

Yük dengeleyiciyi sorgulama

  1. Test örneğinin içinden, dahili uygulama yük dengeleyicinizin IP adresine birkaç sayının asal olup olmadığını sormak için aşağıdaki curl komutlarını çalıştırın:
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2 curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4 curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5

Çıkış, komut satırınızın hemen yanında True veya False olarak gösterilir.

Çıkış:

user@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2 Trueuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4 Falseuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5 Trueuser@testinstance:~$ exit

2 ve 5'in asal sayı olarak doğru şekilde tanımlandığını ancak 4'ün asal sayı olarak tanımlanmadığını görürsünüz. Bu, dahili uygulama yük dengeleyicisinin çalıştığını doğrular. İstekleri aldı ve arka uçtaki "asal sayı hesaplama" sanal makinelerinizden birine başarıyla iletti.

Hizmet, 2 ve 5'in asal sayı olduğu, 4'ün ise asal sayı olmadığı şeklinde doğru yanıt verdi.

  1. Test örneğinden çıkmak için aşağıdaki komutu çalıştırın:
exit
  1. Ardından, artık gerekmediği için aşağıdaki komutu çalıştırarak test örneğini silin:
gcloud compute instances delete testinstance --zone={{{project_0.default_zone | ZONE }}}
  1. Silme işlemini onaylamak için Y yazın.

5. görev: Herkese açık bir web sunucusu oluşturma

Artık herkese açık bir uygulamanın (ör. web sitesi) dahili hizmetlerinizden nasıl yararlanabileceğini görebilirsiniz.

Bu görevde, bir asal sayı matrisi görüntülemek için dahili "asal sayı hesaplayıcı" hizmetini (dahili uygulama yük dengeleyicisi aracılığıyla) kullanan, herkese açık bir web sunucusu oluşturacaksınız.

  1. Öncelikle, ana dizindeki herkese açık "ön uç" için başlangıç komut dosyası oluşturmak üzere aşağıdaki komutu çalıştırın:
touch ~/frontend.sh
  1. Kod düzenleyicinin açık olduğunu görürsünüz. Değilse kabukta Code Editor'ı (Kod düzenleyici) seçerek başlatın:

Kullanıcı arayüzünde vurgulanan Open Editor (Düzenleyiciyi aç) düğmesi

Birkaç saniye sonra çalışma alanı açılır.

  1. Dosya gezgini bölmesinde frontend.sh dosyasını seçin.

  2. Şimdi aşağıdaki komut dosyasını düzenleyiciye ekleyin:

sudo chmod -R 777 /usr/local/sbin/ sudo cat << EOF > /usr/local/sbin/getprimes.py import urllib.request from multiprocessing.dummy import Pool as ThreadPool import http.server PREFIX="http://{{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/" #HTTP Load Balancer def get_url(number): return urllib.request.urlopen(PREFIX+str(number)).read().decode('utf-8') class myHandler(http.server.BaseHTTPRequestHandler): def do_GET(s): s.send_response(200) s.send_header("Content-type", "text/html") s.end_headers() i = int(s.path[1:]) if (len(s.path)>1) else 1 s.wfile.write("<html><body><table>".encode('utf-8')) pool = ThreadPool(10) results = pool.map(get_url,range(i,i+100)) for x in range(0,100): if not (x % 10): s.wfile.write("<tr>".encode('utf-8')) if results[x]=="True": s.wfile.write("<td bgcolor='#00ff00'>".encode('utf-8')) else: s.wfile.write("<td bgcolor='#ff0000'>".encode('utf-8')) s.wfile.write(str(x+i).encode('utf-8')+"</td> ".encode('utf-8')) if not ((x+1) % 10): s.wfile.write("</tr>".encode('utf-8')) s.wfile.write("</table></body></html>".encode('utf-8')) http.server.HTTPServer(("",80),myHandler).serve_forever() EOF nohup python3 /usr/local/sbin/getprimes.py >/dev/null 2>&1 &
  1. File (Dosya) > Save'i (Kaydet) tıklayın ancak dosyayı kapatmayın.

    Daha önce olduğu gibi, Gemini Code Assist'ten herkese açık bir web sunucusunun başlangıç komut dosyasını bir ekip üyesine açıklamasını isteyin.

  2. frontend.sh dosyası açıkken ve IDE'de Gemini Code Assist etkinleştirilmişken düzenleyicinin sağ üst köşesinde Gemini Code Assist: Akıllı İşlemler simgesinin bulunduğunu görebilirsiniz.

  3. Gemini Code Assist: Smart Actions (Gemini Code Assist: Akıllı İşlemler) Gemini Code Assist: Akıllı İşlemler simgesini tıklayın ve Explain this'i (Bunu açıkla) seçin.

  4. Gemini Code Assist, Explain this (Bunu açıkla) istemiyle önceden doldurulmuş bir sohbet bölmesi açar. Cod Assist sohbetinin satır içi metin kutusunda, önceden doldurulmuş istemi aşağıdakiyle değiştirin ve Send'i (Gönder) tıklayın:

You are an Application Developer at Cymbal AI. A new team member needs help understanding this startup script, which is used to run a public-facing web server written in the Python file getprimes.py. Explain the frontend.sh script in detail. Break down its key components, the commands used, and their function within the script. For suggested improvements, do not make any changes to the file's content.

Herkese açık web sunucusunu çalıştırmak için kullanılan başlangıç komut dosyası frontend.sh ile ilgili ayrıntılı açıklama Gemini Code Assist sohbetinde gösterilir.

Ön uç örneğini oluşturma

  1. Bu web sunucusunu çalıştıran frontend adlı örneği oluşturmak için Cloud Shell terminalinde aşağıdaki kodu çalıştırın:
gcloud compute instances create frontend --zone={{{project_0.default_zone | ZONE }}} \ --metadata-from-file startup-script=frontend.sh \ --tags frontend --machine-type=e2-standard-2

Ön uç için güvenlik duvarını açma

  1. Herkese açık bir sunucu olduğundan, internetin herhangi bir yerinden (0.0.0.0/0) gelen trafiğin 80 numaralı bağlantı noktasında iletilmesine izin vermek için güvenlik duvarını açmak üzere aşağıdaki komutu çalıştırmanız gerekir:
gcloud compute firewall-rules create http2 --network default --allow=tcp:80 \ --source-ranges 0.0.0.0/0 --target-tags frontend
  1. Gezinme menüsünde Compute Engine > VM instances'ı (Sanal makine örnekleri) tıklayın. frontend örneğini görmüyorsanız tarayıcınızı yenileyin.

  2. Tarayıcınızda ön uç için External IP'yi (Harici IP) açın:

Seçili ön ucun IP adresini gösteren sanal makine örnekleri sayfası

100'e kadar tüm asal sayıları yeşil renkte gösteren aşağıdaki gibi bir matris görürsünüz:

Asal sayıları yeşil renkte gösteren matris diyagramı

  1. Yola bir sayı (ör. http://your-ip/10000) ekleyerek bu sayıdan başlayan tüm asal sayıları görmeyi deneyin.

100&#39;den itibaren asal sayıları yeşil renkte gösteren matris diyagramı

Not: Örnek başlangıç komut dosyası, asal sayıları etkili bir şekilde hesaplamaz. Ayrıca hata tespiti veya düzeltme algoritmalarına sahip değildir. Yola büyük sayılar eklemek, hizmetin zaman aşımına uğramasına neden olur.

Bu laboratuvarda programa uygun biçimde ilerlediğinizi doğrulamak için Check my progress'i (İlerleme durumumu kontrol et) tıklayın.

Herkese açık bir web sunucusu oluşturma

Tebrikler!

Gemini Code Assist'in yardımıyla Google Cloud'un dahili uygulama yük dengeleyicisini kullanarak güvenilir bir dahili hizmet oluşturmayı başardınız ve herkese açık bir uygulamanın bu hizmetten nasıl güvenli bir şekilde yararlanabileceğini gösterdiniz.

Sonraki adımlar / Daha fazla bilgi

Google Cloud eğitimi ve sertifikası

...Google Cloud teknolojilerinden en iyi şekilde yararlanmanıza yardımcı olur. Derslerimizde teknik becerilere odaklanırken en iyi uygulamalara da yer veriyoruz. Gerekli yetkinlik seviyesine hızlıca ulaşmanız ve öğrenim maceranızı sürdürebilmeniz için sizlere yardımcı olmayı amaçlıyoruz. Temel kavramlardan ileri seviyeye kadar farklı eğitim programlarımız mevcut. Ayrıca, yoğun gündeminize uyması için talep üzerine sağlanan, canlı ve sanal eğitim alternatiflerimiz de var. Sertifikasyonlar ise Google Cloud teknolojilerindeki becerilerinizi ve uzmanlığınızı doğrulamanıza ve kanıtlamanıza yardımcı oluyor.

Kılavuzun Son Güncellenme Tarihi: 22 Ağustos 2025

Laboratuvarın Son Test Edilme Tarihi: 22 Ağustos 2025

Telif Hakkı 2025 Google LLC. Tüm hakları saklıdır. Google ve Google logosu, Google LLC şirketinin ticari markalarıdır. Diğer tüm şirket ve ürün adları ilişkili oldukları şirketlerin ticari markaları olabilir.

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

This content is not currently available

We will notify you via email when it becomes available

Great!

We will contact you via email if it becomes available

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.