1. Giriş
Özel bağlantıları için özel hizmet erişimi kullanan Looker (Google Cloud Core) örnekleri özel IP ve genel IP yapılandırmasını destekler.
Hem özel IP (özel hizmet erişimi) bağlantısı hem de genel IP bağlantısı olan bir Looker (Google Cloud çekirdeği) örneğinin genel bir URL'si vardır ve gelen tüm trafik genel IP bağlantısından geçer. Giden trafik, VPC'niz üzerinden yönlendirilir. VPC'niz, Şekil 1'de gösterildiği gibi yalnızca özel IP trafiğine izin verecek şekilde yapılandırılabilir.
Figure1
github.com ile iletişim, herkese açık bir IP adresine çözümlenir. Bu nedenle, Özel veya Herkese Açık+Özel olarak dağıtılan bir Looker örneğinden erişilemez.
Bu kod laboratuvarında, Looker PSA'dan çağrılan dahili bir TCP proxy yük dengeleyici ve internet ağı uç noktası grubu (NEG) kullanarak GitHub'a gelen bir HTTPS bağlantısı gerçekleştireceksiniz.
Neler öğreneceksiniz?
- Ağ gereksinimleri
- Test bağlantısı kullanarak Looker'dan GitHub'a bağlantı kurma
Gerekenler
- Sahibi 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ülen github.com kuruluşlarına internet çıkışı için Cloud NAT'ten yararlanan github.com'un çözüldüğü IP adresiyle yapılandırılan bir dahili TCP proxy yük dengeleyici ve internet NEG'si dağıtırsınız.
3. Ağ gereksinimleri
Ağ koşullarının 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 Dengelemesi için IP adresi ayırmak amacıyla kullanılır. |
Yalnızca Proxy Alt Ağı | Yük dengeleyicinin proxy'lerinin her birine bir dahili IP adresi atanır. Bir proxy'den arka uç sanal makinesine veya uç noktasına gönderilen paketlerin kaynak IP adresi, yalnızca proxy alt ağından alınır. |
İnternet NEG | Yük dengeleyici için harici bir arka uç tanımlamak amacıyla kullanılan bir kaynak. Uç noktaya yalnızca Cloud VPN veya Cloud Interconnect üzerinden erişilemez. |
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şkilendirilmiştir. |
Cloud Router | Cloud NAT, kontrol düzlemi özellikleri için Cloud Yönlendiricileri kullanır ancak BGP oturumu yönetimi için kullanmaz. |
Cloud NAT | Bölgesel internet NEG'si, internet çıkışı için Cloud NAT 'tan yararlanır. |
4. Codelab topolojisi
5. Kurulum ve Gereksinimler
Kendine ait tempoda 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ının görünen adıdır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Dilediğiniz zaman güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dize otomatik olarak oluşturur. Bu dizenin ne olduğu genellikle önemli değildir. Çoğu kod laboratuvarında proje kimliğinize (genellikle
PROJECT_ID
olarak tanımlanır) referans vermeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele başka bir kimlik oluşturabilirsiniz. Alternatif olarak, kendi anahtarınızı deneyerek kullanılabilir olup olmadığını görebilirsiniz. Bu adımdan sonra değiştirilemez ve proje boyunca geçerli kalır. - Bazı API'lerin kullandığı üçüncü bir değer (Proje Numarası) olduğunu belirtmek isteriz. Bu değerlerin üçü hakkında daha fazla bilgiyi dokümanlar bölümünde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmak çok pahalı değildir. Bu eğitimden sonra faturalandırılmamak için kaynakları kapatmak istiyorsanız oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerinde ücretsiz deneme programına uygundur.
Cloud Shell'i başlatma
Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu kod laboratuvarında, 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 sağlanıp bağlantı kurulabilmesi için birkaç saniye beklemeniz gerekir. İşlem tamamlandığında aşağıdakine benzer bir ekran görürsünüz:
Bu sanal makinede ihtiyacınız olan tüm geliştirme araçları yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansını ve kimlik doğrulamayı büyük ölçüde iyileştirir. Bu codelab'deki tüm çalışmalarınızı tarayıcıda yapabilirsiniz. Hiç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ğitimin ön koşulu mevcut bir PSA Looker örneği olduğundan 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 Gateway, –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB yapılandırma seçeneğiyle internet çıkışı için bölgesel dahili TCP proxy yük dengeleyicisi tarafından kullanılır. Bu nedenle, aynı NATGW GCE/GKE internet çıkışını desteklemez. GCE/GKE internet çıkışı için –endpoint-types=ENDPOINT_TYPE_VM ile ek bir NAT GW 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 dengeleyici 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, yük dengeleyici için daha sonra github.com için DNS A kaydı olarak kullanılacak bir dahili 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'si: INTERNET_FQDN_PORT veya INTERNET_IP_PORT tarafından referans verilen harici uç noktayı yapılandırmanın iki yolu vardır. 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 küresel) bağlı olarak herkese açık internette yönlendirilebilir bir IP adresine veya özel bir IP adresine çözülebilir.
1. seçenek: İnternet NEG'sini IP adresini kullanarak ayarlama
Internet NEG, Github.com'un çözüldüğü IP adresini gerektirir. Bu nedenle, en iyi performans için yerel bir terminal açın ve dig komutunu kullanarak github.com'un IP adresini alın.
Yerel bir terminalden alınan örnekte, çözülmüş IP adresi 140.82.113.4 oluşturulur.
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
İnternet NEG'si oluşturun ve –network-endpoint-type parametresini internet_ip_port olarak ayarlayın.
Cloud Shell'de, github.com için kullanılan bir internet 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 internet NEG'sini github.com'un çözüldüğü 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'sini ayarlama
İsteğe bağlı olarak bir internet NEG'si oluşturabilir ve –network-endpoint-type parametresini internet_FQDN_port olarak ayarlayabilirsiniz.
Cloud Shell'de, github.com için kullanılan bir internet 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 internet NEG'sini github.com tam alan adıyla 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, GitHub.com için dahili TCP proxy yük dengeleyici IP adresinden oluşan bir A kaydı içeren 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 üzerinden GitHub'a bağlanabilirsiniz.
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şlemesini güncelleme
Bu bölümde, özel hizmet bağlantısı için eşlenen bir DNS alanı oluşturan "gcloud services peered-dns-domains create" söz dizimini kullanacaksınız. Bu bağlantı, hizmet üretici VPC ağındaki belirli bir ad alanındaki kayıtlarla ilgili istekleri, çözülmesi için tüketici VPC ağına gönderir.
Cloud Shell'de, Looker'ın github.com için sorgulayacağı bir eşlenen-dns-alanı oluşturun:
gcloud services peered-dns-domains create github-com --project=$project --network=$vpc_network --dns-suffix=github.com.
11. GitHub bağlantısını test etme
Aşağıdaki adımlarda, github.com ile 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 (sol alttaki sayfa). Seçildikten sonra "Geliştirme modundasınız" banner'ı gösterilir.
Yeni proje oluşturma
Cloud Console'da şuraya gidin:
Geliştirme → Projeler
Yeni LookML projesi seçme
Bir 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 ardından Devam'ı seçin.
Örnek:
Seçimi GitHub kullanıcı adınız ve Kişisel Erişim Jetonu (klasik) ile güncelleyin, ardından Test Et ve Kurulumu Tamamla'yı seçin.
Git işlemlerini seçme
Test Git Bağlantısı'nı seçin
Git Bağlantısı 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 bağlantısını başarıyla yapılandırdınız ve doğruladınız.
Cosmopup, codelab'lerin harika olduğunu düşünüyor.