Jedną wielką cechą proxy RDS jest to, że jest w pełni zarządzany. W przeciwieństwie do tradycyjnych serwerów proxy, nie musisz zachować bólu głowy wdrażania, zarządzania i łatania ich nowymi aktualizacjami. Jest to aplikacja bez serwera i automatycznie skalenia do dostosowywania się do twoich potrzeb.
Proxy Amazon RDS może być używany do aplikacji opartych na architekturze bez serwera i tych działających w kontenerach na ECS lub EC2.
Jak działa proxy RDS?
Dzięki tej funkcji aplikacje mogą łączyć i udostępniać swoje połączenia z bazą danych. Zamiast podłączać aplikację bezpośrednio z bazą danych RDS, podłączamy ją do proxy RDS. Amazon RDS Proxy działa jako mediator połączenia między kodem aplikacji a instancją RDS DB. Zastrzega pulę ustalonych połączeń z bazą danych, które można ponownie wykorzystać i udostępniać innym klientom. W ten sposób do bazy danych ustanowionych tylko kilka połączeń, zmniejszając w ten sposób nowe obciążenie połączenia w bazie danych.
W przypadku przełączania awaryjnego bazy danych, proxy RDS ponownie realizuje żądania bezpośrednio do nowej instancji DB. Kolejną ważną korzyścią jest to, że możemy skonfigurować uwierzytelnianie IAM dla bezpieczeństwa bazy danych bez konieczności umieszczenia poświadczeń bazy danych bezpośrednio w kodzie aplikacji. Ma również postanowienie korzystania z AWS Secrets Manager dla centralnie zarządzania poświadczeniami bazy danych.
Zestaw doświadczalny
Aby pokazać, jak działa AWS RDS Proxy, skonfigurujemy środowisko pracy z następującymi zasobami sieci:
Aby uczynić ten przewodnik kompaktowy, nie opisamy, jak skonfigurować instancję EC2 i RDS, ponieważ są one stosunkowo proste. Utworzyliśmy również użytkownika IAM z zasadą administratora dostępu. Znaczące kroki tego przewodnika zostały przedstawione tutaj:
Pierwsze kroki z proxy RDS
Myślę, że ogólny scenariusz powinien być teraz wyczyszczony czytelnikowi. Poniższy obraz pokazuje przegląd tego przewodnika:
Tworzenie grup bezpieczeństwa i sprawdzanie łączności bazy danych.
Krok 1. Przejdź do sekcji AWS VPC i w kolumnie „bezpieczeństwa” wybierz grupy bezpieczeństwa z panelu nawigacyjnego po lewej stronie:
Krok 2. Teraz kliknij przycisk „Utwórz grupę bezpieczeństwa” i dodaj grupę bezpieczeństwa (tutaj „EC2_Secgrp”) dla instancji EC2. Wprowadź podstawowe szczegóły zgodnie z wyborem:
Dodaj regułę przychodzącą, aby umożliwić połączenie SSH przychodzące (przychodzące) z EC2. Dodaj regułę wychodzącą, aby umożliwić dowolny ruch wychodzący (wychodzący) z instancji EC2.
Dodaj inną grupę bezpieczeństwa (tutaj „RDS_Secgrp”) dla instancji RDS i wprowadź podstawowe szczegóły:
Dodaj regułę przychodzącą, aby umożliwić tylko połączenie TCP w instancji RDS DB (na porcie 3306) z instancji EC2 (określ EC2_SecGRP w źródle). Dodaj kolejną regułę przychodzącą, aby umożliwić tylko połączenie TCP w instancji RDS DB (na porcie 3306) z proxy (określ Proxy_Secgrp w źródle). Dodaj regułę wychodzącą, aby umożliwić dowolny ruch wychodzący (wychodzący) z instancji RDS.
Podobnie dodaj jeszcze jedną grupę bezpieczeństwa dla proxy (proxy_secgrp) i wprowadź podstawowe szczegóły:
Trzy stworzone przez nas grupy bezpieczeństwa są już dostępne:
Wybierając dowolną grupę bezpieczeństwa, możesz zobaczyć jej szczegóły:
1) EC2_Secgrp: dołączony do instancji EC2.
2) RDS_Secgrp: dołączony do instancji RDS.
3) proxy_secgrp: dołączony do proxy.
Krok 3. Teraz udaj się na deskę rozdzielczą RDS i wybierz docelową instancję RDS DB (tutaj „DB-Linuxhint”). Na karcie „łączność i bezpieczeństwo” znajdź punkt końcowy instancji DB i skopiuj go do gdzieś, ponieważ użyjemy go łącząc z instancji EC2 w nadchodzących krokach.
Krok 4. Przejdź do pulpitu pulpitu EC2 i wybierz instancję EC2, z której chcesz połączyć się z instancją RDS DB. Wybierz opcję „Połącz”:
Krok 5. W Kreatora „Połącz się z instancją” wybierz opcję „EC2 Instance Connect”, która jest połączeniem SSH opartym na przeglądarce:
Nowe okno przeglądarki otworzy się po wybraniu przycisku „Podłącz”, jak pokazano tutaj:
Krok 6. Z tego okna CLI użyj poniższego formatu polecenia, aby przetestować łączność EC2 z instancją RDS DB:
$ mysql -h-P 3306 -U -P
Użyj punktu końcowego instancji RDS DB zamiast „punkt końcowy RDS DB” i nazwy użytkownika DB zamiast „nazwy użytkownika” („admin” w naszym przypadku). Wprowadź hasło DB na pytanie. Kiedy uwierzytelnianie się powiedzie, zobaczysz monit MySQL na CLI:
Korzystanie z Secret Manager AWS do obsługi poświadczeń bazy danych.
Aby serwer proxy RDS mógł połączyć się z użytkownikiem DB, użytkownik DB potrzebuje tajemnicy w AWS Secrets Manager. Te sekrety są używane przez proxy RDS do obsługi puli połączeń bazy danych.
Krok 1. Udaj się do sekcji „Secrets Manager” z konsoli AWS i wybierz „Przechowuj nowy sekret”:
Krok 2. W oknie „Wybierz tajny typ”, wybierz poświadczenia opcji ”dla bazy danych RDS.„W poniższym podrozdziale wprowadź nazwę użytkownika i hasło dla użytkownika bazy danych:
Krok 3. Następnie w ramach „Wybierz menu rozwijane klawisz szyfrowania, wybierz„ DefaultEncryptionKey ”, a następnie wybierz docelowy RDS DB, dla którego konfigurujesz sekret dostępu do dostępu. Kliknij Następny.
Krok 4. Teraz podaj odpowiednią nazwę do swojego sekretu i krótki opis dla IT (opcjonalnie).
Krok 5. Pomijamy tagi i automatyczne tajne opcje rotacji; Na razie kliknij Dalej:
Krok 6. Możesz zobaczyć niektóre ustawienia konfiguracji związane z sekretem i przykładowym kodem. Po prostu pomiń je i kontynuuj zapisanie swojego sekretu, naciskając przycisk „sklep”:
Po zakończeniu powyższych kroków Twoja tajna nazwa pojawi się na stronie Secrets Manager. Z tajnych szczegółów skopiuj ARN twojego sekretu, którego będziemy potrzebować później.
Tworzenie roli IAM i definiowanie zasady umożliwiającej proxy RDS na dostęp do tajemnic utworzonych wraz z AWS Secret Manager.
Krok 1. Udaj się na deskę rozdzielczą IAM, a z lewego panelu wybierz „Role”, a następnie wybierz „Utwórz rolę”:
Krok 3. Z wielu opcji w ramach „RDS”, wybierz „RDS - Dodaj rolę do bazy danych”:
Krok 4. Teraz wybierz „Dalej” i wprowadź przycisk „Utwórz zasady”. Nowa przeglądarka otworzy się tutaj; Wybierz kartę JSON i zastąp już instrukcje zasad na następującą:
„Wersja”: „2012-10-17”,
"Oświadczenie": [
„SID”: „Visuleditor0”,
„Efekt”: „Pozwól”,
"Działanie": [
„SecretsManager: GetRandompassword”,
„SecretsManager: CreateSecret”,
„SecretsManager: ListSecrets”
],
„Zasób”: „*”
,
„SID”: „Visuleditor1”,
„Efekt”: „Pozwól”,
„Action”: „SecretsManager:*”,
„Zasób”: [
„Put_your_secret_arn_here”
]
]
Wystarczy wymienić etykietę „put_your_secret_arn_here” na tajną wartość ARN w twoim przypadku. Dodaj tagi (opcjonalnie) i kontynuuj, wybierając „Politykę recenzji” i podaj nazwę („RDS-Proxy-Policy” w naszym przypadku) do swojej zasady i naciśnij przycisk „Utwórz zasady”.
Krok 5. Po skonfigurowaniu zasad wróć do okna „Role” na przeglądarce i wybierz przycisk „Odśwież” i wyszukaj oraz wybierz właśnie utworzone zasady:
Krok 6. Teraz podaj nazwę swojej roli i krótkiego opisu, a opcjonalnie możesz dodać tagi tutaj. Kontynuuj, wybierając „Dalej: Recenzja” i na koniec wybierz „Utwórz rolę.„Twoja rola jest teraz tworzona:
Tworzenie i konfigurowanie proxy RDS.
Nadszedł czas, aby utworzyć i skonfigurować proxy RDS, który ostatecznie wykorzysta naszą grupę bezpieczeństwa RDS_Secgrp, Secret i roli, którą stworzyliśmy powyżej.
Krok 1. Przejdź do pulpitu nawigacyjnego RDS i wybierz „proxy”, a następnie wybierz „Utwórz proxy”:
Krok 2. Wewnątrz czarodzieja „Utwórz proxy”, najpierw musimy nadać nazwę lub identyfikator proxy, który jest „proxy-LH” w naszym przypadku.
Krok 3. Odznacz pole odpowiadające „wymagają bezpieczeństwa warstwy transportowej.'
Krok 4. Zachowaj wartość „Limit czasu połączenia klienta” do wartości domyślnej 30 minut.
Krok 5. W „Konfiguracji grupy docelowej” wybierz docelową instancję RDS DB z menu rozwijanego bazy danych.
Krok 6. Zachowaj wartość „Maksymalne połączenia puli połączeń” do wartości domyślnej „100”:
Krok 7. W sekcji łączności istnieje kilka pól:
Krok 8. W „konfiguracji zaawansowanej” sprawdź „Włącz ulepszone rejestrowanie” i na koniec wybierz „Utwórz proxy.'
Teraz poczekaj, aż proxy stanie się dostępny, a po zakończeniu skopiuj punkt końcowy proxy do testowania łączności z EC2.
Łączenie z instancją RDS DB za pośrednictwem proxy RDS.
Teraz sprawdzimy łączność naszej instancji DB RDS z EC2.
Krok 1. Przejdź do pulpitu Pulpitowego EC2, wybierz instancje i wybierz docelową instancję EC2, z której połączymy się z instancją RDS DB. Wybierz „Połącz.'
Krok 2. W Kreatora „Połącz się z instancją” wybierz opcję „EC2 Instance Connect”, która jest połączeniem SSH opartym na przeglądarce:
Nowe okno przeglądarki otworzy się po wybraniu przycisku „Podłącz” jak wcześniej w tym samouczku.
Krok 3. Z tego okna CLI użyj poniższego formatu polecenia, aby przetestować łączność EC2 z instancją RDS DB za pośrednictwem punktu końcowego proxy RDS:
$ mysql -h-P 3306 -U -P
Użyj swojego punktu końcowego proxy RDS zamiast „Proxy Endpoint” i nazwy użytkownika DB zamiast „nazwy użytkownika.„Wprowadź hasło DB, gdy zostaniesz zapytany. Kiedy uwierzytelnianie się powiedzie, zobaczysz monit MySQL na CLI:
Wniosek
W tym przewodniku dowiedzieliśmy się o skonfigurowaniu proxy RDS na AWS. Jest to bardzo korzystne dla dużych aplikacji, w tym Serverless, które mają wiele otwartych połączeń. Znacznie skraca czas przełączania awaryjnego dla baz danych Aurora i RDS. Można go łatwo użyć w wielu aplikacjach bez potrzeby zmiany kodu.