Wdrażanie infrastruktury systemów Linux i PostgreSQL
Ta lekcja przeprowadzi Cię przez proces tworzenia zasobów obliczeniowych hostujących aplikację na platformie Azure.
Istnieje wiele metod wdrażania infrastruktury na platformie Azure, w tym witryny Azure Portal, interfejsu wiersza polecenia platformy Azure i szablonów infrastruktury jako kodu (w tym Bicep i Terraform). W tej lekcji wdrożysz wstępnie skonfigurowany szablon Bicep, który hermetyzuje zasoby obliczeniowe wymagane dla aplikacji. Kluczowe zasoby to:
- Maszyna wirtualna z systemem Linux (Ubuntu 24.04 LTS)
- Usługa Azure Database for Postgres z uruchomionym programem Postgres 16 lub nowszym
- Tożsamość zarządzana umożliwiająca bezpieczny dostęp z maszyny wirtualnej do bazy danych
- Kontrola dostępu oparta na rolach, w tym role w celu uzyskania dostępu do bazy danych jako administrator, oraz bardziej restrykcyjne role dla samej aplikacji
- Sieć wirtualna dla maszyny wirtualnej i bazy danych
Ponieważ w tym przykładzie jest obciążenie tworzenia i testowania, chcemy zachować zarówno ekonomiczne, jak i wydajne elementy, wybraliśmy następującą konfigurację:
Maszyna wirtualna jest standardową D2s_v4 (dwie procesory wirtualne, 8 GB pamięci). Ma ona dyski SSD w warstwie Premium platformy Azure z maksymalną 3200 operacjami we/wy na sekundę (IOPS) i 128 GB miejsca do magazynowania. Ma dołączony dysk SSD P10 128 GB w warstwie Premium z 500 operacjami we/wy na sekundę dla dysku systemu operacyjnego. Możesz uaktualnić dysk systemu operacyjnego, aby był zgodny z operacjami we/wy na sekundę maszyny wirtualnej zgodnie z potrzebami.
Baza danych jest D2ds_v4 ogólnego przeznaczenia (dwa rdzenie wirtualne, 8 GB pamięci RAM) z maksymalną 3200 operacjami we/wy na sekundę. Ma dysk SSD P10 128 GB w warstwie Premium z 500 operacjami we/wy na sekundę. Możesz uaktualnić ten dysk, aby był zgodny z operacją we/wy na sekundę obliczeniową zgodnie z potrzebami.
Po ukończeniu modułu usuniesz te zasoby, aby zaoszczędzić koszty. Można jednak również wyłączyć maszynę wirtualną i bazę danych, gdy nie są używane, aby zaoszczędzić koszty obliczeń i płacić tylko za używany magazyn. Możesz również skalować to obciążenie w górę zgodnie z potrzebami.
Szablon Bicep w tym module korzysta z modułów zweryfikowanych platformy Azure (AVM). AVM to inicjatywa standaryzacji modułów infrastruktury jako kodu. Firma Microsoft utrzymuje te moduły i hermetyzuje wiele najlepszych rozwiązań dotyczących wdrażania zasobów na platformie Azure.
Upewnij się, że masz subskrypcję platformy Azure i interfejs wiersza polecenia platformy Azure
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Ten moduł wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.0.30 lub nowszej. Znajdź wersję przy użyciu następującego polecenia:
az --version
Jeśli konieczna będzie instalacja lub uaktualnienie interfejsu, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Logowanie się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure
Aby uruchomić polecenia na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure, musisz najpierw się zalogować. Zaloguj się przy użyciu az login polecenia :
az login
Tworzenie grupy zasobów
Grupa zasobów to kontener powiązanych zasobów. Wszystkie zasoby należy umieścić w grupie zasobów. Użyj polecenia az group create, aby utworzyć grupę zasobów:
az group create \
--name 240900-linux-postgres \
--location westus2
Wdrażanie szablonu Bicep przy użyciu interfejsu wiersza polecenia platformy Azure
Bicep to język specyficzny dla domeny (DSL), który używa składni deklaratywnej do wdrażania zasobów platformy Azure. W pliku Bicep zdefiniujesz infrastrukturę, którą chcesz wdrożyć na platformie Azure. Następnie użyjesz tego pliku w całym cyklu życia programowania, aby wielokrotnie wdrażać infrastrukturę. Zasoby są wdrażane w spójny sposób.
Plik Bicep używany do wdrażania zasobów obliczeniowych dla tej lekcji znajduje się w repozytorium deploy/vm-postgres.bicep GitHub. Zawiera ona maszynę wirtualną, sieć wirtualną, tożsamość zarządzaną i sieciową grupę zabezpieczeń dla maszyny wirtualnej. Więcej informacji na temat Bicep można przeczytać w artykule Co to jest Bicep?.
Sklonuj przykładowe repozytorium na komputer lokalny:
git clone https://github.com/Azure-Samples/linux-postgres-migration.gitPrzejdź do
linux-postgres-migrationkatalogu:cd linux-postgres-migrationWdróż szablon Bicep:
az deployment group create \ --resource-group 240900-linux-postgres \ --template-file deploy/vm-postgres.bicep
Po zakończeniu wdrażania dane wyjściowe JSON potwierdzają, że zasoby są wdrażane.
W następnych sekcjach skonfigurujesz i zapoznasz się z rolami RBAC oraz regułami zabezpieczeń sieci w wdrożonej infrastrukturze przy użyciu witryny Azure Portal. W przypadku korzystania z witryny Azure Portal możesz zakodować role i reguły do szablonu Bicep. Witryna Azure Portal udostępnia interfejs wizualny, który ułatwia zrozumienie relacji między zasobami i przypisanymi do nich uprawnieniami.
Otwieranie grupy zasobów w witrynie Azure Portal
Otwórz portal Azure Portal.
W menu usługi wybierz pozycję Grupy zasobów.
W okienku Grupy zasobów wybierz grupę
240900-linux-postgreszasobów .
W prawym górnym rogu okienka obszar Wdrożenia pokazuje stan wdrożenia szablonu Bicep. Po pomyślnym wdrożeniu zostanie wyświetlony komunikat Powodzenie.
Wyświetlanie sieciowej grupy zabezpieczeń maszyny wirtualnej
Wybierz maszynę wirtualną.
vm-1W sekcji Sieć wybierz pozycję Ustawienia sieciowe.
Ustawienia sieci pokazują, że sieciowa grupa zabezpieczeń (240900-linux-postgres-nsg) jest dołączona do tej samej podsieci sieci wirtualnej (240900-linux-postgres-vnet) co maszyna wirtualna.
Sieciowa grupa zabezpieczeń jest również widoczna w grupie zasobów. Zawiera zestaw reguł zabezpieczeń dla ruchu przychodzącego i wychodzącego, które kontrolują ruch do i z maszyny wirtualnej.
Wróć do grupy zasobów
W górnej części strony wybierz link do stron nadrzędnych, aby powrócić do grupy zasobów (Home > Resource groups > 240900-linux-postgres).
Należy pamiętać, że 240900-linux-postgres-identity tożsamość zarządzana przypisana przez użytkownika znajduje się w grupie zasobów.
Więcej informacji na temat tożsamości zarządzanych przypisanych przez system i przypisanych przez użytkownika można dowiedzieć się w artykule Co to są tożsamości zarządzane dla zasobów platformy Azure?.
Dodawanie reguły zabezpieczeń dla ruchu przychodzącego do sieciowej grupy zabezpieczeń
Dodaj regułę zabezpieczeń dla ruchu przychodzącego do sieciowej grupy zabezpieczeń, aby zezwolić na ruch SSH z bieżącego adresu IP do maszyny wirtualnej.
W scenariuszu produkcyjnym w celu ograniczenia dostępu do maszyny wirtualnej często używa się dostępu just in time, usługi Azure Bastion lub sieci VPN (takiej jak platforma Azure lub sieć VPN usługi Mesh).
Wybierz opcję
240900-linux-postgres-nsg.Wybierz pozycję Ustawienia>Reguły zabezpieczeń dla ruchu przychodzącego.
Wybierz Dodaj.
W obszarze Źródło wybierz pozycję Mój adres IP.
W obszarze Usługa wybierz pozycję SSH.
Wybierz Dodaj.
Wyświetlanie administratora serwera elastycznego usługi Azure Database for PostgreSQL
Znajdź i wybierz serwer elastyczny usługi Azure Database for PostgreSQL. Nazwa to
postgres-xxxxx, gdziexxxxxjest unikatowym ciągiem zdefiniowanym przez szablon Bicep. Ciąg pozostaje spójny we wszystkich wdrożeniach w ramach subskrypcji i grupy zasobów.Wybierz pozycję Uwierzytelnianie zabezpieczeń>.
W tym scenariuszu używasz tylko uwierzytelniania entra firmy Microsoft. Tożsamość 240900-linux-postgres-identity zarządzana przypisana przez użytkownika jest wyświetlana w obszarze Administratorzy firmy Microsoft.
Tożsamość 240900-linux-postgres-identity zarządzana jest obecnie jedynym administratorem serwera. Opcjonalnie możesz dodać własne konto użytkownika jako administrator. Jednak w tym scenariuszu używasz tożsamości zarządzanej, która jest już w miejscu.
W nadchodzącej sekcji użyjesz tożsamości z maszyny wirtualnej do administrowania serwerem za pośrednictwem interfejsu wiersza polecenia platformy Azure. Ta tożsamość jest również używana do zapewnienia dostępu do serwera dla aplikacji.
W scenariuszu produkcyjnym prawdopodobnie użyjesz kombinacji tożsamości zarządzanych, identyfikatora Firmy Microsoft Entra i szczegółowej kontroli dostępu opartej na rolach, aby umożliwić obciążeniu aplikacji bezpieczne uzyskiwanie dostępu do danych i zarządzanie zasobami na platformie Azure. Należy przestrzegać zasady najniższych uprawnień.
Przeczytaj więcej na temat tych scenariuszy uwierzytelniania w usłudze Microsoft Entra przy użyciu usługi Azure Database for PostgreSQL — serwer elastyczny i użyj identyfikatora Entra firmy Microsoft do uwierzytelniania za pomocą usługi Azure Database for PostgreSQL — serwer elastyczny.
Zapoznaj się z regułami zapory serwera elastycznego usługi Azure Database for PostgreSQL
Wybierz pozycję Ustawienia>Sieci.
Jeśli administrowano serwerem z maszyny lokalnej, a nie maszyną wirtualną, musisz dodać swój adres IP do reguł zapory.
Możesz utworzyć regułę zapory dla bieżącego adresu IP, wybierając pozycję Dodaj bieżący adres IP klienta (xxx.xxx.xxx.xxx)>Zapisz. Ta reguła umożliwia dostęp do serwera deweloperskiego/testowego przy użyciu narzędzi na komputerze lokalnym. Ponieważ jednak używasz maszyny wirtualnej do uzyskiwania dostępu do bazy danych, nie utworzysz w tej chwili reguły zapory.
W środowisku produkcyjnym można całkowicie odizolować ten serwer od publicznego Internetu przez wyczyszczenie opcji Zezwalaj na publiczny dostęp do tego zasobu za pośrednictwem Internetu przy użyciu opcji publicznego adresu IP.
W przeciwieństwie do maszyny wirtualnej nie skojarzono usługi Azure Database for PostgreSQL z żadną siecią wirtualną. Zachowasz opcję uzyskiwania dostępu do usługi Azure Database for PostgreSQL za pośrednictwem publicznego Internetu, co jest przydatne w scenariuszach tworzenia i testowania.
Aby zapewnić zarówno bezpieczeństwo, jak i elastyczność, należy włączyć dostęp z maszyny wirtualnej za pośrednictwem jej sieci wirtualnej przy użyciu prywatnego punktu końcowego. Prywatny punkt końcowy umożliwia maszynie wirtualnej dostęp do bazy danych bez uwidaczniania jej w publicznym Internecie. Przeczytaj więcej na temat prywatnych punktów końcowych w usłudze Azure Database for PostgreSQL — sieć serwera elastycznego za pomocą usługi Private Link.
W tym miejscu prywatny punkt końcowy został utworzony dla Ciebie przy użyciu aplikacji Bicep.
Przejrzyj przypisania ról dla przypisanej przez system tożsamości zarządzanej maszyny wirtualnej
Wróć do
240900-linux-postgresgrupy zasobów i wybierz pozycjęvm-1.W menu usługi wybierz pozycję Tożsamość zabezpieczeń>.
W tym miejscu możesz potwierdzić, że tożsamość zarządzana przypisana przez system jest dołączona do maszyny wirtualnej.
W obszarze System przypisane wybierz pozycję Przypisania ról platformy Azure.
W tym miejscu możesz potwierdzić, że rola Czytelnik jest przypisana do przypisanej przez system tożsamości zarządzanej. Rola jest ograniczona
240900-linux-postgresdo grupy zasobów.
Uprawnienia w tej tożsamości umożliwiają używanie interfejsu wiersza polecenia platformy Azure na maszynie wirtualnej do wyświetlania listy zasobów w grupie zasobów. Dzięki tej możliwości nie trzeba kodować szczegółowych informacji o zasobach specyficznych dla skryptów.
Na późniejszym etapie przypiszesz dodatkową rolę do tożsamości zarządzanej maszyny wirtualnej, aby maszyna wirtualna mogła bezpośrednio uzyskać dostęp do konta usługi Azure Blob Storage.
Następnie zapoznasz się z wdrożona infrastrukturą i skonfigurujesz ją.
Zasoby
- Moduły zweryfikowane na platformie Azure
- Zainstalowanie interfejsu wiersza polecenia platformy Azure
- Tworzenie grupy zasobów przy użyciu interfejsu wiersza polecenia platformy Azure
- Kontrola dostępu na podstawie ról platformy Azure
- Tożsamość zarządzana platformy Azure
- Co to jest Bicep?
- Co to są tożsamości zarządzane dla zasobów platformy Azure?
- Włączanie dostępu just in time na maszynach wirtualnych
- Co to jest usługa Azure Bastion?
- Uwierzytelnianie firmy Microsoft w usłudze Azure Database for PostgreSQL — serwer elastyczny
- Używanie uwierzytelniania usługi Microsoft Entra ID w usłudze Azure Database for PostgreSQL — serwer elastyczny
- Azure Database for PostgreSQL — sieć serwera elastycznego z usługą Private Link