Przejdź do treści

Jak połączyć AWS VPC? Jak używać peeringu? Tutorial i przykłady użycia

How to connect AWS VPC peering 2022 network subnet

Peering w AWS umożliwia połączenie 2 sieci. Sieci mogą być w różnych regionach, a nawet na różnych kontach. Dzięki temu zasoby, które znajdują się w różnych sieciach, mogą bez problemu się ze sobą komunikować.

vpc peering connection

Jeśli posiadasz kilka sieci VPC w AWS i chciałbyś je połączyć, to peering jest świetnym rozwiązaniem. Funkcje Lambda, bazy RDS czy zwykłe EC2 w różnych regionach mogą komunikować się ze sobą w bezpieczny sposób za pomocą prywatnych adresów IP. Najlepsze jest to, że nie wymaga to tworzenia żadnych bram i połączeń VPN. Ruch odbywa się w bezpiecznej i szybkiej sieci szkieletowej AWS i nie musi jej opuszczać. Jeszcze raz zaznaczę, że używając peeringu, ruch pozostaje w wewnętrznej sieci AWS i nie przechodzi przez internet.

Peering daje nam także brak pojedynczego punktu awarii czy wąskiego gardła dla przepustowości.

Do połączenia ze sobą 2 sieci za pomocą peeringu wystarczą tylko skonfigurować 2 rzeczy:

  • połączenie peering
  • tablicę routingu

Jak włączyć połączenie peering w AWS?

Włączenie peeringu jest naprawdę proste. Jego konfiguracja w tablicy routingu też nie przysparza wielu problemów. Jeśli chcesz skomplikować sobie życie, to możesz dodać dodatkowe reguły w NACL i Security Group. Zalecam to jednak tylko, jeśli chcesz ograniczyć ruch w sieci i naprawdę wiesz, co robisz.

Połączenie peering

Wystarczy otworzyć AWS VPC, przejść do zakładki Peering Connections w Virtual Private Cloud i kliknąć Create Peering Connection.

aws vpc peering

amazon cloud - create peering connection

Teraz wystarczy nadać nazwę naszemu połączeniu oraz wybrać sieci VPC, które chcemy połączyć.

amazon cloud - create peering connection settings

Jeśli chcemy się połączyć z siecią na innym koncie, to po prostu musimy podać ID tego konta i ID sieci VCP, z którą chcemy się połączyć, a potem zalogować się na to konto i zaakceptować to połączenie.

amazon cloud - create peering connection another account

Dokładnie to samo należy zrobić, jeśli łączymy sieci na tym samym koncie AWS. Musimy zaznaczyć połączenie peering, które dodaliśmy kliknąć „Actions” i „Accept request”.

aws accept peering request

Po tym, jak zaakceptujemy połączenie, jego Status powinien się zmienić na „Active”.

peering connections

Tablica Routingu

Teraz obie sieci VPC są połączone peeringiem, ale maszyny EC2 które w nich są jeszcze nie mogą się ze sobą komunikować.

ec2 peering connection

Żeby mogły nawiązać połączenie, trzeba jeszcze dodać odpowiedni wpis w tablicy routingu. Żeby to zrobić, należy wybrać z menu po lewej „Route Tables”.

aws route tables

Następnie wybierz tabelę routingu, która jest przypisana do pierwszej sieci i z menu „Actions” wybierz „Edit routes”

aws route tables - edit routes

Teraz najtrudniejsza część. Kliknij „Add route”. W polu Destination wpisz adres drugiej sieci VPC. W moim przypadku jest to „10.1.0.0/16”. W polu Target wybierz Peering Connection i nazwę tego połączenia. Teraz możesz kliknąć Save changes.

route table edit routes peering

Dla drugiej sieci zrób dokładnie to samo. Edytuj tablicę routingu do niej przypisaną i dodaj podobny wpis. Tym razem tylko w polu Destination użyj adresu pierwszej sieci, w moim przypadku będzie to „10.0.0.0/16”. W polu Target wybierz Peering Connection i nazwę tego połączenia. Teraz możesz kliknąć Save changes.

Jeśli wszystko zrobiłeś dobrze, to bez problemu maszyny z obu sieci powinny móc się ze sobą komunikować.

ec2_peering_connection_ok

Teraz jest czas, żeby zawęzić trochę możliwość komunikacji sieci ze sobą sieci za pomocą NACL i Security grup jeśli tego potrzebujesz. Pamiętaj, na początku zawsze sprawdź, czy połączenie działa, a dopiero potem konfiguruj NACL i Security Group.

Problemy z połączeniem peering w AWS

Uwaga jeśli dopiero co stworzyłeś sieć to tablica routingu powinna być przypisana do sieci i podsieci z którą chcesz się połączyć, a domyślnie tak nie jest. Wejdź na swoją tablicę routingu dla VPC i sprawdź czy ma przypisane podsieci.

route - subnet association

Jeśli wszystko zrobiłeś poprawnie ale wciąż nie możesz połączyć ze sobą maszyn EC2, to może problem leży w Security Group. Te grupy w przeciwieństwie do NACL mają dość restrykcyjne ustawienia domyślne (np. zabraniają pingów). Warto do nich zajrzeć. Sprawdź, jakie masz przypisane grupy do EC2. Wybierz interesującą cię instancję, przejdź do zakładki Security i kliknij Security groups.

aws security groups

Jeśli chcesz zezwolić na pingi, otwórz swoją Security Group i kliknij Edit inbound rules. Następnie dodaj regułę. Wybierz typ Custom ICMP, protocol Echo Request i zdefiniuj source. Jeśli chcesz zezwolić każdemu na wysyłanie zapytań ze wszystkich adresów, to w source wybierz Anywhere i kliknij Save rules. Ja jednak zachęcam, żebyś zawęził trochę ten zakres,. Chociaż do sieci, z której chcesz wysyłać takie zapytania.

icmp echo request rule

Teraz bez problemu powinieneś nawiązać połączenie i dostać Echo Request.

Przykładowe scenariusze użycia

Poniżej znajdziesz kilka przykladowych scenariuszy użycia peeringu.

Połączenie 2 sieci

peering 2 vpc

Najprostszy scenariusz, w którym łączymy ze sobą tylko 2 sieci, można było zobaczyć podczas czytania tego artykułu i wykonywania krok po kroku poleceń w nim zawartych. Teraz chciałbym zwrócić jeszcze uwagę na inne często spotykane scenariusze.

Połączenie 3 sieci

Połączenie peering jest równorzędne i nie jest, jak by to określić przechodnie. Oznacza, że jeśli połączymy peeringiem sieć 1 z 2 oraz 2 z 3, to będziemy mogli się komunikować tylko z sieciami, z którymi bezpośrednio zestawiliśmy połączenie.

peering 3 vpc

Sieć VPC-1 będzie mogła się połączyć z VPC-2, ale z VPC-3 już nie.

Tao samo dotyczy sieci VPC-3, która będzie mogła się połączyć tylko z siecią VPC-2.

Natomiast sieć VPC-2 będzie mogła się połączyć zarówno z siecią VPC-1 jak i VPC-3.

Dzięki temu scenariuszowi zachowujemy izolację sieci VPC-1 i VPC-3. Nie pozwalamy im się ze sobą komunikować, a jednocześnie zezwalamy im na komunikację z siecią VPC-2. Żeby tego dokonać, musimy zestawić drugie połączenie peernig. Robimy to dokładnie w taki sposób, jak został opisany w artykule, tylko tym razem, zamiast łączyć sieci VPC-1 i VPC-2 musimy dodatkowo połączyć sieci VPC-2 i VPC-3. Oznacza to, że wszystkie kroki musimy wykonać ponownie dla nowego połączenia.

Połączenie z wieloma sieciami

W tym scenariuszu sieć będąca w centrum może połączyć się z każdą siecią. Pozostałe sieci mogą się połączyć tylko z jedną główną siecią będącą w centrum.

peering 1 to many

Tutaj powtarzamy kroki potrzebne do stworzenia działającego połączenia peering tyle razy, ile sieci chcemy połączyć z siecią będącą w centrum VPC-MAIN.

Jest to bardzo często spotykane rozwiązanie, które w głównej sieci może posiadać np. serwer do monitoringu. Sieć VPC-MAIN ma połączenie z każdą inną, więc bez problemu możemy wszystko monitorować. W takiej centralnej sieci spotyka się często serwer plików, główne repozytorium dokumentów, albo rejestr obrazów używanych do budowania, testowania i deploymentu. Jedno centralne miejsce wspólne dla wszystkich sieci. Mamy z niego dostęp do każdej sieci, a każda sieć ma dostęp do niego i nigdzie dalej. Oczywiście dobrom praktyką jest ograniczenie trochę tego ruchu sieciowego za pomocą NACL i Security Group.

Podsumowanie

Przedstawione scenariusze są trochę wyidealizowane, bo często sieć wygląda jak ta pod spodem i to w mocno uproszczonej wersji. Mamy dużo lokalizacji, jeszcze więcej sieci, a do tego chmury od kilku vendorów co nie ułatwia sprawy.

many vpc connection cloud

Tak czy inaczej, warto wiedzieć co to peering i jak można go używać, bo często się przydaje.

Pod tym linkiem znajdziesz dokumentację AWS na temat połączenia peering.

Zajrzyj jeszcze do artykułu Jak kontrolować koszty w chmurze AWS. Wejdź do świata chmury pogłębiaj swoją wiedzę i zwiększaj swoje zarobki.