W tym samouczku omówimy konfigurowanie instancji Amazon RDS w prywatnej podsieci VPC i łączenie się z nią za pomocą tunelu SSH.
Odwrotny tunel SSH tworzy wychodzące szyfrowane połączenie z Twojego VPC do serwerów Chartio. Pozwala to na połączenie Chartio z bazą danych w Twojej prywatnej podsieci VPC bez modyfikowania jej tabeli tras lub grup bezpieczeństwa.
Przegląd
Poniższy diagram przedstawia, jak będzie wyglądać nasza ostateczna architektura. Utworzymy VPC z 2 podsieciami w regionie us-west-1; 1 publiczna podsieć w strefie dostępności us-west-1a i 1 prywatna podsieć w strefie dostępności us-west-1b. Do VPC będzie podłączona brama internetowa, jednak główna tabela tras będzie zawierać tylko jedną trasę lokalną, która umożliwia komunikację w ramach VPC. Podsieć publiczna będzie miała niestandardową tabelę tras, która zawiera trasę lokalną oraz trasę kierującą cały pozostały ruch przez bramę internetową. Wystąpienie Postgres RDS zostanie udostępnione w prywatnej podsieci z dołączoną grupą zabezpieczeń, która zezwala tylko na ruch przychodzący na porcie 5432 z podsieci publicznej. Wystąpienie EC2 zostanie udostępnione w publicznej podsieci z dołączoną grupą zabezpieczeń, która zezwala tylko na przychodzący ruch SSH z lokalnego adresu IP i cały ruch wychodzący. Na koniec SSH do instancji EC2, zainstalujemy klienta Postgres psql
, utwórz tabelę na instancji RDS oraz zainstaluj i skonfiguruj tunel SSH.
Utwórz VPC
Przejdź do panelu VPC w konsoli zarządzania AWS i utwórz nową sieć VPC.
Tworzenie i podłączanie bramy internetowej
Na karcie Bramy internetowe w panelu VPC utwórz nową bramę internetową.
Dołącz bramę do nowo utworzonego środowiska VPC.
Utwórz niestandardową tabelę tras
Na karcie Tabele tras w panelu VPC utwórz nową tabelę tras.
Dodaj trasę do tabeli tras dla bramy internetowej.
Utwórz podsieci publiczne i prywatne
Utwórz podsieć w strefie dostępności us-west-1a.
Zmień tabelę tras dla wcześniej utworzonej podsieci z głównej tabeli tras na niestandardową tabelę tras.
Utwórz podsieć w strefie dostępności us-west-1b.
Tworzenie grup zabezpieczeń
Utwórz grupę zabezpieczeń dla instancji EC2, która będzie udostępniana w publicznej podsieci us-west-1a.
Autoryzuj przychodzący ruch SSH z lokalnego adresu IP. Domyślne reguły ruchu wychodzącego powinny być w porządku.
Utwórz grupę zabezpieczeń dla instancji Postgres RDS, która będzie obsługiwana w prywatnej podsieci us-west-1b.
Autoryzuj ruch przychodzący z publicznej podsieci przez port 5432.
Usuń wszystkie reguły wychodzące dla grupy bezpieczeństwa RDS.
Zapewnij instancję EC2
Udostępnij instancję EC2 w publicznej podsieci us-west-1a. Upewnij się, że przypisany jest publiczny adres IP.
Przypisz wcześniej utworzoną grupę bezpieczeństwa.
Zapewnij instancję Postgres RDS
Udostępnij wystąpienie Postgres RDS w prywatnej podsieci us-west-1b. Upewnij się, że publiczny adres IP NIE jest przypisany.
Zainstaluj i skonfiguruj tunel SSH
SSH do instancji EC2 i uruchom następujące polecenia.
# Substitute 54.153.81.83 with your instance's public IP.
ssh [email protected]
# Create a table so Chartio has something to reflect.
# Substitute chartio.cacziwncd30i.us-west-1.rds.amazonaws.com with your instance's endpoint.
sudo apt-get update
sudo apt-get install postgresql-client
psql -h chartio.cacziwncd30i.us-west-1.rds.amazonaws.com -p 5432 -d chartio -U chartio -c "CREATE TABLE foo(id int);"
Zainstaluj autossh (lub wybrany przez siebie menedżer tunelu SSH) i skonfiguruj połączenie tunelowe, korzystając z instrukcji.
Sprawdź edytor schematów Chartio, aby upewnić się, że schemat instancji RDS został odzwierciedlony. Jeśli nie, spróbuj kliknąć przycisk „Odśwież schemat”.