Udostępnij za pośrednictwem


Najlepsze rozwiązania dotyczące architektury dla usługi Azure Database for PostgreSQL

Azure Database for PostgreSQL to usługa relacyjnej bazy danych na platformie Azure oparta na relacyjnej bazie danych PostgreSQL. Jest to w pełni zarządzane, oparte na chmurze rozwiązanie bazy danych, które obsługuje obciążenia o krytycznym znaczeniu dla misji z przewidywalną wydajnością, zabezpieczeniami, wysoką dostępnością i dynamiczną skalowalnością. Usługa Azure Database for PostgreSQL jest oparta na wersji community aparatu bazy danych PostgreSQL. Jest on zgodny z wersją Community Edition serwera PostgreSQL i obsługuje funkcje rozszerzenia PostgreSQL, takie jak PostGIS i TimescaleDB.

W tym artykule założono, że jako architekt przejrzeliśmy opcje danych platformy Azure i wybraliśmy usługę Azure Database for PostgreSQL jako magazyn danych dla obciążenia. Wskazówki w tym artykule zawierają zalecenia dotyczące architektury, dopasowane do zasad filarów Well-Architected Framework.

Ważne

Jak używać tego przewodnika

Każda sekcja zawiera listę kontrolną projektu, która przedstawia zagadnienia dotyczące architektury wraz ze strategiami projektowania odpowiednimi dla zakresu technologii.

Dostępne są również zalecenia dotyczące możliwości technologicznych, które mogą pomóc zmaterializować te strategie. Zalecenia nie reprezentują wyczerpującej listy wszystkich konfiguracji dostępnych dla usługi Azure Database for PostgreSQL i jej zależności. Zamiast tego przedstawiają listę kluczowych zaleceń dopasowywanych do perspektyw projektowych. Skorzystaj z zaleceń, aby utworzyć weryfikację koncepcji lub zoptymalizować istniejące środowiska.

Podstawowa architektura, która demonstruje kluczowe zalecenia:
Wzorzec niezawodnej aplikacji internetowej dla języka Java.

Zakres technologii

Ten przegląd koncentruje się na powiązanych decyzjach dotyczących następujących zasobów platformy Azure:

  • Baza danych Azure dla PostgreSQL

Niezawodność

Celem filaru niezawodności jest zapewnienie ciągłej funkcjonalności dzięki tworzeniu wystarczającej odporności i możliwości szybkiego odzyskiwania po awariach.

Zasady projektowania systemów niezawodnych zapewniają strategię projektową wysokiego poziomu stosowaną do poszczególnych składników, przepływów systemowych i całego systemu.

Lista kontrolna projektu

  • Zapoznaj się ze wskazówkami dotyczącymi niezawodności produktów usługi Azure Database for PostgreSQL.
    Aby uzyskać więcej informacji, zobacz następujące zasoby:

  • Dopasuj cele niezawodności i odzyskiwania dla usługi Azure Database for PostgreSQL do celów obciążeń. Wybierz odpowiednią jednostkę SKU usługi Azure Database for PostgreSQL, która może obsługiwać cele dotyczące niezawodności i odzyskiwania.

  • Określ odpowiednie konfiguracje wysokiej dostępności i nadmiarowości dla instancji usługi Azure Database for PostgreSQL. Ustal, czy konfiguracje strefowo nadmiarowe lub strefowe są potrzebne do spełnienia wymagań dotyczących niezawodności.

  • Uwzględnij odzyskiwanie wystąpień usługi Azure Database for PostgreSQL w planowaniu i ćwiczeniach dotyczących odzyskiwania po awarii. Upewnij się, że całe obciążenie robocze jest odzyskiwalne zgodnie z celami odzyskiwania.

  • Dołączanie wystąpień usługi Azure Database for PostgreSQL do platformy do obserwacji. Włącz rozszerzone metryki, aby monitorować stan instancji. Uwzględnij monitorowanie kondycji wysokiej dostępności w rozwiązaniu do monitorowania.

Zalecenia

Zalecenie Korzyść
Wybierz odpowiednią konfigurację wysokiej dostępności. Po skonfigurowaniu wysokiej dostępności serwer usługi Azure Database for PostgreSQL automatycznie aprowizuje replikę rezerwową i zarządza nią. Ta konfiguracja zapewnia, że usługa pozostaje dostępna i nie traci danych podczas przestoju strefy.
Konfigurowanie geograficznie nadmiarowych kopii zapasowych. Replikacje odczytu między regionami można wdrożyć, aby chronić bazy danych przed awariami regionalnymi. Geograficznie nadmiarowe kopie zapasowe są włączone w wybranych regionach i pomagają w odzyskiwaniu po awarii, jeśli region serwera podstawowego jest niedostępny.

Redundancja geograficzna może również być osiągnięta przy użyciu magazynu usługi Azure Backup do długoterminowego przechowywania punktów odzyskiwania. Jeśli wystąpi awaria regionalna lub awaria, możesz użyć kopii zapasowej, aby przywrócić serwer bazy danych do sparowanego regionu platformy Azure, co minimalizuje przestoje.

Usługa Azure Backup zapewnia również replikację geograficzną dla usługi Azure Database for PostgreSQL. Ta funkcja zwiększa wydajność i zmniejsza przestoje podczas awarii lub awarii regionalnych.
Przetestuj strategię tworzenia i przywracania kopii zapasowej w sposób regularny. Regularne testowanie strategii tworzenia kopii zapasowych i przywracania gwarantuje, że można odzyskać bazy danych i obsługiwać operacje w przypadku wystąpienia awarii.

Bezpieczeństwo

Celem filaru Zabezpieczenia jest zapewnienie gwarancji dotyczących poufności, integralności i dostępności obciążenia.

Zasady projektowania zabezpieczeń zapewniają strategię projektowania wysokiego poziomu w celu osiągnięcia tych celów, stosując podejścia do projektu technicznego usługi Azure Database for PostgreSQL.

Lista kontrolna projektu

  • Przejrzyj punkt odniesienia zabezpieczeń. Aby zwiększyć poziom bezpieczeństwa obciążenia, zapoznaj się z punktem odniesienia zabezpieczeń platformy Azure dla usługi Azure Database for PostgreSQL.

  • Zaimplementuj ścisłe, warunkowe i audytowalne zarządzanie tożsamościami i dostępem. Użyj identyfikatora Entra firmy Microsoft do uwierzytelniania i autoryzacji, aby ulepszyć zarządzanie tożsamościami.

  • Stosowanie segmentacji sieci i mechanizmów kontroli zabezpieczeń. Użyj wbudowanej zapory sieciowej na poziomie serwera wraz z mechanizmami zapory sieciowej wirtualnej, aby odizolować instancję od innych składników obciążenia i sieci publicznych.

  • Użyj natywnych funkcji zabezpieczeń, aby dodać dodatkowe warstwy ochrony. Zapobiegaj złośliwym działaniom, konfigurując zabezpieczenia na poziomie wiersza i ograniczanie połączeń.

Zalecenia

Zalecenie Korzyść
Zaimplementuj sieciowe grupy zabezpieczeń i zapory , aby kontrolować dostęp do bazy danych. W ramach modelu Zero Trust na potrzeby zabezpieczeń użyj segmentacji sieci, aby ograniczyć ścieżki komunikacji między składnikami, takimi jak aplikacje i serwery baz danych, tylko do tego, co jest potrzebne. Tę funkcję można zaimplementować przy użyciu sieciowych grup zabezpieczeń i grup zabezpieczeń aplikacji.
Nawiąż połączenie z bazami danych za pośrednictwem usługi Azure Private Link. Usługa Private Link umożliwia tworzenie prywatnych punktów końcowych dla usługi Azure Database for PostgreSQL w celu rozszerzenia usługi wewnątrz sieci wirtualnej.
Użyj identyfikatora Entra firmy Microsoft do uwierzytelniania i autoryzacji, aby ulepszyć zarządzanie tożsamościami. Uwierzytelnianie Microsoft Entra pozwala na nawiązanie połączenia z usługą Azure Database for PostgreSQL przy użyciu tożsamości zarządzanych w Microsoft Entra.
Konfigurowanie zabezpieczeń na poziomie wiersza. Zabezpieczenia na poziomie wiersza to funkcja zabezpieczeń PostgreSQL, która umożliwia administratorom bazy danych definiowanie zasad w celu kontrolowania sposobu wyświetlania i działania określonych wierszy danych dla co najmniej jednej roli. Zabezpieczenia na poziomie wiersza to dodatkowy filtr, który można zastosować do tabeli bazy danych PostgreSQL.
W razie potrzeby w celu zapewnienia zgodności użyj kluczy zarządzanych przez klienta (CMK) na potrzeby szyfrowania danych i zapisz klucze w usłudze Azure Key Vault. Zestawy CMKs zapewniają pełną kontrolę nad cyklem życia klucza szyfrowania, w tym rotacją kluczy, w celu dostosowania ich do zasad firmy. Usługa Key Vault umożliwia scentralizowane zarządzanie i organizację kluczy szyfrowania w ramach własnych dedykowanych wystąpień usługi Key Vault.
Włącz ograniczanie połączeń dla adresów IP, które mają nadmierne nieudane próby logowania. Ustawienie parametru connection_throttling serwera na enabled pomaga chronić bazy danych przed złośliwymi próbami logowania i atakami DDoS (Distributed Denial of Service) poprzez ograniczenie powtarzających się prób nawiązania połączenia z tego samego adresu IP.
Regularnie przeprowadzaj inspekcje zabezpieczeń. Regularne przeprowadzanie inspekcji zabezpieczeń pomaga identyfikować i korygować potencjalne luki w zabezpieczeniach.

Optymalizacja kosztów

Optymalizacja kosztów koncentruje się na wykrywaniu wzorców wydatków, określaniu priorytetów inwestycji w krytycznych obszarach i optymalizacji w innych w celu spełnienia budżetu organizacji przy jednoczesnym spełnieniu wymagań biznesowych.

Zasady projektowania optymalizacji kosztów zapewniają ogólną strategię projektowania służącą do osiągnięcia tych celów i dokonywania kompromisów zgodnie z potrzebami w projekcie technicznym związanym z usługą Azure Database for PostgreSQL i jej środowiskiem.

Lista kontrolna projektu

  • Szacowanie początkowego kosztu. W ramach ćwiczenia dotyczącego modelowania kosztów skorzystaj z kalkulatora cen platformy Azure, aby ocenić przybliżone koszty związane z usługą Azure Database for PostgreSQL w obciążeniu.

  • Wybierz odpowiedni poziom usługi dla Twojego obciążenia. Ustal, czy elastyczna warstwa cenowa, warstwa ogólnego przeznaczenia lub zoptymalizowana pamięciowo warstwa cenowa dla zasobów obliczeniowych spełnia wymagania dotyczące Twoich zastosowań.

  • Zastosuj dobrze świadomą strategię skalowania. Aby określić, kiedy i jak skalować zasoby usługi Azure Database for PostgreSQL, stale obserwuj i analizuj pojemność i zapotrzebowanie na obciążenie.

  • Skorzystaj z dostępnych rabatów. Rozważ jednoroczne lub trzyletnie rezerwacje obliczeniowe. Wystąpienia zarezerwowane mogą zaoszczędzić znaczne koszty zasobów obliczeniowych.

  • Użyj przydzielonego magazynu. Za magazyn kopii zapasowych do 100% całkowitej przydzielonej przestrzeni dyskowej serwera nie są naliczane dodatkowe opłaty.

  • Omówienie kosztów nadmiarowości. Użycie konfiguracji strefowo nadmiarowych lub strefowych podwaja koszty wystąpień, dlatego należy dokładnie rozważyć projekt nadmiarowości.

  • Zrozumienie kosztów chronionych wystąpień i magazynowania kopii zapasowych. Podczas tworzenia kopii zapasowej usługi Azure Database for PostgreSQL przy użyciu Azure Backup, opłaty za chronione instancje są naliczane za każde 250 GB, a opłaty za magazynowanie kopii zapasowych są uzależnione od całkowitej ilości przechowywanych danych i rodzaju nadmiarowości.

  • Wdróż w tym samym regionie co aplikacja. Wdrażaj w tym samym regionie co aplikacje, aby zminimalizować koszty transferu.

  • Konsolidowanie baz danych i serwerów. W praktyce konsolidowanie wielu baz danych i serwerów na jednym serwerze może pomóc zmniejszyć koszty.

Zalecenia

Zalecenia Korzyści
Wybierz odpowiednią warstwę i jednostkę SKU. Wybranie odpowiedniej warstwy i jednostki SKU pomaga uniknąć marnowania pieniędzy na nadmiar zasobów. Usługa Azure Advisor udostępnia zalecenia, w tym sugestie dotyczące praw serwera, aby zoptymalizować i zmniejszyć ogólne wydatki na platformę Azure.
Skalowanie zasobów obliczeniowych i magazynowych w przypadku zmian zapotrzebowania na obciążenie. Zasoby obliczeniowe można skalować pionowo (w górę lub w dół) i poziomo (na zewnątrz lub do wewnątrz) w razie potrzeby. Nie można zmniejszyć zasobów pamięci masowej po ich rozszerzeniu.
Użyj funkcji uruchamiania/zatrzymywania. Użyj funkcji uruchamiania/zatrzymywania, aby zatrzymać działanie serwera, gdy nie jest potrzebny.

Doskonałość operacyjna

Doskonałość operacyjna koncentruje się przede wszystkim na procedurach dotyczących praktyk programistycznych, możliwości obserwacji i zarządzania wydaniami.

Zasady projektowania doskonałości operacyjnej zapewniają ogólną strategię projektowania w celu osiągnięcia tych celów, uwzględniając wymagania operacyjne pracy.

Lista kontrolna projektu

  • Optymalizowanie możliwości odzyskiwania baz danych. Zdefiniuj zasady tworzenia kopii zapasowych i przechowywania, aby spełnić wymagania dotyczące zgodności.

  • Automatyzowanie zadań operacyjnych. Zadania automatyzacji umożliwiają automatyczne wykonywanie zadań, takich jak uruchamianie i zatrzymywanie serwera, skalowanie zasobów i inne zadania.

  • Monitorowanie kondycji i wydajności bazy danych. Zbieraj i analizuj dzienniki oraz metryki z Twojej instancji, aby proaktywnie wykrywać potencjalne problemy.

Zalecenia

Zalecenie Korzyści
Używaj zasad usługi Azure Backup indywidualnie lub razem z natywnymi automatycznymi kopiami zapasowymi w celu tworzenia kopii zapasowych baz danych. Usługa Azure Database for PostgreSQL zapewnia automatyczne kopie zapasowe i odzyskiwanie danych do wybranego punktu w czasie dla twojej bazy danych. Okres przechowywania kopii zapasowych można skonfigurować do 35 dni.

Użyj usługi Azure Backup, aby zdefiniować sposób i czas tworzenia kopii zapasowych, okres przechowywania punktów odzyskiwania oraz reguły ochrony i odzyskiwania danych. Punkty odzyskiwania można przechowywać w magazynie usługi Azure Backup przez maksymalnie 10 lat. Operacje tworzenia kopii zapasowych i przywracania można również zarządzać przy użyciu centrum ciągłości działania platformy Azure.
Zaplanuj niestandardowe okna konserwacji, aby zastosować aktualizacje usługi. Możesz zdefiniować niestandardowy harmonogram dla każdej usługi Azure Database for PostgreSQL w ramach subskrypcji platformy Azure. Zgodnie z niestandardowym harmonogramem można określić okno obsługi dla serwera, wybierając dzień tygodnia i godzinę rozpoczęcia jednogodzinnego okna obsługi.
Monitoruj serwer , aby upewnić się, że jest on w dobrej kondycji i działa zgodnie z oczekiwaniami. Usługa Azure Database for PostgreSQL zawiera różne metryki, które zapewniają wgląd w zachowanie zasobów obsługujących wystąpienie usługi Azure Database for PostgreSQL. Możesz również włączyć rozszerzone metryki, aby uzyskać szczegółowe monitorowanie i alerty dotyczące baz danych.

Efektywność operacyjna

Efektywność wydajności polega na utrzymywaniu doświadczenia użytkownika nawet wtedy, gdy występuje wzrost obciążenia dzięki zarządzaniu wydajnością. Strategia obejmuje skalowanie zasobów, identyfikowanie i optymalizowanie potencjalnych wąskich gardeł oraz optymalizowanie pod kątem szczytowej wydajności.

Zasady projektowania wydajności operacyjnej zapewniają ogólną strategię projektowania w celu osiągnięcia tych celów wydajności w stosunku do oczekiwanego użycia.

Lista kontrolna projektu

  • Optymalizowanie zapytań. Używanie funkcji natywnych do znajdowania możliwości optymalizacji zapytań.

  • Optymalizowanie indeksów. Użyj funkcji, takich jak dostrajanie indeksu, aby automatycznie analizować wzorce zapytań i otrzymywać zalecenia umożliwiające podejmowanie działań dotyczących tworzenia lub porzucania indeksów w celu zwiększenia wydajności.

  • Rozłożenie zadań tylko do odczytu. Jeśli Twoja aplikacja obsługuje ciągi połączeń w trybie tylko do odczytu, możesz odciążać operacje tylko do odczytu na repliki do odczytu.

Zalecenia

Zalecenie Korzyści
Użyj magazynu zapytań , aby śledzić wydajność zapytań w czasie. Magazyn zapytań upraszcza rozwiązywanie problemów z wydajnością, ułatwiając szybkie znajdowanie najdłużej działających i najbardziej intensywnie korzystających z zasobów zapytań.
Użyj Query Performance Insight, aby zidentyfikować zapytania najbardziej obciążające zasoby oraz te, które trwają najdłużej w obciążeniu. Szczegółowe informacje o wydajności zapytań ułatwiają identyfikowanie długotrwałych zapytań i ich zmian w czasie, określanie typów oczekiwania, które wpływają na nie, analizowanie najważniejszych zapytań bazy danych według częstotliwości i innych korzyści.
Użyj dostrajania indeksu z magazynem zapytań, aby analizować śledzone zapytania i udostępniać zalecenia. Optymalizacja indeksu analizuje obciążenie, które śledzi magazyn zapytań. Tworzy zalecenia dotyczące indeksu w celu zwiększenia wydajności analizowanego obciążenia lub porzucania zduplikowanych lub nieużywanych indeksów. Dostrajanie indeksów ułatwia identyfikowanie korzystnych indeksów, zduplikowanych indeksów i nieużywanych indeksów.
Użyj inteligentnego dostrajania , aby automatycznie zwiększyć wydajność i zapobiec problemom. Inteligentne dostrajanie stale monitoruje stan elastycznej bazy danych serwera usługi Azure Database for PostgreSQL i dynamicznie dostosowuje bazę danych do obciążenia.

Zasady platformy Azure

Platforma Azure udostępnia obszerny zestaw wbudowanych zasad związanych z usługą Azure Database for PostgreSQL i jej zależnościami. Niektóre z wcześniejszych zaleceń można poddawać audytowi za pomocą usługi Azure Policy. Możesz na przykład sprawdzić, czy:

Aby uzyskać kompleksowe zarządzanie, zapoznaj się z wbudowanymi definicjami Azure Policy dla Azure Database for PostgreSQL i innymi zasadami, które mogą mieć wpływ na bezpieczeństwo repozytoriów danych.

Rekomendacje usługi Azure Advisor

Azure Advisor to spersonalizowany konsultant ds. chmury, który pomaga stosować najlepsze rozwiązania w celu zoptymalizowania wdrożeń platformy Azure.

Aby uzyskać więcej informacji, zobacz Azure Advisor.