1. Giriş
Bu codelab'de, Looker PSC'den hizmet tüketicisi olarak çağrılan dahili bir TCP proxy yük dengeleyici ve karma ağ uç noktası grubu kullanarak H-VPN üzerinden şirket içi bir PostgreSQL veritabanına güney yönlü bağlantı gerçekleştireceksiniz.
Private Service Connect, tüketicilerin yönetilen hizmetlere VPC ağlarının içinden özel olarak erişmesine olanak tanıyan bir Google Cloud ağ iletişimi özelliğidir. Aynı şekilde, yönetilen hizmet üreticilerinin bu hizmetleri kendi ayrı VPC ağlarında barındırmasına ve tüketicilerine özel bir bağlantı sunmasına olanak tanır. Örneğin, Looker'a erişmek için Private Service Connect'i kullandığınızda hizmet tüketicisi siz, hizmet üreticisi ise Google olur (Şekil 1'de vurgulandığı gibi).
1. şekil

Ters PSC olarak da bilinen Southbound erişimi, tüketicinin üretici olarak yayınlanmış bir hizmet oluşturmasına olanak tanır. Böylece Looker'ın şirket içi, VPC'deki, yönetilen hizmetlerdeki ve hibrit uç noktalara erişmesine izin verilir. Şekil 2'de vurgulandığı gibi, Looker PSC'nin dağıtıldığı yerden bağımsız olarak güneye giden bağlantılar herhangi bir bölgede dağıtılabilir.
2. şekil.

Neler öğreneceksiniz?
- Ağ gereksinimleri
- Private Service Connect üretici hizmeti oluşturma
- Looker'da Private Service Connect uç noktası oluşturma
- Test Bağlantısı kullanarak Looker'dan şirket içi PostgreSQL veritabanına bağlantı oluşturun.
Gerekenler
- Sahip izinlerine sahip Google Cloud projesi
- Mevcut Looker PSC örneği

2. Ne oluşturacaksınız?
Private Service Connect (PSC) aracılığıyla hizmet olarak yayınlanan dahili TCP proxy yük dengeleyici ve karma NEG'yi dağıtmak için bir üretici ağı (looker-psc-demo) oluşturacaksınız. Şirket içi bir veritabanını göstermek için HA-VPN kullanarak looker-psc-demo VPC'ye bağlı bir on-prem-demo VPC dağıtacaksınız.
Üretici hizmetine erişimi doğrulamak için aşağıdaki işlemleri yaparsınız:
- Looker'da üretici hizmet ekiyle ilişkili bir PSC uç noktası oluşturma
- Şirket içi PostgreSQL veritabanına bağlantı doğrulaması yapmak için Looker Console'u kullanma
3. Ağ gereksinimleri
Üretici ağı için ağ gereksinimlerinin dökümü aşağıda verilmiştir. Bu codelab'deki tüketici, Looker PSC örneğidir.
Bileşenler | Açıklama |
VPC (looker-psc-demo) | Özel mod VPC |
VPC (şirket içi demo) | Özel mod VPC |
PSC NAT alt ağı | Tüketici VPC ağından gelen paketler, kaynak NAT (SNAT) kullanılarak çevrilir. Böylece, orijinal kaynak IP adresleri, üreticinin VPC ağındaki NAT alt ağından kaynak IP adreslerine dönüştürülür. |
PSC iletim kuralı alt ağı | Bölgesel dahili TCP proxy yük dengeleyicisi için bir IP adresi ayırmak üzere kullanılır. |
PSC NEG alt ağı | Ağ uç noktası grubu 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. |
Karma NEG | Şirket içi ve diğer bulut hizmetleri, diğer Cloud Load Balancing arka uçları gibi ele alınır. Temel fark, bu arka uçların uç noktalarını yapılandırmak için karma bağlantı NEG kullanmanızdır. Uç noktalar, yük dengeleyicinizin Cloud VPN veya Cloud Interconnect gibi karma bağlantı ürünlerini kullanarak ulaşabileceği geçerli IP:bağlantı noktası kombinasyonları olmalıdır. |
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 karma NEG ile ilişkilendirilir. |
Cloud Router |
|
HA-VPN | Google Cloud VPC ağları arasında HA VPN. Bu topolojide, her ağda bir HA VPN ağ geçidi kullanarak iki Google Cloud VPC ağını bağlayabilirsiniz. VPC ağları aynı bölgede veya birden fazla bölgede olabilir. |
Cloud NAT | İnternet çıkışı için şirket içi demo VPC'si tarafından kullanılı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]
zone=[YOUR-ZONE]
echo $project
echo $region
Gerekli tüm hizmetleri etkinleştirin:
gcloud services enable compute.googleapis.com
7. Üretici VPC ağı oluşturma
VPC Ağı
Cloud Shell'de aşağıdakileri yapın:
gcloud compute networks create looker-psc-demo --subnet-mode custom
Alt Ağ Oluşturma
PSC alt ağı, Ağ Adresi Çevrimi amacıyla PSC hizmet ekiyle ilişkilendirilir.
Cloud Shell'de PSC NAT alt ağını oluşturun:
gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT
Cloud Shell'de üretici iletme kuralı alt ağını oluşturun:
gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access
Cloud Shell'de, üretici bölgesel proxy'si için yalnızca proxy alt ağı oluşturun:
gcloud compute networks subnets create $region-proxy-only-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$region \
--network=looker-psc-demo \
--range=10.10.10.0/24
Yük dengeleyicinin IP adresini ayırma
Cloud Shell'de yük dengeleyici için bir dahili IP adresi ayırın:
gcloud compute addresses create hybrid-neg-lb-ip \
--region=$region \
--subnet=producer-psc-fr-subnet
Cloud Shell'de ayrılmış IP adresini görüntüleyin.
gcloud compute addresses describe hybrid-neg-lb-ip \
--region=$region | grep -i address:
Örnek çıkış:
gcloud compute addresses describe hybrid-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2
Karma NEG'yi ayarlama
Karma NEG oluşturun ve –network-endpoint-type'ı NON_GCP_PRIVATE_IP_PORT olarak ayarlayın.
Cloud Shell'de, şirket içi veritabanına erişmek için kullanılan bir karma NEG oluşturun:
gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
--network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
--network=looker-psc-demo \
--zone=$zone
Cloud Shell'de, eğiticinin ilerleyen adımlarında oluşturulan şirket içi veritabanının IP:Bağlantı Noktası ile hibrit NEG'yi güncelleyin (192.168.10.4 ve 5432 numaralı bağlantı noktası):
gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
--add-endpoint=ip=192.168.10.4,port=5432 \
--zone=$zone
Bölgesel durum denetimi oluşturma
Cloud Shell'de, şirket içi veritabanı bağlantı noktası 5432'yi inceleyen bir durum denetimi oluşturun:
gcloud compute health-checks create tcp on-prem-5432-healthcheck \
--region=$region \
--port=5432
Ağ güvenlik duvarı politikası ve güvenlik duvarı kuralları oluşturma
Cloud Shell'de aşağıdakileri yapın:
gcloud compute network-firewall-policies create looker-psc-demo-policy --global
gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy
Aşağıdaki güvenlik duvarı kuralı, PSC NAT alt ağ aralığından gelen trafiğin ağdaki tüm örneklere ulaşmasına izin verir.
Cloud Shell'de aşağıdakileri yapın:
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp
8. Üretici hizmeti oluşturma
Yük Dengeleyici Bileşenleri Oluşturma
Cloud Shell'de bir arka uç hizmeti oluşturun:
gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=on-prem-5432-healthcheck --health-checks-region=$region
Cloud Shell'de, karma NEG arka ucunu arka uç hizmetine ekleyin:
gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=on-prem-hybrid-neg --network-endpoint-group-zone=$zone --balancing-mode=CONNECTION --max-connections=100 --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=producer-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 producer-hybrid-neg-fr \
--load-balancing-scheme=INTERNAL_MANAGED \
--network-tier=PREMIUM \
--network=looker-psc-demo \
--subnet=producer-psc-fr-subnet \
--address=hybrid-neg-lb-ip \
--target-tcp-proxy=producer-lb-tcp-proxy \
--target-tcp-proxy-region=$region \
--region=$region \
--ports=5432
Hizmet eki oluşturma
Cloud Shell'de onpremdatabase1-svc-attachment adlı hizmet ekini oluşturun:
gcloud compute service-attachments create onpremdatabase1-svc-attachment --region=$region --producer-forwarding-rule=producer-hybrid-neg-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet
Ardından, Looker'da PSC uç noktasını yapılandırmak için projelerle başlayan selfLink URI'sinde listelenen hizmet ekini alın ve not edin.
selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/onpremdatabase1-svc-attachment
Cloud Shell'de aşağıdakileri yapın:
gcloud compute service-attachments describe onpremdatabase1-svc-attachment --region=$region
Beklenen örnek çıkış:
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-09-01T16:07:51.600-07:00'
description: ''
enableProxyProtocol: false
fingerprint: cFt9rERR1iE=
id: '2549689544315850024'
kind: compute#serviceAttachment
name: onpremdatabase1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
high: '19348441121424360'
low: '2549689544315850024'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-hybrid-neg-fr
Cloud Console'da şuraya gidin:
Ağ Hizmetleri → Private Service Connect → Yayınlanan Hizmetler


9. Looker'da PSC uç nokta bağlantısı oluşturma
Aşağıdaki bölümde, tek bir alan için Cloud Shell'de –psc-service-attachment işaretlerini kullanarak Üreticiler Hizmet Eki'ni Looker Core PSC ile ilişkilendireceksiniz.
Cloud Shell'de, aşağıdaki parametreleri ortamınıza uygun şekilde güncelleyerek PSC ilişkilendirmesini oluşturun:
- INSTANCE_NAME: Looker (Google Cloud Core) örneğinizin adı.
- DOMAIN_1: onprem.database1.com
- SERVICE_ATTACHMENT_1: Hizmet eki oluşturulurken yakalanan URI, onpremdatabase1-svc-attachment
- BÖLGE: Looker (Google Cloud temel hizmeti) örneğinizin barındırıldığı bölge.
Cloud Shell'de aşağıdakileri yapın:
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
Örnek:
gcloud looker instances update looker-psc-instance --psc-service-attachment domain=onprem.database1.com,attachment=projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment --region=$region
Cloud Shell'de, serviceAttachments bağlantı durumunun "ACCEPTED" olduğunu doğrulayın ve Looker PSC örneğinizin adıyla güncelleyin:
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json
Örnek:
gcloud looker instances describe looker-psc-instance --region=$region --format=json
Örnek:
{
"adminSettings": {},
"createTime": "2024-08-23T00:00:45.339063195Z",
"customDomain": {
"domain": "looker.cosmopup.com",
"state": "AVAILABLE"
},
"encryptionConfig": {},
"lookerVersion": "24.14.18",
"name": "projects/$project/locations/$region/instances/looker-psc-instance",
"platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
"pscConfig": {
"allowedVpcs": [
"projects/$project/global/networks/looker-psc-demo",
"projects/$project/global/networks/looker-shared-vpc"
],
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
"serviceAttachments": [
{
"connectionStatus": "ACCEPTED",
"localFqdn": "onprem.database1.com",
"targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-09-01T23:15:07.426372901Z"
}
Cloud Console'da PSC uç noktasını doğrulama
Cloud Console'dan PSC bağlantısını doğrulayabilirsiniz.
Cloud Console'da şuraya gidin:
Looker → Looker örneği → Ayrıntılar


Şirket içi VPC ağı oluşturma
VPC Ağı
Cloud Shell'de aşağıdakileri yapın:
gcloud compute networks create on-prem-demo --project=$project --subnet-mode=custom
PostgreSQL veritabanı alt ağını oluşturma
Cloud Shell'de aşağıdakileri yapın:
gcloud compute networks subnets create database-subnet --project=$project --range=192.168.10.0/28 --network=on-prem-demo --region=$region
Cloud Shell'de, onprem.database1.com için kullanılan 192.168.10.4 dahili IPv4 adresini ayırın:
gcloud compute addresses create on-prem-database1-ip --region=$region --subnet=database-subnet --addresses 192.168.10.4
Şirket içi demo VPC için Cloud Router'ı oluşturun
Eğitimde, sanal makine örneğinde harici IP adresi bulunmadığı için yazılım paketi yükleme işlemi için Cloud NAT kullanılır.
Cloud Shell'de, Cloud NAT ve HA-VPN ile kullanılan Cloud Router'ı oluşturun:
gcloud compute routers create on-prem-cr \
--region=$region \
--network=on-prem-demo \
--asn=65002
Cloud Shell'de NAT ağ geçidini oluşturun:
gcloud compute routers nats create on-prem-nat --router=on-prem-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region $region
Veritabanı test örneğini oluşturma
Looker'a bağlantıyı test etmek ve doğrulamak için kullanılacak bir postgres-database örneği oluşturun.
Cloud Shell'de örneği oluşturun:
gcloud compute instances create postgres-database \
--project=$project \
--zone=$zone \
--machine-type=e2-medium \
--subnet=database-subnet \
--no-address \
--private-network-ip 192.168.10.4 \
--image-family debian-12 \
--image-project debian-cloud \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt -y install postgresql postgresql-client postgresql-contrib -y"
Ağ güvenlik duvarı politikası ve güvenlik duvarı kuralları oluşturma
Cloud Shell'de aşağıdakileri yapın:
gcloud compute network-firewall-policies create on-prem-demo-policy --global
gcloud compute network-firewall-policies associations create --firewall-policy on-prem-demo-policy --network on-prem-demo --name on-prem-demo --global-firewall-policy
IAP'nin sanal makine örneklerinize bağlanmasına izin vermek için aşağıdaki özellikleri içeren bir güvenlik duvarı kuralı oluşturun:
- IAP kullanarak erişmek 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 aşağıdakileri yapın:
gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy on-prem-demo-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22 --global-firewall-policy
Aşağıdaki güvenlik duvarı kuralı, yalnızca proxy alt ağ aralığından gelen trafiğin ağdaki tüm örneklere ulaşmasına izin verir.
Cloud Shell'de aşağıdakileri yapın:
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy on-prem-demo-policy --description "allow traffic from proxy only subnet" --direction INGRESS --src-ip-ranges 10.10.10.0/24 --global-firewall-policy --layer4-configs=tcp
10. Karma bağlantı
Aşağıdaki bölümde, Sınır Ağ Geçidi Protokolü'nü (BGP) kullanarak Sanal Özel Bulut (VPC) ile eş ağınız arasındaki rotaları dinamik olarak değiştirmenizi sağlayan bir Cloud Router oluşturacaksınız.
Cloud Router, ağlarınızı bağlamak için Cloud VPN tüneli üzerinden bir BGP oturumu oluşturabilir. Yeni alt ağ IP adresi aralıklarını otomatik olarak öğrenir ve bunları eş ağınıza duyurur.
Aşağıdaki adımlarda, onprem.database1.com ile hibrit NEG bağlantısını göstermek için looker-psc-demo VPC ile şirket içi-demo VPC arasında HA VPN dağıtacaksınız.
looker-psc-demo için HA VPN ağ geçidini oluşturun.
Her ağ geçidi oluşturulduğunda, her ağ geçidi arayüzü için biri olmak üzere iki harici IPv4 adresi otomatik olarak ayrılır.
Cloud Shell'de HA VPN ağ geçidini oluşturun:
gcloud compute vpn-gateways create looker-psc-demo-vpn-gw \
--network=looker-psc-demo \
--region=$region
Şirket içi demo için HA VPN ağ geçidini oluşturun
Her ağ geçidi oluşturulduğunda, her ağ geçidi arayüzü için biri olmak üzere iki harici IPv4 adresi otomatik olarak ayrılır.
Cloud Shell'de HA VPN ağ geçidini oluşturun:
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-demo\
--region=$region
HA VPN ağ geçidi oluşturma işlemini doğrulama
Konsolu kullanarak HYBRID CONNECTIVITY (Hibrit Bağlantı) → VPN → CLOUD VPN GATEWAYS (Cloud VPN Ağ Geçitleri) bölümüne gidin.

looker-psc-demo için Cloud Router oluşturun
Cloud Shell'de Cloud Router'ı oluşturun:
gcloud compute routers create looker-psc-demo-cr \
--region=$region \
--network=looker-psc-demo\
--asn=65001
looker-psc-demo için VPN tünellerini oluşturma
Her HA VPN ağ geçidinde iki VPN tüneli oluşturursunuz.
VPN tüneli oluşturma
Cloud Shell'de tunnel0'ı oluşturun:
gcloud compute vpn-tunnels create looker-psc-demo-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router looker-psc-demo-cr \
--vpn-gateway looker-psc-demo-vpn-gw \
--interface 0
VPN tüneli oluşturma
Cloud Shell'de tunnel1'i oluşturun:
gcloud compute vpn-tunnels create looker-psc-demo-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router looker-psc-demo-cr \
--vpn-gateway looker-psc-demo-vpn-gw \
--interface 1
şirket içi demo için VPN tünellerini oluşturma
Her HA VPN ağ geçidinde iki VPN tüneli oluşturursunuz.
VPN tüneli oluşturma
Cloud Shell'de tunnel0'ı oluşturun:
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway looker-psc-demo-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-prem-cr \
--vpn-gateway on-prem-vpn-gw \
--interface 0
VPN tüneli oluşturma
Cloud Shell'de tunnel1'i oluşturun:
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway looker-psc-demo-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-prem-cr \
--vpn-gateway on-prem-vpn-gw \
--interface 1
VPN tüneli oluşturma işlemini doğrulama
Konsolu kullanarak HYBRID CONNECTIVITY (Karma Bağlantı) → VPN → CLOUD VPN TUNNELS (Cloud VPN Tünelleri) bölümüne gidin.

11. BGP komşuları oluşturma
looker-psc-demo için bir BGP arayüzü ve eşleme oluşturma
Cloud Shell'de BGP arayüzünü oluşturun:
gcloud compute routers add-interface looker-psc-demo-cr \
--interface-name if-tunnel0-to-onprem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel looker-psc-demo-tunnel0 \
--region $region
Cloud Shell'de BGP eşini oluşturun:
gcloud compute routers add-bgp-peer looker-psc-demo-cr \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onprem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region $region
Cloud Shell'de BGP arayüzünü oluşturun:
gcloud compute routers add-interface looker-psc-demo-cr \
--interface-name if-tunnel1-to-onprem \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel looker-psc-demo-tunnel1 \
--region $region
Cloud Shell'de BGP eşini oluşturun:
gcloud compute routers add-bgp-peer looker-psc-demo-cr \
--peer-name bgp-on-premises-tunnel1 \
--interface if-tunnel2-to-onprem \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region $region
Şirket içi demo için BGP arayüzü ve eşleme oluşturma
Cloud Shell'de BGP arayüzünü oluşturun:
gcloud compute routers add-interface on-prem-cr \
--interface-name if-tunnel0-to-looker-psc-demo \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region $region
Cloud Shell'de BGP eşini oluşturun:
gcloud compute routers add-bgp-peer on-prem-cr \
--peer-name bgp-looker-psc-demo-tunnel0 \
--interface if-tunnel1-to-looker-psc-demo \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region $region
Cloud Shell'de BGP arayüzünü oluşturun:
gcloud compute routers add-interface on-prem-cr \
--interface-name if-tunnel1-to-looker-psc-demo \
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region $region
Cloud Shell'de BGP eşini oluşturun:
gcloud compute routers add-bgp-peer on-prem-cr \
--peer-name bgp-looker-psc-demo-tunnel1\
--interface if-tunnel2-to-looker-psc-demo \
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region $region
VPN tüneli ayrıntılarını görüntülemek için Karma BAĞLANTI → VPN'ye gidin.

HA VPN üzerinden öğrenilen looker-psc-demo rotalarını doğrulama
HA VPN tünelleri ve BGP oturumları oluşturulduktan sonra Cloud Router'ın varsayılan davranışı alt ağ rotalarını bildirmektir. View looker-psc-demo learned routes.
Konsolu kullanarak VPC ağı → VPC ağları → looker-psc-demo → ROTALAR → BÖLGE → GÖRÜNÜM'e gidin.
looker-psc-demo'nun, şirket içi-demo VPC'den 192.168.10.0/28 veritabanı alt ağını öğrendiğini gözlemleyin.

Şirket içi demo VPC'nin rotaları HA VPN üzerinden öğrendiğini doğrulama
Cloud Router'ın varsayılan davranışı tüm alt ağları bildirmek olduğundan, yalnızca proxy alt ağı BGP üzerinden bildirilir. Karma NEG, onprem.database1.com sunucusuyla iletişim kurarken kaynak adres olarak yalnızca proxy alt ağını kullanır.
Şirket içi demo'nun, looker-psc-demo'dan 10.10.10.0/24 yalnızca proxy alt ağını öğrendiğini gözlemleyin.
Konsolu kullanarak VPC ağı → VPC ağları → şirket içi demo → ROTALAR → BÖLGE → GÖRÜNÜM'e gidin.

12. Looker postgres veritabanı oluşturma
Aşağıdaki bölümde, Cloud Shell'i kullanarak postgres-database sanal makinesine SSH üzerinden bağlanacaksınız.
Cloud Shell'de postgres-database örneğine SSH yapın**:**
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"
İşletim sisteminde postgres-database örneğinin IP adresini (ens4) belirleyin ve not edin:
ip a
Örnek:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
link/ether 42:01:c0:a8:0a:04 brd ff:ff:ff:ff:ff:ff
altname enp0s4
inet 192.168.10.4/32 metric 100 scope global dynamic ens4
valid_lft 66779sec preferred_lft 66779sec
inet6 fe80::4001:c0ff:fea8:a04/64 scope link
valid_lft forever preferred_lft forever
OS'de postgresql'e giriş yapın:
sudo -u postgres psql postgres
İşletim sisteminde şifre istemini girin:
\password postgres
İşletim sisteminde şifreyi postgres olarak ayarlayın (aynı şifreyi iki kez girin):
postgres
Örnek:
user@postgres-database:~$ sudo -u postgres psql postgres
\password postgres
psql (13.11 (Debian 13.11-0+deb11u1))
Type "help" for help.
postgres=# \password postgres
Enter new password for user "postgres":
Enter it again:
İşletim sisteminde postgres'ten çıkın:
\q
Örnek:
postgres=# \q
user@postgres-database:~$
Aşağıdaki bölümde, postgres-database örneğinizin IP'sini (192.168.10.4) ve proxy'ye özel alt ağı (10.10.10.0/24) IPv4 yerel bağlantıları altındaki pg_hba.conf dosyasına ekleyeceksiniz.
sudo nano /etc/postgresql/15/main/pg_hba.conf
Aşağıdaki ekran görüntüsünde tamamlanmış güncelleme gösterilmektedir: 
Aşağıdaki bölümde, aşağıdaki ekran görüntüsünde gösterildiği gibi tüm "*" IP adreslerini dinlemek için postgresql.conf dosyasındaki yorum işaretini kaldırın:
sudo nano /etc/postgresql/15/main/postgresql.conf
Önce:

Sonra:

İşletim sisteminde postgresql hizmetini yeniden başlatın:
sudo service postgresql restart
İşletim sisteminde postgresql durumunun etkin olduğunu doğrulayın:
sudo service postgresql status
Örnek:
İşletim sisteminde postgresql durumunun etkin olduğunu doğrulayın:
user@postgres-database:/$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: active (exited) since Mon 2024-09-02 12:10:10 UTC; 1min 46s ago
Process: 20486 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 20486 (code=exited, status=0/SUCCESS)
CPU: 2ms
Sep 02 12:10:10 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Sep 02 12:10:10 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.
13. Postgres veritabanını oluşturma
Aşağıdaki bölümde, postgres_looker adlı bir postgres veritabanı ve looker_schema adlı bir şema oluşturacaksınız. Bu şema, Looker'ın şirket içi bağlantısını doğrulamak için kullanılır.
OS'de postgres'e giriş yapın:
sudo -u postgres psql postgres
İşletim sisteminde veritabanını oluşturun:
create database postgres_looker;
İşletim sisteminde veritabanını listeleyin:
\l
İşletim sisteminde, postgres_looker kullanıcısını postgreslooker şifresiyle oluşturun:
create user postgres_looker with password 'postgreslooker';
İşletim sisteminde veritabanına bağlanın:
\c postgres_looker;
İşletim sisteminde looker-schema şemasını oluşturun ve Cloud Shell istemine çıkın.
create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
Exit from the OS, returning you to cloud shell:
\q
Örnek:
user@postgres-database:/$ sudo -u postgres psql postgres
psql (15.8 (Debian 15.8-0+deb12u1))
Type "help" for help.
postgres=# create database postgres_looker;
CREATE DATABASE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------------+----------+----------+---------+---------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
postgres_looker | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
(4 rows)
postgres=# create user postgres_looker with password 'postgreslooker';
CREATE ROLE
postgres=# \c postgres_looker;
You are now connected to database "postgres_looker" as user "postgres".
postgres_looker=# create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
CREATE SCHEMA
CREATE TABLE
postgres_looker-# \q
14. Looker'ı Postgres postgres-database ile entegre etme
Aşağıdaki bölümde, şirket içi postgres-database örneğine veritabanı bağlantısı oluşturmak için Looker Console'u kullanacaksınız.
YÖNETİCİ → VERİ TABANI → BAĞLANTILAR'a gidin. BAĞLANTI EKLE'yi seçin.
Bağlantı ayrıntılarını aşağıdaki ekran görüntüsüne göre doldurun ve BAĞLAN'ı seçin.

Bağlantı artık yapılandırılmış durumda

15. Looker bağlantısını doğrulama
Aşağıdaki bölümde, Looker "test" işlemi ve TCPDUMP kullanarak Looker'ın şirket içi VPC'deki postgres veritabanına bağlantısını nasıl doğrulayacağınızı öğreneceksiniz.
Oturumun zaman aşımı varsa Cloud Shell'den postgres-database'e giriş yapın.
Cloud Shell'de aşağıdakileri yapın:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"
İşletim sisteminden, yalnızca proxy alt ağı 10.10.10.0/24 ile bir TCPDUMP filtresi oluşturun.
sudo tcpdump -i any net 10.10.10.0/24 -nn
Veri Bağlantısı'na gidin YÖNETİCİ → VERİ TABANI → BAĞLANTILAR → postgres-database → Test
Test seçildiğinde Looker, aşağıda belirtildiği gibi postgres-database'e bağlanır:

Temizleme
Tek bir Cloud Shell terminalinden laboratuvar bileşenlerini silme
gcloud compute service-attachments delete onpremdatabase1-svc-attachment --region=$region -q
gcloud compute forwarding-rules delete producer-hybrid-neg-fr --region=$region -q
gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q
gcloud compute backend-services delete producer-backend-svc --region=$region -q
gcloud compute network-firewall-policies rules delete 2001 --firewall-policy looker-psc-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy --name=looker-psc-demo --global-firewall-policy -q
gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q
gcloud compute routers nats delete on-prem-nat --router=on-prem-cr --router-region=$region -q
gcloud compute network-endpoint-groups delete on-prem-hybrid-neg --zone=$zone -q
gcloud compute addresses delete hybrid-neg-lb-ip --region=$region -q
gcloud compute vpn-tunnels delete looker-psc-demo-tunnel0 looker-psc-demo-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=$region -q
gcloud compute vpn-gateways delete looker-psc-demo-vpn-gw on-prem-vpn-gw --region=$region -q
gcloud compute routers delete looker-psc-demo-cr on-prem-cr --region=$region -q
gcloud compute instances delete postgres-database --zone=$zone -q
gcloud compute addresses delete on-prem-database1-ip --region=$region -q
gcloud compute networks subnets delete database-subnet --region=$region -q
gcloud compute network-firewall-policies rules delete 2001 --firewall-policy on-prem-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies rules delete 1000 --firewall-policy on-prem-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies associations delete --firewall-policy=on-prem-demo-policy --name=on-prem-demo --global-firewall-policy -q
gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q
gcloud compute networks subnets delete producer-psc-nat-subnet --region=$region -q
gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q
gcloud compute networks delete on-prem-demo -q
gcloud compute networks delete looker-psc-demo -q
16. Tebrikler
Tebrikler. Private Service Connect tarafından desteklenen Looker Console'u kullanarak HA-VPN üzerinden şirket içi veritabanına bağlantıyı başarıyla yapılandırdınız ve doğruladınız.
Üretici altyapısını oluşturdunuz, üretici hizmetine bağlantı sağlayan bir karma NEG, üretici hizmeti ve Looker PSC uç noktası oluşturmayı öğrendiniz.
Cosmopup, codelab'lerin harika olduğunu düşünüyor.

Yapabilecekleriniz
Şu codelab'lere göz atın:
- Hizmet yayınlamak ve kullanmak için Private Service Connect'i kullanma
- Private Service Connect ve dahili TCP Proxy yük dengeleyici kullanarak karma ağ üzerinden şirket içi hizmetlere bağlanma
- Yayınlanan tüm Private Service Connect codelab'lerine erişim