Karma ağ iletişimi üzerinden Looker Cloud'u bağlama

1. Giriş

Looker (Google Cloud çekirdeği), Google Cloud Console'dan Looker örneğinin basitleştirilmiş ve kolaylaştırılmış şekilde sağlanmasını, yapılandırılmasını ve yönetilmesini sağlar. Bazı örnek yönetimi görevleri de konsoldan gerçekleştirilebilir.

Looker (Google Cloud temel hizmeti) örnekleri için üç ağ yapılandırması kullanılabilir:

  • Herkese açık: Ağ bağlantısı, harici ve internet üzerinden erişilebilen bir IP adresi kullanır.
  • Özel: Ağ bağlantısı, Google tarafından barındırılan dahili bir Sanal Özel Bulut (VPC) IP adresi kullanır.
  • Herkese açık ve özel: Ağ bağlantısı hem herkese açık bir IP adresi hem de özel bir IP adresi kullanır. Gelen trafik herkese açık IP üzerinden, giden trafik ise özel IP üzerinden yönlendirilir.

Bu eğitimde, Looker'ın HA VPN üzerinden şirket içi VPC'ye bağlanmasını desteklemek için uçtan uca kapsamlı bir özel ağ dağıtacak ve bu ağı, çoklu bulut ve şirket içi bağlantı gereksinimlerinizi karşılayacak şekilde kopyalayabileceksiniz.

Looker (Google Cloud temel hizmeti), aşağıdaki ölçütleri karşılayan örnekler için özel IP'yi destekler:

Ne oluşturacaksınız?

Bu eğitimde, çoklu bulut ve şirket içi ile karma bağlantısı olan bağımsız bir VPC'de kapsamlı bir özel Looker ağı dağıtımı oluşturacaksınız.

Şirket içi ortamı temsil etmek için on-prem-vpc adlı bir VPC ağı oluşturacaksınız. Dağıtımınızda on-prem-vpc mevcut olmaz. Bunun yerine, şirket içi veri merkezinize veya bulut sağlayıcınıza hibrit ağ oluşturma kullanılır.

Eğitimin başlıca adımları aşağıda verilmiştir.

  1. us-central1 bölgesinde bağımsız bir VPC oluşturma
  2. Özel hizmet erişimine bir IP alt ağı ayırma
  3. Looker örneğini bağımsız VPC'ye dağıtma
  4. Şirket içi VPC ve hibrit ağ oluşturma
  5. BGP üzerinden Looker IP aralığını duyurma ve doğrulama
  6. Looker ve PostgreSQL veri iletişimini entegre etme ve doğrulama

Figure1

8436cc4802b670db.png

Neler öğreneceksiniz?

  • VPC ve ilişkili hibrit ağ oluşturma
  • Looker'ı bağımsız bir VPC'ye dağıtma
  • Şirket içi VPC ve ilişkili hibrit ağ oluşturma
  • Şirket içi VPC'yi HA VPN üzerinden analytics-vps ile bağlayın
  • Karma ağ iletişimi üzerinden Looker alt ağlarının reklamını yapma
  • Karma ağ altyapısını izleme
  • PostgreSQL veritabanını Looker Bulutu Core ile entegre etme

Gerekenler

  • Google Cloud projesi

IAM İzinleri

2. Başlamadan önce

Projeyi, eğitimi destekleyecek şekilde güncelleme

Bu eğitimde, Cloud Shell'de gcloud yapılandırmasının uygulanmasına yardımcı olmak için $değişkenleri kullanılır.

Cloud Shell'de aşağıdakileri yapın:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

3. VPC Kurulumu

analytics-vpc'yi oluşturun

Cloud Shell'de aşağıdakileri yapın:

gcloud compute networks create analytics-vpc --project=$projectid --subnet-mode=custom

Şirket içi VPC oluşturma

Cloud Shell'de aşağıdakileri yapın:

gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom

PostgreSQL veritabanı alt ağı oluşturma

Cloud Shell'de aşağıdakileri yapın:

gcloud compute networks subnets create database-subnet-us-central1 --project=$projectid --range=172.16.10.0/27 --network=on-prem-vpc --region=us-central1

Cloud Router ve NAT yapılandırması

Veritabanı sanal makine örneğinde harici IP adresi bulunmadığı için yazılım paketi yükleme eğitiminde Cloud NAT kullanılır.

Cloud Shell'de Cloud Router'ı oluşturun.

gcloud compute routers create on-prem-cr-us-central1-nat --network on-prem-vpc --region us-central1

Cloud Shell'de NAT ağ geçidini oluşturun.

gcloud compute routers nats create on-prem-nat-us-central1 --router=on-prem-cr-us-central1-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

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=$projectid \
    --zone=us-central1-a \
    --machine-type=e2-medium \
    --subnet=database-subnet-us-central1 \
    --no-address \
   --image=projects/ubuntu-os-cloud/global/images/ubuntu-2304-lunar-amd64-v20230621 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt -y install postgresql postgresql-client postgresql-contrib -y"

Güvenlik Duvarı Kuralları Oluşturma

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'den

gcloud compute firewall-rules create on-prem-ssh \
    --network on-prem-vpc --allow tcp:22 --source-ranges=35.235.240.0/20

4. Özel hizmet erişimi

Özel hizmetlere erişim, VPC ağınız ile Google'ın veya üçüncü tarafın sahip olduğu bir ağ arasında kurulan özel bir bağlantıdır. Google veya üçüncü taraf, hizmet sağlayan tüzel kişiler de hizmet üreticileri olarak bilinir. Looker Bulutu Core, bir hizmet üreticidir.

Özel bağlantı, VPC ağınızdaki sanal makine örneklerinin ve eriştiğiniz hizmetlerin yalnızca dahili IP adreslerini kullanarak iletişim kurmasını sağlar.

Özetle, özel hizmet erişimini kullanmak için VPC ağınızda bir IP adresi aralığı (CIDR bloğu) ayırmanız ve ardından bir hizmet üreticisine özel bağlantı oluşturmanız gerekir.

Hizmetler için IP adresi aralığı ayırma

Özel bağlantı oluşturmadan önce, hizmet üreticinin VPC ağı tarafından kullanılacak bir IPv4 adresi aralığı ayırmanız gerekir. Bu, VPC ağınız ile hizmet üreticinin ağı arasında IP adresi çakışması olmamasını sağlar.

VPC ağınızda bir aralık ayırdığınızda bu aralık, alt ağlar (birincil ve ikincil aralıklar) ve özel statik rotaların hedefleri için uygun olmaz.

Özel hizmetlere erişim için IPv6 adres aralıklarının kullanılması desteklenmez.

Google Cloud Console'da projeniz için Service Networking API'yi etkinleştirin. API'yi etkinleştirirken, API'nin etkinleştirildiğini onaylamak için konsol sayfasını yenilemeniz gerekebilir.

IP ayırma oluşturma

Bir adres aralığı ve önek uzunluğu (alt ağ maskesi) belirtmek için adresleri ve önek uzunluğu işaretlerini kullanın. Örneğin, 192.168.0.0/22 CIDR bloğunu ayırmak için adres olarak 192.168.0.0'ı, önek uzunluğu olarak da 22'yi belirtin.

Cloud Shell'de Looker için IP ayırma işlemi oluşturun.

gcloud compute addresses create psa-range-looker \
    --global \
    --purpose=VPC_PEERING \
    --addresses=192.168.0.0 \
    --prefix-length=22 \
    --description="psa range for looker" \
    --network=analytics-vpc

Cloud Shell'de IP ayırmayı doğrulayın.

gcloud compute addresses list --global --filter="purpose=VPC_PEERING"

Örnek:

userl@cloudshell$ gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
NAME: psa-range-looker
ADDRESS/RANGE: 192.168.0.0/22
TYPE: INTERNAL
PURPOSE: VPC_PEERING
NETWORK: analytics-vpc
REGION: 
SUBNET: 
STATUS: RESERVED

Özel bağlantı oluşturma

Ayrılmış bir aralık oluşturduktan sonra, hizmet üreticisi Looker Bulutu Core'a özel bağlantı oluşturabilirsiniz. Özel bağlantı, Looker örneği oluşturulduktan sonra VPC ağınız ile hizmet üreticinin ağı arasında VPC Ağ Eşleme bağlantısı kurar.

Özel bağlantılar, VPC ağınız ile bir hizmet üreticisi arasındaki bire bir ilişkidir. Tek bir hizmet üreticisi birden fazla hizmet sunuyorsa üreticinin tüm hizmetleri için yalnızca bir özel bağlantı gerekir.

Birden fazla hizmet üreticisine bağlanıyorsanız her hizmet üreticisi için benzersiz bir ayırma kullanın. Bu uygulama, her hizmet üreticisi için rotalar ve güvenlik duvarı kuralları gibi ağ ayarlarınızı yönetmenize yardımcı olur.

Cloud Shell'de özel bir bağlantı oluşturun ve işlem adını not edin.

gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=psa-range-looker \
    --network=analytics-vpc

Örnek:

user@cloudshell$ gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=psa-range-looker \
    --network=analytics-vpc
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.

Cloud Shell'de işlemin başarılı olup olmadığını kontrol edin. OPERATION_NAME'i önceki adımda oluşturulan adla değiştirin.

gcloud services vpc-peerings operations describe \
    --name=OPERATION_NAME

Örnek:

user@cloudshell$ gcloud services vpc-peerings operations describe \
    --name=operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.

5. Looker (Google Cloud temel hizmeti) örneği oluşturma

Başlamadan önce

Google Cloud Console'da projeniz için Looker API 'yi etkinleştirin. API'yi etkinleştirirken, API'nin etkinleştirildiğini onaylamak için konsol sayfasını yenilemeniz gerekebilir.

Örneğe kimlik doğrulaması yapmak ve erişmek için OAuth istemcisi oluşturun.

Aşağıdaki bölümde, Looker örneğini oluşturmak için OAuth istemci kimliğini ve gizli anahtarını kullanmanız gerekir.

Yetkilendirilmiş JavaScript kaynakları ve yönlendirme URI'leri gerekli değildir.

103601bca0b6ebe8.png

Cloud Console'da, sağlanan ekran görüntülerine göre bir örnek oluşturun.

LOOKER → CREATE AN INSTANCE'a (LOOKER → ÖRNEK OLUŞTUR) gidin.

Daha önce oluşturulan OAuth istemci kimliğini ve gizli anahtarını doldurun.

b780ed751824176c.png

3fe880e26a81a756.png

91acffd74c68a067.png

OLUŞTUR'u seçin.

Örnek oluşturulurken konsoldaki Örnekler sayfasına yönlendirilirsiniz. Yeni örneğinizin durumunu görmek için sayfayı yenilemeniz gerekebilir. Google Cloud Console menüsündeki bildirimler simgesini tıklayarak da örnek oluşturma etkinliğinizi görebilirsiniz. Örneğiniz oluşturulurken Google Cloud Console menüsündeki bildirimler simgesinin etrafında bir yükleme simgesi görünür.

Looker örneği oluşturulduktan sonra bir örnek URL'si oluşturulur. URL'yi not edin.

5ac8a1b8b438dce6.png

6. OAuth 2.0 istemci kimliğini güncelleme

Aşağıdaki bölümde, örnek URL'sine /oauth2callback ekleyerek daha önce oluşturulan OAuth istemci kimliği Yetkili yönlendirme URI'sini güncellemeniz gerekir.

İşlem tamamlandıktan sonra Looker kullanıcı arayüzüne giriş yapmak için örnek URL'yi kullanabilirsiniz.

Cloud Console'da API'LER VE HİZMETLER → KİMLİK BİLGİLERİ'ne gidin.

OAuth 2.0 istemci kimliğinizi seçin ve örnekteki gibi örnek URL'nizi güncelleyin:

793c5b82ec34fb1f.png

7. Looker erişimini doğrulama

Cloud Console'da Looker'a gidin ve Looker kullanıcı arayüzünü açacak örnek URL'nizi seçin.

9d132a67c532279e.png

Özellik kullanıma sunulduktan sonra, Looker Cloud Core'a erişiminizi onaylayan aşağıdaki ekran görüntüsündeki gibi bir açılış sayfası gösterilir.

b77055fd674f8a69.png

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

Bu eğitimde, Looker'a özel bağlantıyı göstermek için analytics-vpc ve şirket içi-vpc arasında HA VPN dağıtacaksınız.

analytics-vpc 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. Yapılandırma adımlarında daha sonra kullanmak üzere bu IP adreslerini not edin.

Cloud Shell'de HA VPN ağ geçidini oluşturun.

gcloud compute vpn-gateways create analytics-vpn-gw \
   --network=analytics-vpc\
   --region=us-central1

şirket içi-vpc 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. Yapılandırma adımlarında daha sonra kullanmak üzere bu IP adreslerini not edin.

Cloud Shell'de HA VPN ağ geçidini oluşturun.

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-vpc\
   --region=us-central1

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.

a3973b2bbb832bae.png

analytics-vpc için Cloud Router oluşturun

Cloud Shell'de us-central1 bölgesinde bulunan Cloud Router'ı oluşturun.

gcloud compute routers create analytics-cr-us-central1 \
   --region=us-central1 \
   --network=analytics-vpc\
   --asn=65001

Şirket içi VPC için Cloud Router oluşturun

Cloud Shell'de us-central1 bölgesinde bulunan Cloud Router'ı oluşturun.

gcloud compute routers create on-prem-cr-us-central1 \
   --region=us-central1 \
   --network=on-prem-vpc \
   --asn=65002

analytics-vpc için VPN tünellerini oluşturun

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 analytics-vpc-tunnel0 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router analytics-cr-us-central1 \
    --vpn-gateway analytics-vpn-gw \
    --interface 0

VPN tüneli oluşturma

Cloud Shell'de tunnel1'i oluşturun:

gcloud compute vpn-tunnels create analytics-vpc-tunnel1 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router analytics-cr-us-central1 \
    --vpn-gateway analytics-vpn-gw \
    --interface 1

Şirket içi VPC için VPN tünellerini oluşturun

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 analytics-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router on-prem-cr-us-central1 \
    --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 analytics-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router on-prem-cr-us-central1 \
    --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.

61c09b3d3102149d.png

9. BGP komşuları oluşturma

BGP oturumları oluşturma

Bu bölümde, Cloud Router arayüzlerini ve BGP eşlerini yapılandıracaksınız.

analytics-vpc için BGP arayüzü ve eşleme oluşturma

Cloud Shell'de BGP arayüzünü oluşturun:

gcloud compute routers add-interface analytics-cr-us-central1 \
    --interface-name if-tunnel0-to-onprem \
    --ip-address 169.254.1.1 \
    --mask-length 30 \
    --vpn-tunnel analytics-vpc-tunnel0 \
    --region us-central1

Cloud Shell'de BGP eşini oluşturun:

gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel0 \
    --interface if-tunnel1-to-onprem \
    --peer-ip-address 169.254.1.2 \
    --peer-asn 65002 \
    --region us-central1

Cloud Shell'de BGP arayüzünü oluşturun:

gcloud compute routers add-interface analytics-cr-us-central1 \
    --interface-name if-tunnel1-to-onprem \
    --ip-address 169.254.2.1 \
    --mask-length 30 \
    --vpn-tunnel analytics-vpc-tunnel1 \
    --region us-central1

Cloud Shell'de BGP eşini oluşturun:

gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel1 \
    --interface if-tunnel2-to-onprem \
    --peer-ip-address 169.254.2.2 \
    --peer-asn 65002 \
    --region us-central1

Şirket içi VPC 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-us-central1 \
    --interface-name if-tunnel0-to-analytics-vpc \
    --ip-address 169.254.1.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel0 \
    --region us-central1

Cloud Shell'de BGP eşini oluşturun:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-analytics-vpc-tunnel0 \
    --interface if-tunnel1-to-analytics-vpc \
    --peer-ip-address 169.254.1.1 \
    --peer-asn 65001 \
    --region us-central1

Cloud Shell'de BGP arayüzünü oluşturun:

gcloud compute routers add-interface on-prem-cr-us-central1 \
    --interface-name if-tunnel1-to-analytics-vpc \
    --ip-address 169.254.2.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel1 \
    --region us-central1

Cloud Shell'de BGP eşini oluşturun:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-analytics-vpc-tunnel1\
    --interface if-tunnel2-to-analytics-vpc \
    --peer-ip-address 169.254.2.1 \
    --peer-asn 65001 \
    --region us-central1

VPN tüneli ayrıntılarını görüntülemek için Karma BAĞLANTI → VPN'ye gidin.

ddd4a8f851d44fd6.png

HA VPN üzerinden analytics-vpc tarafından öğrenilen rotaları doğrulama

HA VPN tünelleri ve BGP oturumları oluşturulduğundan şirket içi-vpc'deki rotalar analytics-vpc'den öğrenilir. Konsolu kullanarak VPC ağı → VPC ağları → analytics-vpc → ROTALAR → BÖLGE → us-central1 → GÖRÜNÜM'e gidin.

analytics-vpc'nin, şirket içi-vpc veritabanı-alt ağı-us-central1 172.16.10.0/27'den rotaları öğrendiğini gözlemleyin.

57c7898390db4bcb.png

Şirket içi VPC'nin HA VPN üzerinden rota öğrenmediğini doğrulayın.

analytics-vpc'de alt ağ olmadığından Cloud Router, şirket içi-vpc'ye herhangi bir alt ağ bildirmez . Konsolu kullanarak VPC ağı → VPC ağları → şirket içi-vpc → ROTALAR → BÖLGE → us-central1 → GÖRÜNÜM'e gidin.

5b007e46a7c7026.png

10. Looker alt ağının şirket içi ağda reklamını yapma

Looker Özel Hizmet Erişimi (PSA) alt ağı, alt ağ VPC'ye değil PSA'ya atandığından analytics-cr-us-central1 Cloud Router tarafından otomatik olarak duyurulmaz.

Şirket içi ortamda reklamı yapılacak ve iş yükleri tarafından Looker'a erişmek için kullanılacak olan PSA alt ağı 192.168.0.0/22 (psa-range-looker) için analytics-cr-central1'den özel bir rota bildirme oluşturmanız gerekir.

Konsolda HYBRID CONNECTIVITY → CLOUD ROUTERS → analytics-cr-us-central1'e gidin ve EDIT'i (DÜZENLE) seçin.

Reklamı yapılan rotalar bölümünde Özel rotalar oluştur seçeneğini belirleyin, alanları aşağıdaki örneğe göre güncelleyin, BİTTİ'yi seçin ve ardından KAYDET'i tıklayın.

87f95ee3d1cd8521.png

11. Şirket içi VPC'nin Looker alt ağını öğrendiğini doğrulayın.

Şirket içi VPC, özel rota bildirme olarak analytics-cr-us-central1'den reklamı yapıldığından artık Looker PSA alt ağına erişebilir.

Konsolu kullanarak VPC NETWORK → VPC NETWORKS → şirket içi-vpc → ROUTES → REGION → us-central1 → VIEW'a (VPC AĞI → VPC AĞLARI → şirket içi-vpc → ROTALAR → BÖLGE → us-central1 → GÖRÜNÜM) gidin.

analytics-vpc'den bildirilen Looker rotalarını gözlemleyin:

a987a76fd57ddedd.png

12. Mevcut VPC eşlemeyi doğrulama

Looker Bulutu Core ile analytics-vpc arasındaki bağlantı, BGP aracılığıyla öğrenilen özel rotaların değişimine olanak tanıyan VPC eşlemesi üzerinden yapılır. Eğitimde, analytics-vpc'nin şirket içi vpc tarafından öğrenilen rotaları Looker'da yayınlaması gerekir. Bu işlevin etkinleştirilmesi için VPC eşlemenin özel rotaları dışa aktarmak üzere güncellenmesi gerekir.

Mevcut içe ve dışa aktarılan rotaları doğrulayın.

VPC AĞI → VPC AĞI EŞLEME → servicenetworking-googleapis-com'a gidin.

f6d9395712934cd8.png

Aşağıdaki ekran görüntüsünde, Google tarafından yönetilen eşlenmiş VPC ağı olan servicesnetworking'den psa-range-looker'ı içe aktaran analytics-vpc'nin ayrıntıları verilmektedir.

86a0e8c3534c6986.png

EXPORTED ROUTES (Dışa Aktarılan Rotalar) seçildiğinde, 1) alt ağlar analytics-vpc'de yapılandırılmadığı ve 2) özel rotaları dışa aktar seçeneği belirlenmediği için eşlenmiş VPC ağına dışa aktarılan rota olmadığı gösteriliyor.

a52de427fa73fb22.png

13. VPC eşlemeyi güncelleme

VPC AĞI → VPC AĞI EŞLEME → servicenetworking-googleapis-com → DÜZENLE'ye gidin.

ÖZEL ROTAYI DIŞA AKTAR → KAYDET'i seçin.

a2309e4c3a7cee80.png

14. Güncellenen VPC eşlemeyi doğrulama

Dışa aktarılan rotaları doğrulayın.

VPC AĞI → VPC AĞI EŞLEME → servicenetworking-googleapis-com'a gidin.

EXPORTED ROUTES (Dışa Aktarılan Rotalar) seçildiğinde, şirket içi VPC rotalarının (veritabanı alt ağı 172.16.10.0/27) analytics-vpc tarafından Looker'ı barındıran eşlenmiş VPC ağına aktarıldığı gösterilir.

47e953268d78a469.png

15. 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 "us-central1-a" "postgres-database" --project "$projectid"

İşletim sistemi içinde postgres-database örneğinin IP adresini (ens4) belirleyin ve not edin.

ip a

Örnek:

user@postgres-database:~$ ip a
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 
       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:ac:10:0a:02 brd ff:ff:ff:ff:ff:ff
    altname enp0s4
    inet 172.16.10.2/32 metric 100 scope global dynamic ens4
       valid_lft 84592sec preferred_lft 84592sec
    inet6 fe80::4001:acff:fe10:a02/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 adresini ve Looker Özel Google Erişimi alt ağını (192.168.0.0/22) aşağıdaki ekran görüntüsünde gösterildiği gibi pg_hba.conf dosyasındaki IPv4 yerel bağlantıları altına ekleyeceksiniz:

178364a8ee9b6233.png

sudo nano /etc/postgresql/15/main/pg_hba.conf

Aşağıdaki bölümde, postgresql.conf dosyasındaki tüm "*" IP adreslerini dinlemek için aşağıdaki ekran görüntüsünde gösterildiği gibi yorum işaretini kaldırın:

sudo nano /etc/postgresql/15/main/postgresql.conf

Önce:

aad52092c0a9408.png

Sonra:

7e80b916d29e097c.png

İşletim sistemi içinde 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 Sat 2023-07-01 23:40:59 UTC; 7s ago
    Process: 4073 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 4073 (code=exited, status=0/SUCCESS)
        CPU: 2ms

Jul 01 23:40:59 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Jul 01 23:40:59 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.

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

İşletim sistemi içinde postgres'e giriş yapın.

sudo -u postgres psql postgres

İşletim sistemi içinde veritabanını oluşturun.

create database postgres_looker;

İşletim sistemi içinde veritabanını listeleyin.

\l

İşletim sisteminde, kullanıcıyı şifreyle 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

Örnek:

user@postgres-database$ sudo -u postgres psql postgres
psql (15.3 (Ubuntu 15.3-0ubuntu0.23.04.1))
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 SCHEMA
postgres_looker=# create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
CREATE TABLE
postgres_looker=# exit

İşletim sisteminden çıkıp Cloud Shell'e geri dönersiniz.

\q
exit

17. Şirket içi VPC'de güvenlik duvarı oluşturma

Aşağıdaki bölümde, Looker alt ağının postgres-database örneğiyle iletişim kurmasına izin veren, günlük kaydı içeren bir giriş güvenlik duvarı oluşturun.

Cloud Shell'den şirket içi-VPC güvenlik duvarını oluşturun.

gcloud compute --project=$projectid firewall-rules create looker-access-to-postgres --direction=INGRESS --priority=1000 --network=on-prem-vpc --action=ALLOW --rules=all --source-ranges=192.168.0.0/22 --enable-logging

18. analytics-vpc'de özel DNS oluşturma

Looker, Google tarafından yönetilen bir VPC'ye dağıtılsa da analytics-vpc özel DNS'sine erişim, hizmetler ağı ile eşleme üzerinden desteklenir.

Aşağıdaki bölümde, postgres-database örneğinin Tam Etki Alanı Adı (postgres.analytics.com)ve IP adresi) A kaydını içeren analytics-vpc'de bir özel DNS bölgesi oluşturacaksınız.

Cloud Shell'den analytics.com özel bölgesini oluşturun.

gcloud dns --project=$projectid managed-zones create gcp-private-zone --description="" --dns-name="analytics.com." --visibility="private" --networks="https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/analytics-vpc"

Cloud Shell'den postgres-database örneğinin IP adresini belirleyin.

gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:

Örnek:

user@cloudshell$ gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
  networkIP: 172.16.10.2

Cloud Shell'den A kaydını oluşturun ve daha önce tanımlanan IP adresini eklediğinizden emin olun.

gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="your-postgres-database-ip"

Örnek:

user@cloudshell$ gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="172.16.10.2"
NAME: postgres.analytics.com.
TYPE: A
TTL: 300
DATA: 172.16.10.2

Cloud Shell'den dns-suffix analytics.com ile hizmet ağı arasında eşleme oluşturarak Looker'ın analytics-vpc özel bölgesine erişmesine izin verin.

gcloud services peered-dns-domains create looker-com --network=analytics-vpc --service=servicenetworking.googleapis.com --dns-suffix=analytics.com.

19. 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 Cloud Console'u kullanacaksınız.

Cloud Console'da Looker'a gidin ve Looker kullanıcı arayüzünü açacak örnek URL'nizi seçin.

9d132a67c532279e.png

Özellik kullanıma sunulduktan sonra aşağıdaki ekran görüntüsünde gösterilen açılış sayfasıyla karşılaşırsınız.

b77055fd674f8a69.png

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.

c8cca15252c2020d.png

Bağlantı artık başarılı

3e51b7e2cc62fb45.png

20. 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-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"

İşletim sisteminden, 192.168.0.0/22 alt ağıyla bir TCPDUMP filtresi oluşturun.

sudo tcpdump -i any net 192.168.0.0/22 -nn

Veri Bağlantısı'na gidin YÖNETİCİ → VERİ TABANI → BAĞLANTILAR → Seç → Test

Test seçildiğinde Looker, aşağıda belirtildiği gibi postgres veritabanına başarıyla bağlanır:

ef25b837b6a41fe.png

OS terminaline geri dönün ve TCPDUMP'nin, psc-range-looker'ın şirket içi postgres-database örneğine bağlandığını tanımladığını doğrulayın.

PSA aralığındaki tüm IP'lerin Looker'da gösterileceğine dair bir not ekleyin.

user@postgres-database$ sudo tcpdump -i any net 192.168.0.0/22 -nn
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
00:16:55.121631 ens4  In  IP 192.168.1.24.46892 > 172.16.10.2.5432: Flags [S], seq 2221858189, win 42600, options [mss 1366,sackOK,TS val 4045928414 ecr 0,nop,wscale 7], length 0
00:16:55.121683 ens4  Out IP 172.16.10.2.5432 > 192.168.1.24.46892: Flags [S.], seq 1464964586, ack 2221858190, win 64768, options [mss 1420,sackOK,TS val 368503074 ecr 4045928414,nop,wscale 7], length 0

21. Güvenlik Önerileri

Looker ve Postgres veritabanının güvenliğini sağlamayla ilgili birkaç güvenlik önerisi ve en iyi uygulama vardır. Bunlardan bazıları:

  • Looker için en az ayrıcalıklı veritabanı hesabı izinlerini ayarlama. Bu izinler, Looker'ın gerekli işlevleri gerçekleştirmesine olanak tanır.
  • İstemci ile Looker kullanıcı arayüzü ve Looker ile veritabanı arasında geçiş halindeki veriler TLS 1.2+ kullanılarak şifrelenir.
  • Aktif olmayan veriler varsayılan olarak şifrelenir. Müşteri, Looker örnekleri ( https://cloud.google.com/looker/docs/looker-core-cmek) ve Postgres ( https://cloud.google.com/sql/docs/postgres/configure-cmek) için CMEK'den de yararlanabilir.
  • Looker Erişim Denetimi: Looker yöneticileri, içerik erişimi, veri erişimi ve özellik erişimi vererek bir asılın veya kullanıcı grubunun Looker'da görebileceği ve yapabileceği işlemleri kontrol edebilir. Bu seçenekler, Looker yöneticisinin Model ve izin grubu içeren belirli roller tanımlamasına ve verilere ayrıntılı erişim denetimi oluşturmasına olanak tanır.
  • Looker, kimin neyi, ne zaman ve nerede yaptığını kaydeden denetleme günlüklerini ve veri erişimi günlüklerini destekler. Denetleme günlükleri varsayılan olarak etkindir. Veri erişimi günlüklerinin ise açıkça etkinleştirilmesi gerekir.
  • VPC-SC şu anda yalnızca özel IP ile yapılandırılmış Enterprise ve Embed örneklerini desteklemektedir.

22. Temizleme

Looker Cloud Core örneğini silin. Şuraya gidin:

LOOKER → looker-tutorial → DELETE

e5a2e3af9e7ffd40.png

Cloud Shell'den eğitim bileşenlerini silin.

gcloud compute vpn-tunnels delete analytics-vpc-tunnel0 analytics-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet

gcloud compute vpn-gateways delete analytics-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet

gcloud compute routers delete analytics-cr-us-central1 on-prem-cr-us-central1 on-prem-cr-us-central1-nat --region=us-central1 --quiet

gcloud compute instances delete postgres-database --zone=us-central1-a --quiet

gcloud compute networks subnets delete database-subnet-us-central1 --region=us-central1 --quiet

gcloud compute firewall-rules delete looker-access-to-postgres on-prem-ssh --quiet

gcloud dns record-sets delete postgres.analytics.com. --type=A --zone=gcp-private-zone
        
gcloud dns managed-zones delete gcp-private-zone

gcloud compute networks delete on-prem-vpc --quiet

gcloud compute addresses delete psa-range-looker --global --quiet

gcloud compute networks delete analytics-vpc --quiet

23. Tebrikler

Tebrikler. Şirket içi ve çoklu bulut ortamları arasında veri iletişimini sağlayan karma ağ üzerinden Looker bağlantısını başarıyla yapılandırdınız ve doğruladınız.

Ayrıca, Looker'ın Connect "Test" aracını ve postgres-veritabanı örneğinde TCPDUMP'ı kullanarak Looker Bulut Çekirdeği'nin postgres-veritabanı'na bağlantısını başarıyla test edebildiniz.

Cosmopup, eğitici içeriklerin harika olduğunu düşünüyor.

e6d3675ca7c6911f.jpeg

Daha fazla bilgi ve videolar

Referans belgeler