GSP041

Opis
Wewnętrzny system równoważenia obciążenia aplikacji jest niezbędny do tworzenia niezawodnych, bezpiecznych i łatwych w zarządzaniu aplikacji wewnętrznych, które usprawniają operacje biznesowe. W tym module nauczysz się rozprowadzać ruch sieciowy w sieci chmury prywatnej bez bezpośredniego udostępniania maszyn wirtualnych w internecie publicznym, co zapewnia usługom bezpieczeństwo i wydajne działanie.
Zbudujesz uproszczony, ale bardzo popularny wzorzec architektury, w skład którego wchodzą:
- „Warstwa internetowa” (witryna publiczna), która musi poprosić o pomoc inną usługę wewnętrzną.
- „Warstwa usług wewnętrznych” (kalkulator liczb pierwszych), która wykonuje określone zadania i jest rozmieszczona na wielu maszynach.
Taka konfiguracja sprawia, że nawet jeśli jedna część usługi wewnętrznej jest zajęta lub ulegnie awarii, cały system działa płynnie, ponieważ system równoważenia obciążenia automatycznie kieruje żądania do sprawnych maszyn.
Jakie zadania wykonasz
- Poznasz komponenty wewnętrznego systemu równoważenia obciążenia.
- Utworzysz grupę maszyn backendu (kalkulator liczb pierwszych).
- Skonfigurujesz wewnętrzny system równoważenia obciążenia, aby kierować ruch wewnętrzny do maszyn backendu.
- Przetestujesz wewnętrzny systemu równoważenia obciążenia z innej wewnętrznej maszyny.
- Skonfigurujesz publiczny serwer WWW, który używa wewnętrznego systemu równoważenia obciążenia do uzyskiwania wyników z wewnętrznej usługi „kalkulator liczb pierwszych”.
Wymagania wstępne
- Podstawowa znajomość Google Cloud Compute Engine: co to jest instancja maszyny wirtualnej.
- Znajomość podstawowych pojęć dotyczących zarządzania siecią: co to jest adres IP.
- Podstawowa znajomość wiersza poleceń w systemach Unix i Linux: jak wpisywać polecenia w terminalu.
- Podstawowa wiedza o prywatnych środowiskach wirtualnych w chmurze (VPC): zrozumienie, że zasoby Google Cloud znajdują się w sieci prywatnej.
Konfiguracja i wymagania
Zanim klikniesz przycisk Rozpocznij moduł
Zapoznaj się z tymi instrukcjami. Moduły mają limit czasowy i nie można ich zatrzymać. Gdy klikniesz Rozpocznij moduł, na liczniku wyświetli się informacja o tym, na jak długo udostępniamy Ci zasoby Google Cloud.
W tym praktycznym module możesz spróbować swoich sił w wykonywaniu opisywanych działań w prawdziwym środowisku chmury, a nie w jego symulacji lub wersji demonstracyjnej. Otrzymasz nowe, tymczasowe dane logowania, dzięki którym zalogujesz się i uzyskasz dostęp do Google Cloud na czas trwania modułu.
Do ukończenia modułu potrzebne będą:
- Dostęp do standardowej przeglądarki internetowej (zalecamy korzystanie z przeglądarki Chrome).
Uwaga: uruchom ten moduł w oknie incognito (zalecane) lub przeglądania prywatnego. Dzięki temu unikniesz konfliktu między swoim kontem osobistym a kontem do nauki, co mogłoby spowodować naliczanie dodatkowych opłat na koncie osobistym.
- Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Uwaga: w tym module używaj tylko konta do nauki. Jeśli użyjesz innego konta Google Cloud, mogą na nim zostać naliczone opłaty.
Rozpoczynanie modułu i logowanie się w konsoli Google Cloud
-
Kliknij przycisk Rozpocznij moduł. Jeśli moduł jest odpłatny, otworzy się okno, w którym możesz wybrać formę płatności.
Po lewej stronie znajduje się panel Szczegóły modułu z następującymi elementami:
- przyciskiem Otwórz konsolę Google Cloud;
- czasem, który Ci pozostał;
- tymczasowymi danymi logowania, których musisz użyć w tym module;
- innymi informacjami potrzebnymi do ukończenia modułu.
-
Kliknij Otwórz konsolę Google Cloud (lub kliknij prawym przyciskiem myszy i wybierz Otwórz link w oknie incognito, jeśli korzystasz z przeglądarki Chrome).
Moduł uruchomi zasoby, po czym otworzy nową kartę ze stroną logowania.
Wskazówka: otwórz karty obok siebie w osobnych oknach.
Uwaga: jeśli pojawi się okno Wybierz konto, kliknij Użyj innego konta.
-
W razie potrzeby skopiuj nazwę użytkownika znajdującą się poniżej i wklej ją w oknie logowania.
{{{user_0.username | "Username"}}}
Nazwę użytkownika znajdziesz też w panelu Szczegóły modułu.
-
Kliknij Dalej.
-
Skopiuj podane niżej hasło i wklej je w oknie powitania.
{{{user_0.password | "Password"}}}
Hasło znajdziesz też w panelu Szczegóły modułu.
-
Kliknij Dalej.
Ważne: musisz użyć danych logowania podanych w module. Nie używaj danych logowania na swoje konto Google Cloud.
Uwaga: korzystanie z własnego konta Google Cloud w tym module może wiązać się z dodatkowymi opłatami.
-
Na kolejnych stronach wykonaj następujące czynności:
- Zaakceptuj Warunki korzystania z usługi.
- Nie dodawaj opcji odzyskiwania ani uwierzytelniania dwuskładnikowego (ponieważ konto ma charakter tymczasowy).
- Nie rejestruj się w bezpłatnych wersjach próbnych.
Poczekaj, aż na karcie otworzy się konsola Google Cloud.
Uwaga: aby uzyskać dostęp do produktów i usług Google Cloud, kliknij Menu nawigacyjne lub wpisz nazwę usługi albo produktu w polu Szukaj.
Aktywowanie Cloud Shell
Cloud Shell to maszyna wirtualna oferująca wiele narzędzi dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud. Dzięki wierszowi poleceń Cloud Shell zyskujesz dostęp do swoich zasobów Google Cloud.
-
Kliknij Aktywuj Cloud Shell
na górze konsoli Google Cloud.
-
Kliknij te okna:
- Przejdź przez okno z informacjami o Cloud Shell.
- Zezwól Cloud Shell na używanie Twoich danych logowania w celu wywoływania interfejsu Google Cloud API.
Po połączeniu użytkownik od razu jest uwierzytelniony. Uruchomi się Twój projekt o identyfikatorze Project_ID . Dane wyjściowe zawierają wiersz z zadeklarowanym identyfikatorem Project_ID dla tej sesji:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
to narzędzie wiersza poleceń Google Cloud. Jest ono już zainstalowane w Cloud Shell i obsługuje funkcję autouzupełniania po naciśnięciu tabulatora.
- (Opcjonalnie) Aby wyświetlić listę aktywnych kont, użyj tego polecenia:
gcloud auth list
- Kliknij Autoryzuj.
Dane wyjściowe:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Opcjonalnie) Aby wyświetlić identyfikator projektu, użyj tego polecenia:
gcloud config list project
Dane wyjściowe:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Uwaga: pełną dokumentację gcloud
w Google Cloud znajdziesz w opisie gcloud CLI.
Ustawianie regionu i strefy
- Ustaw region i strefę projektu na potrzeby tego modułu:
gcloud config set compute/region {{{project_0.default_region | Region}}}
gcloud config set compute/zone {{{project_0.default_zone | Zone}}}
- Utwórz zmienną dla regionu:
export REGION={{{project_0.default_region | Region}}}
- Utwórz zmienną dla strefy:
export ZONE={{{project_0.default_zone | Zone}}}
Więcej informacji znajdziesz w dokumentacji regionów i stref (w języku angielskim).
Uwaga: kiedy uruchamiasz narzędzie gcloud
na swoim komputerze, ustawienia konfiguracji są zachowywane między sesjami. Jednak w Cloud Shell musisz je ustawiać dla każdej nowej sesji lub połączenia.
Zadanie 1. Tworzenie środowiska wirtualnego
Środowisko wirtualne utrzymuje porządek w oprogramowaniu projektu i zapewnia, że kod zawsze działa z określonymi wersjami potrzebnych narzędzi.
Do oddzielenia instalacji pakietów od systemu są używane wirtualne środowiska języka Python.
- Zainstaluj środowisko
virtualenv
:
sudo apt-get install -y virtualenv
- Skompiluj środowisko wirtualne:
python3 -m venv venv
- Aktywuj środowisko wirtualne:
source venv/bin/activate
Zadanie 2. Tworzenie zarządzanej grupy instancji backendu
Dzięki zarządzanej grupie instancji Google Cloud może automatycznie tworzyć i utrzymywać identyczne kopie Twojej usługi. Jeśli jedna z kopii ulegnie awarii, Google Cloud ją zastąpi, co zwiększa niezawodność usługi.
Tworzenie skryptu startowego
Ten skrypt to zestaw instrukcji, które każda nowa maszyna wirtualna w grupie będzie wykonywać podczas uruchamiania. Nasz skrypt będzie zawierać mały serwer WWW napisany w Pythonie, który może nam powiedzieć, czy dana liczba jest liczbą pierwszą (True) czy nie (False).
- Zacznij od utworzenia skryptu
backend.sh
w katalogu głównym:
touch ~/backend.sh
-
Otwórz edytor, klikając ikonę u góry Cloud Shell. Jeśli pojawi się taka prośba, kliknij Otwórz w nowym oknie.

Uwaga: jeśli nie widzisz ikony edytora kodu, zamknij panel po lewej stronie, klikając ikonę menu nawigacyjnego.
Uruchomienie edytora kodu spowoduje przeniesienie Cloud Shell do nowego okna i otwarcie edytora. Po kilku sekundach pojawi się obszar roboczy.
-
W panelu po lewej stronie wybierz plik backend.sh
.
-
Teraz dodaj do edytora po prawej stronie ten skrypt:
sudo chmod -R 777 /usr/local/sbin/
sudo cat << EOF > /usr/local/sbin/serveprimes.py
import http.server
def is_prime(a): return a!=1 and all(a % i for i in range(2,int(a**0.5)+1))
class myHandler(http.server.BaseHTTPRequestHandler):
def do_GET(s):
s.send_response(200)
s.send_header("Content-type", "text/plain")
s.end_headers()
s.wfile.write(bytes(str(is_prime(int(s.path[1:]))).encode('utf-8')))
http.server.HTTPServer(("",80),myHandler).serve_forever()
EOF
nohup python3 /usr/local/sbin/serveprimes.py >/dev/null 2>&1 &
- Kliknij Plik > Zapisz.
Tworzenie szablonu instancji
- Na pasku narzędzi Cloud Shell kliknij Otwórz terminal. Aby utworzyć szablon instancji
primecalc
, wpisz to polecenie:
gcloud compute instance-templates create primecalc \
--metadata-from-file startup-script=backend.sh \
--no-address --tags backend --machine-type=e2-medium
Jest to coś w rodzaju planu maszyn wirtualnych backendu. Zwróć uwagę, że to polecenie zawiera fragment --no-address
, co oznacza, że ze względów bezpieczeństwa te maszyny wirtualne backendu nie będą miały publicznego dostępu do internetu.
Otwieranie zapory sieciowej
Musisz utworzyć regułę zapory sieciowej, która przepuszcza ruch na porcie 80 (standardowy ruch HTTP) do maszyn wirtualnych backendu. Ma to kluczowe znaczenie dla komunikacji wewnętrznego systemu równoważenia obciążenia aplikacji i kontroli stanu z tymi maszynami.
- Otwórz port
80
w zaporze sieciowej:
gcloud compute firewall-rules create http --network default --allow=tcp:80 \
--source-ranges {{{project_0.startup_script.selected_cidr | IP}}} --target-tags backend
Kliknij poniżej Sprawdź postępy, aby sprawdzić, czy wszystko idzie zgodnie z planem w tym module.
Utworzenie szablonu instancji i otwarcie zapory sieciowej na porcie 80
Tworzenie grupy instancji
- Teraz utwórz zarządzaną grupę instancji o nazwie
backend
. Zacznij od trzech instancji:
gcloud compute instance-groups managed create backend \
--size 3 \
--template primecalc \
--zone $ZONE
- Gdy to polecenie zostanie wykonane, wróć na kartę Konsola. Otwórz Compute Engine > Instancje maszyn wirtualnych. Powinny być teraz widoczne 3 maszyny wirtualne backendu utworzone przez grupę instancji.

Backendy są teraz gotowe do obsługi ruchu.
Kliknij poniżej Sprawdź postępy, aby sprawdzić, czy wszystko idzie zgodnie z planem w tym module.
Utworzenie grupy instancji
Zadanie 3. Konfigurowanie wewnętrznego systemu równoważenia obciążenia
Utworzysz pojedyncze, prywatne i ekskluzywne wejście dla usługi wewnętrznej. Umożliwia to innym aplikacjom wewnętrznym niezawodne korzystanie z kalkulatora liczb pierwszych bez posiadania informacji o tym, która konkretna maszyna wirtualna backendu jest aktywna lub dostępna.
Teraz skonfigurujemy wewnętrzny system równoważenia obciążenia i połączymy go z utworzoną przed chwilą grupą instancji.
Wewnętrzny system równoważenia obciążenia tworzą 3 główne części:
- Reguła przekierowania: jest to rzeczywisty prywatny adres IP, na który inne usługi wewnętrzne będą wysyłać żądania. Przekierowuje ona ruch do usługi backendu.
- Usługa backendu: określa sposób, w jaki system równoważenia obciążenia rozdziela ruch do instancji maszyn wirtualnych Obejmuje też kontrolę stanu.
- Kontrola stanu: jest to ciągła kontrola, która monitoruje stan maszyn wirtualnych backendu. System równoważenia obciążenia wysyła ruch tylko do maszyn, które przechodzą kontrole stanu, dzięki czemu Twoja usługa jest zawsze dostępna.
Ten diagram pokazuje, jak obciążenie instancji jest równoważone przy użyciu kilku instancji w 2 grupach backendu w różnych strefach.

Utwórz kontrolę stanu
- Kontrola stanu jest potrzebna, aby zagwarantować, że system równoważenia obciążenia będzie kierował ruch tylko do sprawnych instancji. Usługa backendu to serwer HTTP, więc sprawdź, czy zwraca odpowiedź „200 OK” w przypadku określonej ścieżki URL (w tym przypadku
/2
w celu sprawdzenia, czy 2 jest liczbą pierwszą):
gcloud compute health-checks create http ilb-health --request-path /2
Usługa HTTP została udostępniona, więc sprawdź, czy odpowiedź 200 w przypadku określonej ścieżki URL (w tym przypadku /2
w celu sprawdzenia, czy 2 jest liczbą pierwszą) jest wypełniona.
Tworzenie usługi backendu
- Teraz utwórz usługę backendu o nazwie
prime-service
:
gcloud compute backend-services create prime-service \
--load-balancing-scheme internal --region=$REGION \
--protocol tcp --health-checks ilb-health
Ta usługa powiąże kontrolę stanu z grupą instancji.
Dodawanie grupy instancji do usługi backendu
- Połącz grupę instancji backendu z usługą backendu prime-service. Ten kod informuje system równoważenia obciążenia, którymi maszynami ma zarządzać:
gcloud compute backend-services add-backend prime-service \
--instance-group backend --instance-group-zone=$ZONE \
--region=$REGION
Tworzenie reguły przekierowania
- Na koniec utwórz regułę przekierowania o nazwie
prime-lb
ze statycznym adresem IP :
gcloud compute forwarding-rules create prime-lb \
--load-balancing-scheme internal \
--ports 80 --network default \
--region=$REGION --address {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}} \
--backend-service prime-service
Wewnętrzna usługa „kalkulator liczb pierwszych” jest teraz w pełni skonfigurowana i gotowa na zapytania przesyłane za pomocą wewnętrznego adresu IP.
Kliknij poniżej Sprawdź postępy, aby sprawdzić, czy wszystko idzie zgodnie z planem w tym module.
Skonfigurowanie wewnętrznego systemu równoważenia obciążenia
Zadanie 4. Testowanie systemu równoważenia obciążenia
Ten krok jest niezbędny do tego, aby potwierdzić, że wewnętrzny system równoważenia obciążenia aplikacji prawidłowo kieruje ruch do usług backendu. Pozwala też sprawdzić, czy inne aplikacje wewnętrzne mogą teraz niezawodnie uzyskiwać dostęp do Twojej usługi za pomocą jednego, stabilnego adresu IP, co zapewnia ciągłość działania.
Aby przetestować system równoważenia obciążenia, musisz utworzyć nową instancję maszyny wirtualnej w tej samej sieci co wewnętrzny system równoważenia obciążenia aplikacji. Jest ona dostępna tylko z poziomu sieci chmury prywatnej, a nie bezpośrednio w środowisku Cloud Shell (które działa poza tą konkretną siecią).
- Za pomocą
gcloud
w Cloud Shell utwórz prostą instancję testową:
gcloud compute instances create testinstance \
--machine-type=e2-standard-2 --zone $ZONE
- Następnie połącz się z nią przez SSH:
gcloud compute ssh testinstance --zone $ZONE
Jeśli pojawi się taka prośba, wpisz Y i naciśnij Enter 2 razy, aby przejść dalej.
Wysyłanie zapytań do systemu równoważenia obciążenia
- W instancji testowej użyj polecenia
curl
, aby sprawdzić, czy kilka liczb jest liczbami pierwszymi przez wysłanie zapytania na adres IP wewnętrznego systemu równoważenia obciążenia aplikacji:
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5
Wynik (True lub False) pojawi się obok wiersza poleceń. Będzie to wyglądać tak:
user@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2
Trueuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4
Falseuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5
Trueuser@testinstance:~$ exit
Jak widać, liczby 2 i 5 zostały prawidłowo rozpoznane jako liczby pierwsze, a 4 – nie. Potwierdza to, że wewnętrzny system równoważenia obciążenia aplikacji działa. Otrzymał żądania i przekazał je do jednej z maszyn wirtualnych do obliczania liczb pierwszych w Twoim backendzie.
Usługa odpowiedziała prawidłowo: 2 i 5 to liczby pierwsze, a 4 – nie.
- Opuść instancję testową:
exit
- Następnie usuń ją, ponieważ nie jest już potrzebna:
gcloud compute instances delete testinstance --zone=$ZONE
- Aby potwierdzić usunięcie, wpisz Y.
Zadanie 5. Tworzenie publicznego serwera WWW
Teraz możesz zobaczyć, jak aplikacja publiczna (np. witryna) może korzystać z usług wewnętrznych. Utworzysz publiczny serwer WWW, który będzie używać wewnętrznej usługi „kalkulator liczb pierwszych” (za pomocą wewnętrznego systemu równoważenia obciążenia aplikacji) do wyświetlania tabeli z liczbami pierwszymi.
- Najpierw utwórz skrypt startowy dla tego publicznego „frontendu” w katalogu głównym.
touch ~/frontend.sh
- Edytor kodu powinien być nadal otwarty. Jeśli nie, uruchom edytor kodu, wybierając go w powłoce:

Po kilku sekundach pojawi się obszar roboczy.
- Teraz dodaj do edytora po prawej stronie ten skrypt:
sudo chmod -R 777 /usr/local/sbin/
sudo cat << EOF > /usr/local/sbin/getprimes.py
import urllib.request
from multiprocessing.dummy import Pool as ThreadPool
import http.server
PREFIX="http://{{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/" #HTTP Load Balancer
def get_url(number):
return urllib.request.urlopen(PREFIX+str(number)).read().decode('utf-8')
class myHandler(http.server.BaseHTTPRequestHandler):
def do_GET(s):
s.send_response(200)
s.send_header("Content-type", "text/html")
s.end_headers()
i = int(s.path[1:]) if (len(s.path)>1) else 1
s.wfile.write("<html><body><table>".encode('utf-8'))
pool = ThreadPool(10)
results = pool.map(get_url,range(i,i+100))
for x in range(0,100):
if not (x % 10): s.wfile.write("<tr>".encode('utf-8'))
if results[x]=="True":
s.wfile.write("<td bgcolor='#00ff00'>".encode('utf-8'))
else:
s.wfile.write("<td bgcolor='#ff0000'>".encode('utf-8'))
s.wfile.write(str(x+i).encode('utf-8')+"</td> ".encode('utf-8'))
if not ((x+1) % 10): s.wfile.write("</tr>".encode('utf-8'))
s.wfile.write("</table></body></html>".encode('utf-8'))
http.server.HTTPServer(("",80),myHandler).serve_forever()
EOF
nohup python3 /usr/local/sbin/getprimes.py >/dev/null 2>&1 &
- Kliknij Plik > Zapisz.
Tworzenie instancji frontendowej
- W Cloud Shell utwórz instancję o nazwie
frontend
, która będzie uruchamiać ten serwer WWW:
gcloud compute instances create frontend --zone=$ZONE \
--metadata-from-file startup-script=frontend.sh \
--tags frontend --machine-type=e2-standard-2
Otwieranie zapory sieciowej dla frontendu
- Jest to serwer publiczny, więc musisz otworzyć jego zaporę sieciową, aby zezwalać na ruch z dowolnego miejsca w internecie (0.0.0.0/0) na porcie 80:
gcloud compute firewall-rules create http2 --network default --allow=tcp:80 \
--source-ranges 0.0.0.0/0 --target-tags frontend
-
W Menu nawigacyjnym kliknij Compute Engine > Instancje maszyn wirtualnych. Jeśli nie widzisz instancji frontend
, odśwież przeglądarkę.
-
Otwórz w przeglądarce zewnętrzny adres IP frontendu:

Powinna pojawić się tabela podobna do tej, w której wszystkie liczby pierwsze do 100 są zaznaczone na zielono:

- Spróbuj dodać do ścieżki liczbę, np. http://twój-ip/10000, aby wyświetlić wszystkie liczby pierwsze od tej liczby.

Uwaga: przykładowy skrypt startowy nie oblicza skutecznie liczb pierwszych. Nie ma też algorytmów wykrywania ani poprawiania błędów. Dodanie dużych liczb do ścieżki spowoduje przekroczenie limitu czasu oczekiwania usługi.
Kliknij poniżej Sprawdź postępy, aby sprawdzić, czy wszystko idzie zgodnie z planem w tym module.
Utworzenie publicznego serwera WWW
Gratulacje!
Udało Ci się utworzyć niezawodną usługę wewnętrzną używającą wewnętrznego systemu równoważenia obciążenia aplikacji Google Cloud i pokazać, jak aplikacja publiczna może bezpiecznie z niej korzystać.
Kolejne kroki / Więcej informacji
Szkolenia i certyfikaty Google Cloud
…pomogą Ci wykorzystać wszystkie możliwości technologii Google Cloud. Nasze zajęcia obejmują umiejętności techniczne oraz sprawdzone metody, które ułatwią Ci szybką naukę i umożliwią jej kontynuację. Oferujemy szkolenia na poziomach od podstawowego po zaawansowany prowadzone w trybach wirtualnym, na żądanie i na żywo, dzięki czemu możesz dopasować program szkoleń do swojego napiętego harmonogramu. Certyfikaty umożliwią udokumentowanie i potwierdzenie Twoich umiejętności oraz doświadczenia w zakresie technologii Google Cloud.
Ostatnia aktualizacja instrukcji: 18 lipca 2025 r.
Ostatni test modułu: 18 lipca 2025 r.
Copyright 2025 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.