1. Giriş
Özel bağlantıları için yalnızca özel hizmet erişimini kullanan Looker (Google Cloud Core) örnekleri, özel IP ve genel IP yapılandırmasını destekler.
Hem özel IP (özel hizmetlere erişim) bağlantısı hem de genel IP bağlantısı olan bir Looker (Google Cloud Core) örneğinin genel URL'si vardır ve tüm gelen trafik genel IP bağlantısı üzerinden geçer. Giden trafik, yalnızca özel IP trafiğine izin verecek şekilde yapılandırılabilen VPC'niz üzerinden yönlendirilir (Şekil 1'de gösterildiği gibi).
Figure1

github.com ile iletişim herkese açık bir IP adresine çözümlendiğinden, Özel veya Herkese Açık+Özel olarak dağıtılan bir Looker örneğinden ulaşılamaz.
Bu codelab'de, Looker PSA'dan çağrılan bir dahili TCP proxy yük dengeleyici ve internet ağı uç noktası grubu (NEG) kullanarak GitHub'a güney yönlü bir HTTPS bağlantısı gerçekleştireceksiniz.
Neler öğreneceksiniz?
- Ağ gereksinimleri
- Test Bağlantısı kullanarak Looker'dan GitHub'a bağlantı oluşturma
Gerekenler
- Sahip izinlerine sahip Google Cloud projesi
- GitHub hesabı ve deposu
- GitHub kişisel erişim jetonu (klasik)
- Herkese açık + özel veya yalnızca özel etkinleştirilmiş mevcut Looker PSA örneği

2. Ne oluşturacaksınız?
Looker tarafından çözümlenen github.com kuruluşlarına internet çıkışı için Cloud NAT'den yararlanan github.com'un çözümlenmiş IP adresiyle yapılandırılmış bir dahili tcp proxy yük dengeleyici ve internet NEG'si dağıtırsınız.
3. Ağ gereksinimleri
Ağ gereksinimlerinin dökümü aşağıda verilmiştir:
Bileşenler | Açıklama |
VPC ($vpc_network) | Özel mod VPC |
iletim kuralı alt ağı | Bölgesel dahili TCP proxy yük dengeleyicisi için bir IP adresi ayırmak üzere kullanılır. |
Yalnızca Proxy Alt Ağı | Yük dengeleyicinin her bir proxy'sine dahili bir IP adresi atanır. Bir proxy'den arka uç VM'sine veya uç noktasına gönderilen paketlerin kaynak IP adresi, yalnızca proxy'ye ait alt ağdan alınır. |
İnternet NEG | Yük dengeleyici için harici bir arka uç tanımlamak üzere kullanılan bir kaynak. Uç noktaya yalnızca Cloud VPN veya Cloud Interconnect üzerinden erişilemiyor. |
Arka Uç Hizmeti | Arka uç hizmeti, yük dengeleyiciniz ile arka uç kaynaklarınız arasında köprü görevi görür. Eğitimde, arka uç hizmeti internet NEG'siyle ilişkilendirilir. |
Cloud Router | Cloud NAT, kontrol düzlemi özellikleri için Cloud Router'lara dayanır ancak BGP oturumu yönetimi için dayanmaz. |
Cloud NAT | Bölgesel internet NEG, internet çıkışı için Cloud NAT 'den yararlanır. |
4. Codelab topolojisi

5. Kurulum ve Gereksinimler
Yönlendirmesiz ortam kurulumu
- Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.



- Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Bu bilgiyi istediğiniz zaman güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğinize (genellikle
PROJECT_IDolarak tanımlanır) başvurmanız gerekir. Oluşturulan kimliği beğenmezseniz başka bir rastgele kimlik oluşturabilirsiniz. Dilerseniz kendi adınızı deneyerek kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu adım tamamlandıktan sonra değiştirilemez ve proje süresince geçerli kalır. - Bazı API'lerin kullandığı üçüncü bir değer olan Proje Numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırılmayı önlemek için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.
Cloud Shell'i başlatma
Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir ancak bu codelab'de Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.
Google Cloud Console'da sağ üstteki araç çubuğunda Cloud Shell simgesini tıklayın:

Ortamın temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır. İşlem tamamlandığında aşağıdakine benzer bir ekranla karşılaşırsınız:

Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu codelab'deki tüm çalışmalarınızı tarayıcıda yapabilirsiniz. Herhangi bir şey yüklemeniz gerekmez.
6. Başlamadan önce
API'leri etkinleştir
Cloud Shell'de proje kimliğinizin ayarlandığından emin olun:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
vpc_network=[VPC Name]
echo $project
echo $region
echo $vpc-network
Gerekli tüm hizmetleri etkinleştirin:
gcloud services enable compute.googleapis.com
7. VPC Ağı Bileşenleri
VPC Ağı
Eğitici için ön koşul, mevcut bir PSA Looker örneğidir. Bu nedenle, ilişkili VPC zaten oluşturulmuştur.
Cloud Shell'de iletim kuralı alt ağını oluşturun:
gcloud compute networks subnets create psa-fr-subnet --network $vpc_network --range 172.16.20.0/28 --region $region --enable-private-ip-google-access
Cloud Shell'de bölgesel yalnızca proxy alt ağını oluşturun:
gcloud compute networks subnets create $region-proxyonly-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$region \
--network=$vpc_network \
--range=10.10.10.0/24
Herkese açık NAT ağ geçidini oluşturma
NAT ağ geçidi, bölgesel dahili TCP proxy yük dengeleyici tarafından internet çıkışı için kullanılır. Yapılandırma seçeneği –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB olduğundan aynı NATGW, GCE/GKE internet çıkışını desteklemez. GCE/GKE internet çıkışı için –endpoint-types=ENDPOINT_TYPE_VM ile ek bir NAT ağ geçidi dağıtın.
Cloud Shell'de Cloud Router'ı oluşturun:
gcloud compute routers create $vpc_network-cloud-router --network $vpc_network --region $region
Cloud Shell'de, TCP proxy yük dengeleyicisi için internet çıkışını etkinleştiren Cloud NAT ağ geçidini oluşturun:
gcloud compute routers nats create $vpc_network-natgw \
--router=$vpc_network-cloud-router \
--endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
--nat-custom-subnet-ip-ranges=$region-proxyonly-subnet \
--auto-allocate-nat-external-ips \
--region=$region
Yük dengeleyicinin IP adresini ayırma
Cloud Shell'de, daha sonra github.com için DNS A kaydı olarak kullanılacak yük dengeleyici için dahili bir IP adresi ayırın:
gcloud compute addresses create internet-neg-lb-ip \
--region=$region \
--subnet=psa-fr-subnet
Cloud Shell'de ayrılmış IP adresini görüntüleyin:
gcloud compute addresses describe internet-neg-lb-ip \
--region=$region | grep -i address:
Örnek çıkış:
user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2
8. İnternet NEG
İnternet NEG tarafından referans verilen harici uç noktayı yapılandırmanın iki yolu vardır: INTERNET_FQDN_PORT veya INTERNET_IP_PORT. INTERNET_IP_PORT (1. Seçenek) biçimi seçilirse yalnızca herkese açık internette yönlendirilebilir bir IP adresi kullanılabilir. INTERNET_FQDN_PORT (2. Seçenek) biçimi seçilirse FQDN, uç noktanın kapsamına (bölgesel veya global) bağlı olarak herkese açık internette yönlendirilebilir bir IP adresine ya da özel bir IP adresine çözümlenebilir.
1. seçenek: IP adresini kullanarak internet NEG'sini ayarlama
İnternet NEG'si, Github.com'un çözümlenmiş IP adresini gerektirir. Bu nedenle, en iyi performansı elde etmek için yerel bir terminal açın, dig komutunu çalıştırın ve github.com'un IP adresini alın.
Yerel bir terminalden alınan örnek, 140.82.113.4 IP adresini oluşturur.
bash-3.2$ dig github.com ; <<>> DiG 9.10.6 <<>> github.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64801 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;github.com. IN A ;; ANSWER SECTION: github.com. 60 IN A 140.82.113.4 ;; Query time: 409 msec ;; SERVER: ::1#53(::1) ;; WHEN: Thu Sep 26 15:50:45 CDT 2024 ;; MSG SIZE rcvd: 65
Bir İnternet NEG'si oluşturun ve –network-endpoint-type değerini internet_ip_port olarak ayarlayın.
Cloud Shell'de github.com için kullanılan bir İnternet NEG'si oluşturun:
gcloud compute network-endpoint-groups create github-internet-neg \
--network-endpoint-type=INTERNET_IP_PORT \
--network=$vpc_network \
--region=$region
Cloud Shell'de, github-internet-neg adlı İnternet NEG'sini github.com'un çözümlenmiş IP adresi ve 443 bağlantı noktasıyla güncelleyin:
gcloud compute network-endpoint-groups update github-internet-neg \
--add-endpoint="ip=[your-resolved-ip],port=443" \
--region=$region
Örnek:
gcloud compute network-endpoint-groups update github-internet-neg \
--add-endpoint="ip=140.82.113.4,port=443" \
--region=$region
2. seçenek: FQDN kullanarak internet NEG'si oluşturma
İsteğe bağlı olarak bir İnternet NEG oluşturabilir ve –network-endpoint-type değerini internet_FQDN_port olarak ayarlayabilirsiniz.
Cloud Shell'de github.com için kullanılan bir İnternet NEG'si oluşturun:
gcloud compute network-endpoint-groups create github-internet-neg \
--network-endpoint-type=INTERNET_FQDN_PORT \
--network=$vpc_network \
--region=$region
Cloud Shell'de, github-internet-neg adlı internet NEG'sini github.com FQDN'siyle güncelleyin:
gcloud compute network-endpoint-groups update github-internet-neg \
--add-endpoint="fqdn=github.com,port=443" \
--region=$region
9. GitHub hizmetini oluşturma
Yük Dengeleyici Bileşenleri Oluşturma
Cloud Shell'de aşağıdakileri yapın:
gcloud compute backend-services create psa-backend-svc --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED
gcloud compute backend-services add-backend psa-backend-svc --network-endpoint-group=github-internet-neg --network-endpoint-group-region=$region --region=$region
Cloud Shell'de, istekleri arka uç hizmetinize yönlendirmek için bir hedef TCP proxy'si oluşturun:
gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
--backend-service=psa-backend-svc \
--region=$region
Aşağıdaki söz diziminde bir yönlendirme kuralı (dahili TCP proxy yük dengeleyici) oluşturun.
Cloud Shell'de aşağıdakileri yapın:
gcloud compute forwarding-rules create psa-github-fr \
--load-balancing-scheme=INTERNAL_MANAGED \
--network-tier=PREMIUM \
--network=$vpc_network \
--subnet=psa-fr-subnet \
--address=internet-neg-lb-ip \
--target-tcp-proxy=producer-lb-tcp-proxy \
--target-tcp-proxy-region=$region \
--region=$region \
--ports=443
10. GitHub DNS Bölgesi
Aşağıdaki bölümde, dahili TCP proxy yük dengeleyicisi IP adresinden oluşan bir A kaydıyla GitHub.com için bir DNS yanıt politikası oluşturacaksınız.
Ardından, DNS eşleme, github.com bölgesini Looker PSA ile paylaşır. Bu sayede, internet NEG ve Cloud NAT ile birlikte dahili yük dengeleyici aracılığıyla GitHub'a bağlantı sağlanır.
Cloud Shell'de yanıt politikası bölgesini oluşturun:
gcloud dns --project=$project response-policies create github-com --description="" --networks="$vpc_network"
Cloud Shell'de, tcp proxy yük dengeleyici IP adresinden ([insert-your-ip-address]) oluşan DNS A kaydını oluşturun:
gcloud dns --project=$project response-policies rules create github --response-policy="github-com" --dns-name="github.com." --local-data=name="github.com.",type="A",ttl=300,rrdatas="[insert-your-ip-address]"
Örnek:
gcloud dns --project=$project response-policies rules create github --response-policy="github-com" --dns-name="github.com." --local-data=name="github.com.",type="A",ttl=300,rrdatas="172.16.20.2"

DNS eşlemeyi güncelleme
Bu bölümde, belirli bir ad alanında bulunan ve hizmet üreticinin VPC ağından kaynaklanan kayıt isteklerini çözümlenmek üzere tüketici VPC ağına gönderen özel hizmet bağlantısı için eşlenmiş bir DNS alanı oluşturan "gcloud services peered-dns-domains create" söz dizimini kullanacaksınız.
Cloud Shell'de, Looker'ın github.com için sorgulayacağı bir peered-dns-domain oluşturun:
gcloud services peered-dns-domains create github-com --project=$project --network=$vpc_network --dns-suffix=github.com.
11. GitHub'a bağlantıyı test etme
Aşağıdaki adımlarda, github.com'a HTTPS bağlantısını doğrulamak için bir proje oluşturmak üzere Looker Console'u kullanacaksınız.
12. Yeni proje oluştur
Geliştirme modunu etkinleştirme
Looker Console'da şuraya gidin:
Geliştirme modunu etkinleştirin (sayfanın sol alt kısmı). Seçildiğinde "Geliştirme modundasınız" banner'ı gösterilir.

Yeni proje oluşturma
Cloud Console'da şuraya gidin:
Geliştirme → Projeler

Yeni LookML Projesi'ni seçin.

Proje adı girin, Boş Proje'yi ve ardından Proje Oluştur'u seçin.

Git'i yapılandır'ı seçin.

Git'i yapılandırma
Depo URL'sini HTTPS GitHub ayrıntılarınızla güncelleyin, URL'ye .git eklediğinizden emin olun ve Devam'ı seçin.

Örnek:

Seçimi GitHub kullanıcı adınız ve kişisel erişim jetonunuzla (klasik) güncelleyin, ardından Test and Finalize Setup'ı (Kurulumu Test Et ve Tamamla) seçin.

Git İşlemleri'ni seçin

Test Git Connection'ı (Git bağlantısını test et) seçin.

Git bağlantı testini doğrulama

13. Temizleme
Tek bir Cloud Shell terminalinden laboratuvar bileşenlerini silin:
gcloud compute forwarding-rules delete psa-github-fr --region=$region -q
gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q
gcloud compute backend-services delete psa-backend-svc --region=$region -q
gcloud compute routers nats delete $vpc_network-natgw --router=$vpc_network-cloud-router --router-region=$region -q
gcloud compute routers delete $vpc_network-cloud-router --region=$region -q
gcloud compute network-endpoint-groups delete github-internet-neg --region=$region -q
gcloud compute addresses delete internet-neg-lb-ip --region=$region -q
gcloud compute networks subnets delete psa-fr-subnet $region-proxyonly-subnet --region=$region -q
gcloud services peered-dns-domains delete github-com --network=$vpc_network -q
gcloud dns --project=$project response-policies rules delete github --response-policy="github-com" -q
gcloud dns response-policies update github-com --networks= -q
gcloud dns response-policies delete github-com
14. Tebrikler
Tebrikler, Looker Console'u kullanarak GitHub'a bağlantıyı başarıyla yapılandırdınız ve doğruladınız.
Cosmopup, codelab'lerin harika olduğunu düşünüyor.
