Looker PSA Güneye Yönelik HTTPS İnternet NEG

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

9f587c14791dd92e.png

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

5348de53f0a78a50.png

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

c5871e5418d37f13.png

5. Kurulum ve Gereksinimler

Yönlendirmesiz ortam kurulumu

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 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_ID olarak 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.
  1. 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:

55efc1aaa7a4d3ad.png

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:

7ffe5cbb04455448.png

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"

7b41b2f44609e5ed.png

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.

70c9ded749decfbe.png

Yeni proje oluşturma

Cloud Console'da şuraya gidin:

Geliştirme → Projeler

e8ae11e0392a776d.png

Yeni LookML Projesi'ni seçin.

65a3c2573e97e1e9.png

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

9185808e001fa540.png

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

42f5e51ce70642ad.png

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.

f5c448f6659b8fc1.png

Örnek:

4065ab1d196589f.png

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.

1dc44d63c555a9ae.png

Git İşlemleri'ni seçin

b5903668a50a99ca.png

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

51b722e84f2df38c.png

Git bağlantı testini doğrulama

8fb7386b739f60be.png

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.

c911c127bffdee57.jpeg

Yapabilecekleriniz

Daha fazla bilgi ve videolar

Referans belgeler