Looker PSA Southbound HTTPS Internet NEG

Informacje o tym ćwiczeniu (w Codelabs)
schedule38 minut
subjectOstatnia aktualizacja: 2 kwietnia 2025
account_circleAutorzy: Deepak Michael, Emanuele Mazza

Konfiguracja z prywatnym i publicznym adresem IP jest obsługiwana tylko w przypadku instancji Lookera (podstawowej usługi Google Cloud), które korzystają z dostępu do usług prywatnych na potrzeby połączenia prywatnego.

Instancja Lookera (podstawowej usługi Google Cloud), która ma zarówno prywatne połączenie IP (dostęp do usług prywatnych), jak i publiczne połączenie IP, ma publiczny adres URL, a cały ruch przychodzący będzie przechodzić przez publiczne połączenie IP. Ruch wychodzący jest kierowany przez sieć VPC, którą można skonfigurować tak, aby zezwalała tylko na ruch z prywatnych adresów IP (jak pokazano na rysunku 1).

Figure1

9f587c14791dd92e.png

Komunikacja z github.com jest mapowana na publiczny adres IP, dlatego jest niedostępna z instancji Lookera wdrożonej jako prywatna lub publiczna.

W tym laboratorium kodu utworzysz połączenie HTTPS z GitHubem za pomocą wewnętrznego systemu równoważenia obciążenia serwerów TCP i grupy punktów końcowych sieci (NEG) wywoływanej z poziomu PSA w Lookerze.

Czego się nauczysz

  • Wymagania związane z siecią
  • Nawiązywanie połączenia z GitHub z poziomu Lookera za pomocą testowego połączenia

Czego potrzebujesz

5348de53f0a78a50.png

2. Co utworzysz

Wdrożysz wewnętrzny system równoważenia obciążenia proxy TCP i NEG internetowy skonfigurowany z rozwiązanym adresem IP github.com, który korzysta z Cloud NAT do wychodzącego ruchu internetowego do organizacji github.com rozwiązanych przez Lookera.

3. Wymagania związane z siecią

Poniżej znajdziesz zestawienie wymagań dotyczących sieci:

Komponenty

Opis

VPC ($vpc_network)

Sieć VPC w trybie niestandardowym

reguła przekierowania podsieci

Służy do przydzielenia adresu IP dla regionalnego wewnętrznego systemu równoważenia obciążenia TCP serwera proxy.

Podsieć tylko-proxy

Każdemu proxy systemu równoważenia obciążenia przypisany jest wewnętrzny adres IP. Pakiety wysyłane z serwera proxy do maszyny wirtualnej lub punktu końcowego backendu mają źródłowy adres IP z podsieci tylko-proxy.

Internetowa grupa punktów końcowych sieci

Zasób używany do zdefiniowania zewnętrznego backendu systemu równoważenia obciążenia. Punkt końcowy nie może być dostępny tylko przez Cloud VPN lub Cloud Interconnect.

Usługa backendu

Usługa backendu pełni funkcję łącznika między systemem równoważenia obciążenia a zasobami backendu. W samouczku usługa backendu jest powiązana z NEG w internecie.

Cloud Router

Cloud NAT korzysta z routerów Cloud Router w celu korzystania z funkcji platformy sterującej, ale nie do zarządzania sesjami BGP.

Cloud NAT

Regionalna internetowa grupa punktów końcowych sieci korzysta z usługi Cloud NAT do wychodzącego ruchu internetowego.

4. Topologia ćwiczenia z programowania

c5871e5418d37f13.png

5. Konfiguracja i wymagania

Konfiguracja środowiska w samodzielnym tempie

  1. Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, którego nie używają interfejsy API Google. Zawsze możesz ją zaktualizować.
  • Identyfikator projektu jest niepowtarzalny we wszystkich projektach Google Cloud i nie można go zmienić (po ustawieniu). Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie ma znaczenia, jaki to ciąg. W większości laboratoriów z kodem musisz podać identyfikator projektu (zwykle oznaczony jako PROJECT_ID). Jeśli nie podoba Ci się wygenerowany identyfikator, możesz wygenerować inny losowy. Możesz też spróbować użyć własnego adresu e-mail, aby sprawdzić, czy jest on dostępny. Po wykonaniu tego kroku nie można go zmienić. Pozostanie on na stałe w ramach projektu.
  • Informacyjnie: istnieje jeszcze 3 wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o wszystkich 3 wartościach znajdziesz w dokumentacji.
  1. Następnie musisz włączyć rozliczenia w konsoli Cloud, aby korzystać z zasobów i interfejsów API Cloud. Przejście przez ten samouczek nie będzie wiązać się z wysokimi kosztami, a być może nawet nie będzie trzeba nic płacić. Aby wyłączyć zasoby i uniknąć obciążenia opłatami po zakończeniu samouczka, możesz usunąć utworzone zasoby lub usunąć projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.

Uruchomienie Cloud Shell

Google Cloud można obsługiwać zdalnie z laptopa, ale w tym przypadku będziesz korzystać z Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.

W konsoli Google Cloud kliknij ikonę Cloud Shell na pasku narzędzi w prawym górnym rogu:

55efc1aaa7a4d3ad.png

Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po jego zakończeniu powinno wyświetlić się coś takiego:

7ffe5cbb04455448.png

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie poprawia wydajność sieci i uwierzytelnianie. Wszystkie zadania w tym CodeLab możesz wykonać w przeglądarce. Nie musisz niczego instalować.

6. Zanim zaczniesz

Włącz interfejsy API

W Cloud Shell sprawdź, czy identyfikator projektu jest skonfigurowany:

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

Włącz wszystkie niezbędne usługi:

gcloud services enable compute.googleapis.com

7. Komponenty sieci VPC

Sieć VPC

W tym samouczku zakładamy, że masz już instancję PSA Looker, a więc powiązana sieć VPC jest już utworzona.

W Cloud Shell utwórz podsieć reguły przekierowania:

gcloud compute networks subnets create psa-fr-subnet --network $vpc_network --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

W Cloud Shell utwórz regionalną podsieć tylko-proxy:

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

Tworzenie bramy Public NAT

Brama NAT jest używana przez regionalny wewnętrzny system równoważenia obciążenia serwera proxy TCP do wychodzącego połączenia z internetem z opcją konfiguracji –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB, dlatego ta sama brama NATGW nie obsługuje wychodzącego połączenia z internetem w przypadku GCE/GKE. Wdrożyć dodatkową bramę NAT z parametrem –endpoint-types=ENDPOINT_TYPE_VM na potrzeby wychodzącego połączenia z internetem w GCE/GKE.

W Cloud Shell utwórz router Cloud Router:

gcloud compute routers create $vpc_network-cloud-router --network $vpc_network --region $region

W Cloud Shell utwórz bramę Cloud NAT, która umożliwi wychodzący ruch internetowy dla systemu równoważenia obciążenia serwera proxy TCP:

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

Rezerwowanie adresu IP systemu równoważenia obciążenia

W Cloud Shell zarezerwuj wewnętrzny adres IP dla systemu równoważenia obciążenia, który będzie później używany jako rekord DNS A dla github.com:

gcloud compute addresses create internet-neg-lb-ip \
  --region=$region \
  --subnet=psa-fr-subnet

W Cloud Shell wyświetl zarezerwowany adres IP:

gcloud compute addresses describe internet-neg-lb-ip \
  --region=$region | grep -i address:

Przykładowe dane wyjściowe:

user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

8. Internetowa grupa punktów końcowych sieci

Istnieją 2 sposoby konfigurowania zewnętrznego punktu końcowego, do którego odwołuje się internetowa grupa punktów końcowych NEG: INTERNET_FQDN_PORT lub INTERNET_IP_PORT. Jeśli wybrano format INTERNET_IP_PORT (opcja 1), można użyć tylko publicznego adresu IP docelowego w internecie; jeśli wybrano format INTERNET_FQDN_PORT (opcja 2), nazwa FQDN może zostać przekształcona w publiczny adres IP docelowy w internecie lub w prywatny adres IP w zależności od zakresu punktu końcowego: regionalny lub globalny.

Opcja 1. Skonfiguruj internetowy NEG za pomocą adresu IP

Internet NEG wymaga rozwiązania adresu IP witryny github.com, dlatego aby uzyskać jak najlepsze wyniki, otwórz lokalny terminal i wykonaj polecenie dig, aby uzyskać adres IP witryny github.com.

Przykład z lokalnego terminala generuje rozwiązany adres IP 140.82.113.4

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

Utwórz internetową grupę NEG i ustaw wartość –network-endpoint-type na internet_ip_port.

W Cloud Shell utwórz NEG internetowy używany dla github.com:

gcloud compute network-endpoint-groups create github-internet-neg \
    --network-endpoint-type=INTERNET_IP_PORT \
    --network=$vpc_network \
    --region=$region

W Cloud Shell zaktualizuj internetową grupę punktów końcowych github-internet-neg, podając rozwiązany adres IP github.com i port 443:

gcloud compute network-endpoint-groups update github-internet-neg \
    --add-endpoint="ip=[your-resolved-ip],port=443" \
    --region=$region

Przykład:

gcloud compute network-endpoint-groups update github-internet-neg \
    --add-endpoint="ip=140.82.113.4,port=443" \
    --region=$region

Opcja 2. Skonfiguruj internetową grupę punktów końcowych sieci za pomocą nazwy FQDN

Opcjonalnie możesz utworzyć internetową grupę NEG i ustawić parametr –network-endpoint-type na internet_FQDN_port.

W Cloud Shell utwórz NEG internetowy używany dla github.com:

gcloud compute network-endpoint-groups create github-internet-neg \
    --network-endpoint-type=INTERNET_FQDN_PORT \
    --network=$vpc_network \
    --region=$region

W Cloud Shell zaktualizuj NEG internetowy github-internet-neg za pomocą FQDN github.com:

gcloud compute network-endpoint-groups update github-internet-neg \
    --add-endpoint="fqdn=github.com,port=443" \
    --region=$region

9. Tworzenie usługi GitHub

Tworzenie komponentów systemu równoważenia obciążenia

W Cloud Shell wykonaj te czynności:

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

W Cloud Shell utwórz docelowy serwer proxy TCP, aby kierować żądania do usługi backendu:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=psa-backend-svc  \
      --region=$region

Utwórz regułę przekierowania (wewnętrzny system równoważenia obciążenia serwera proxy TCP) za pomocą poniższej składni.

W Cloud Shell wykonaj te czynności:

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. Strefa DNS GitHub

W następnej sekcji utworzysz zasadę odpowiedzi DNS dla GitHub.com z rekordem A zawierającym adres IP wewnętrznego systemu równoważenia obciążenia serwera proxy.

Następnie peering DNS udostępni strefę github.com usłudze PSA Looker, co umożliwi połączenie z GitHubem za pomocą wewnętrznego systemu równoważenia obciążenia w połączeniu z Internet NEG i Cloud NAT.

W Cloud Shell utwórz strefę zasad odpowiedzi:

gcloud dns --project=$project response-policies create github-com --description="" --networks="$vpc_network"

W Cloud Shell utwórz rekord DNS A z adresem IP systemu równoważenia obciążenia serwera proxy TCP, [insert-your-ip-address]:

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]"

Przykład:

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

Aktualizowanie połączenia równorzędnego DNS

W tej sekcji użyjesz składni "gcloud services peered-dns-domains create", która tworzy połączoną domenę DNS dla prywatnego połączenia usługi, które wysyła do rozwiązania żądania rekordów w danym przedziale nazw pochodzące z sieci VPC producenta usługi do sieci VPC konsumenta.

W Cloud Shell utwórz domenę peered-dns, której looker będzie używać do wysyłania zapytań dotyczących github.com:

gcloud services peered-dns-domains create github-com --project=$project --network=$vpc_network --dns-suffix=github.com.

11. Testowanie połączenia z GitHub

W kolejnych krokach użyjesz konsoli Looker do utworzenia projektu, który umożliwi weryfikację połączeń HTTPS z github.com.

12. Utwórz nowy projekt

Włączanie trybu programisty

W konsoli Looker przejdź do:

Włącz tryb programowania (w lewym dolnym rogu strony). Po wybraniu pojawi się baner „Jesteś w trybie programowania”.

70c9ded749decfbe.png

Tworzenie nowego projektu

W Cloud Console:

Programowanie → Projekty

e8ae11e0392a776d.png

Wybierz Nowy projekt LookML

65a3c2573e97e1e9.png

Podaj nazwę projektu, wybierz Pusty projekt, a następnie Utwórz projekt.

9185808e001fa540.png

Wybierz Skonfiguruj Git.

42f5e51ce70642ad.png

Konfigurowanie Git

Zaktualizuj adres URL repozytorium, podając dane konta GitHub w protokole HTTPS. Pamiętaj, aby dodać do adresu URL końcówkę .git, a potem kliknij Dalej.

f5c448f6659b8fc1.png

Przykład:

4065ab1d196589f.png

Zaktualizuj wybór, podając nazwę użytkownika GitHuba i token dostępu (klasyczny), a następnie wybierz Testuj i zakończ konfigurację.

1dc44d63c555a9ae.png

Wybierz działania Git

b5903668a50a99ca.png

Wybierz Test połączenia z Git

51b722e84f2df38c.png

Sprawdzanie testu połączenia z Git

8fb7386b739f60be.png

13. Czyszczenie danych

Aby usunąć komponenty laboratorium z jednego terminala Cloud Shell:

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

Gratulacje! Konfiguracja i weryfikacja połączenia z GitHubem za pomocą konsoli Looker Console zostały zakończone pomyślnie.

Cosmopup uważa, że ćwiczenia z programowania są niesamowite.

c911c127bffdee57.jpeg

Co dalej?

Więcej informacji i filmy

Dokumenty referencyjne