Aprowizowanie maszyny wirtualnej na platformie Azure wymaga dodatkowych składników oprócz samej maszyny wirtualnej, w tym zasobów sieciowych i magazynu. W tym artykule przedstawiono najlepsze rozwiązania dotyczące uruchamiania bezpiecznej maszyny wirtualnej z systemem Linux na platformie Azure.
Architektura
Pobierz plik programu Visio z tą architekturą.
Przepływ pracy
Grupa zasobów
Grupa zasobów to logiczny kontener, który przechowuje powiązane zasoby platformy Azure. Ogólnie rzecz biorąc, grupuj zasoby na podstawie ich okresu istnienia i kto będzie nimi zarządzać.
Blisko skojarzone zasoby objęte takim samym cyklem życia należy umieścić w tej samej grupie zasobów. Grupy zasobów umożliwiają wdrażanie i monitorowanie zasobów jako grupy oraz śledzenie kosztów według grupy zasobów. Zasoby można również usunąć jako zestaw, co jest przydatne w przypadku wdrożeń testowych. Przypisuj zrozumiałe nazwy zasobów, aby uprościć znajdowanie określonego zasobu i rozumienie jego roli. Aby uzyskać więcej informacji, zobacz Zalecane konwencje nazewnictwa dla zasobów platformy Azure.
Maszyna wirtualna
Możesz aprowizować maszynę wirtualną za pomocą listy opublikowanych obrazów, niestandardowego obrazu zarządzanego lub pliku wirtualnego dysku twardego (VHD), który został przekazany do usługi Azure Blob Storage. pomoc techniczna platformy Azure z różnymi popularnymi dystrybucjami systemu Linux, w tym Debianem, Red Hat Enterprise Linux (RHEL) i Ubuntu. Aby uzyskać więcej informacji, zobacz Azure and Linux (Platforma Azure i system Linux).
Platforma Azure oferuje różne rozmiary maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz Rozmiary maszyn wirtualnych na platformie Azure. Jeśli przenosisz istniejące obciążenie na platformę Azure, zacznij od rozmiaru maszyny wirtualnej najbliższego dopasowania do serwerów lokalnych. Następnie zmierz wydajność rzeczywistego obciążenia pod względem procesora CPU, pamięci i operacji wejścia/wyjścia dysku na sekundę (IOPS) i dostosuj rozmiar zgodnie z potrzebami.
Ogólnie rzecz biorąc, wybierz region świadczenia usługi Azure, który znajduje się najbliżej użytkowników wewnętrznych lub klientów. Nie wszystkie rozmiary maszyn wirtualnych są dostępne we wszystkich regionach. Aby uzyskać więcej informacji, zobacz Usługi według regionów. Aby uzyskać listę rozmiarów maszyn wirtualnych dostępnych w określonym regionie, uruchom następujące polecenie w interfejsie wiersza polecenia platformy Azure:
az vm list-sizes --location <location>
Aby uzyskać informacje o wybieraniu opublikowanego obrazu maszyny wirtualnej, zobacz Znajdowanie obrazów maszyn wirtualnych z systemem Linux.
Dyski
Aby uzyskać najwyższą wydajność we/wy dysku, zalecamy użycie usługi Premium Storage, która przechowuje dane na dyskach półprzewodnikowych (SSD, solid-state drive). Koszt jest oparty na pojemności aprowizowanego dysku. Wartość IOPS i przepływność (to znaczy szybkość transferu danych) także zależą od rozmiaru dysku, dlatego podczas aprowizowania dysku należy uwzględnić wszystkie trzy czynniki (pojemność, operacje wejścia/wyjścia na sekundę i przepływność). Usługa Premium Storage oferuje również bezpłatne zwiększanie wydajności, w połączeniu ze zrozumieniem wzorców obciążeń, oferuje efektywną strategię wyboru jednostki SKU i optymalizacji kosztów dla infrastruktury IaaS, umożliwiając wysoką wydajność bez nadmiernej aprowizacji i zminimalizowania kosztów nieużywanej pojemności.
Dyski zarządzane uprościć zarządzanie dyskami, obsługując magazyn. Dyski zarządzane nie wymagają konta magazynu. Określasz rozmiar i typ dysku, który jest wdrażany jako zasób o wysokiej dostępności. Dyski zarządzane oferują również optymalizację kosztów, zapewniając żądaną wydajność bez konieczności nadmiernej aprowizacji, uwzględniając wahania wzorców obciążeń i minimalizując nieużywaną aprowizowaną pojemność.
Dysk systemu operacyjnego jest dyskiem VHD przechowywanym w usłudze Azure Storage, dzięki czemu nie znika nawet w przypadku awarii komputera hosta. Wirtualny dysk twardy może być lokalnie dołączony do urządzenia NVMe lub podobne urządzenia dostępne na wielu jednostkach SKU maszyn wirtualnych.
Dyski efemeryczne zapewniają dobrą wydajność bez dodatkowych kosztów, ale mają znaczące wady nietrwałe, mają ograniczoną pojemność i są ograniczone tylko do korzystania z systemu operacyjnego i dysku tymczasowego. W przypadku maszyn wirtualnych z systemem Linux dyskiem systemu operacyjnego jest /dev/sda1
. Zalecamy również utworzenie co najmniej jednego dysku danych, które są trwałymi dyskami VHD używanymi na potrzeby danych aplikacji.
Po utworzeniu wirtualnego dysku twardego jest on niesformatowany. Zaloguj się do maszyny wirtualnej, aby sformatować dysk. W powłoce systemu Linux dyski danych są wyświetlane jako /dev/sdc
, /dev/sdd
i tak dalej. Możesz uruchomić polecenie lsblk
, aby wyświetlić urządzenia blokowe, w tym dyski. Aby użyć dysku danych, utwórz partycję i system plików oraz zainstaluj dysk. Na przykład:
# Create a partition.
sudo fdisk /dev/sdc # Enter 'n' to partition, 'w' to write the change.
# Create a file system.
sudo mkfs -t ext3 /dev/sdc1
# Mount the drive.
sudo mkdir /data1
sudo mount /dev/sdc1 /data1
W przypadku dodania dysku danych zostanie do niego przypisany identyfikator numeru jednostki logicznej (LUN, logical unit number). Opcjonalnie możesz określić identyfikator JEDNOSTKI LUN — na przykład jeśli zastępujesz dysk i chcesz zachować ten sam identyfikator JEDNOSTKI LUN lub masz aplikację, która szuka określonego identyfikatora JEDNOSTKI LUN. Jednak należy pamiętać, że identyfikator LUN musi być unikatowy dla każdego dysku.
Można zmienić harmonogram we/wy, aby zoptymalizować wydajność dysków SSD, ponieważ dyski maszyn wirtualnych kont usługi Premium Storage to dyski SSD. Ogólne zalecenie to użycie harmonogramu NOOP dla dysków SSD, ale należy użyć narzędzia, takiego jak iostat, do monitorowania wydajności we/wy dysku dla obciążenia.
Maszyna wirtualna jest tworzona razem z dyskiem tymczasowym. Ten dysk jest przechowywany na dysku fizycznym maszyny hosta. Nie jest on zapisany w usłudze Azure Storage i może zostać usunięty podczas ponownego uruchamiania i innych zdarzeń cyklu życia maszyny wirtualnej. Używaj tego dysku tylko dla danych tymczasowych, takich jak plik stronicowania lub plik wymiany. W przypadku maszyn wirtualnych z systemem Linux dysk tymczasowy to dysk /dev/disk/azure/resource-part1
zainstalowany jako /mnt/resource
lub /mnt
.
Sieć
Składniki sieciowe obejmują następujące zasoby:
Sieć wirtualna. Każda maszyna wirtualna jest wdrażana w sieci wirtualnej, która jest podzielona na podsieci.
Interfejs sieciowy (karta sieciowa). Karta sieciowa umożliwia maszynie wirtualnej komunikację z siecią wirtualną. Jeśli potrzebujesz wielu kart sieciowych dla maszyny wirtualnej, maksymalna liczba kart sieciowych jest zdefiniowana dla każdego rozmiaru maszyny wirtualnej.
Publiczny adres IP. Publiczny adres IP jest wymagany do komunikowania się z maszyną wirtualną — na przykład za pośrednictwem protokołu RDP (Remote Desktop Protocol). Publiczny adres IP może być dynamiczny lub statyczny. Domyślnie jest dynamiczny.
- Zarezerwuj statyczny adres IP, jeśli potrzebujesz stałego adresu IP, który nie ulegnie zmianie — na przykład jeśli musisz utworzyć rekord DNS "A" lub dodać adres IP do bezpiecznej listy.
- Można również utworzyć w pełni kwalifikowaną nazwę domeny (FQDN, fully qualified domain name) dla adresu IP. Następnie można zarejestrować rekord CNAME, który wskazuje nazwę FQDN, w usłudze DNS. Aby uzyskać więcej informacji, zobacz Tworzenie w pełni kwalifikowanej nazwy domeny w witrynie Azure Portal.
Sieciowa grupa zabezpieczeń. Sieciowe grupy zabezpieczeń są używane do zezwalania na ruch sieciowy do maszyn wirtualnych lub blokowania go. Sieciowe grupy zabezpieczeń mogą być skojarzone z podsieciami lub z poszczególnymi wystąpieniami maszyn wirtualnych.
- Wszystkie sieciowe grupy zabezpieczeń zawierają zestaw domyślnych reguł, tym regułę blokującą cały ruch przychodzący z Internetu. Nie można usunąć reguł domyślnych, ale inne reguły mogą je przesłonić. Aby włączyć ruch internetowy, utwórz reguły zezwalające na ruch przychodzący do określonych portów — na przykład port 80 dla protokołu HTTP. Aby włączyć protokół Secure Shell (SSH), dodaj regułę sieciowej grupy zabezpieczeń zezwalającą na ruch przychodzący do portu TCP 22.
Brama translatora adresów sieciowych platformy Azure. Bramy translatora adresów sieciowych (NAT) umożliwiają wszystkim wystąpieniom w podsieci prywatnej połączenie wychodzące z Internetem, a jednocześnie pozostają w pełni prywatne. Tylko pakiety przychodzące jako pakiety odpowiedzi do połączenia wychodzącego mogą przechodzić przez bramę translatora adresów sieciowych. Niechciane połączenia przychodzące z Internetu nie są dozwolone.
Azure Bastion. Azure Bastion to w pełni zarządzane rozwiązanie jako usługa, które zapewnia bezpieczny dostęp do maszyn wirtualnych za pośrednictwem prywatnych adresów IP. Dzięki tej konfiguracji maszyny wirtualne nie potrzebują publicznego adresu IP, który uwidacznia je w Internecie, co zwiększa poziom bezpieczeństwa. Usługa Azure Bastion zapewnia bezpieczną łączność RDP lub SSH z maszynami wirtualnymi bezpośrednio za pośrednictwem protokołu Transport Layer Security (TLS) za pośrednictwem różnych metod, w tym witryny Azure Portal lub natywnych klientów SSH lub RDP.
Operacje
Protokół SSH. Przed utworzeniem maszyny wirtualnej z systemem Linux wygeneruj parę 2048-bitowych kluczy publiczny-prywatny, korzystając z algorytmu RSA. Użyj pliku klucza publicznego podczas tworzenia maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz How to Use SSH with Linux and Mac on Azure (Jak używać protokołu SSH w systemach Linux i Mac na platformie Azure).
Diagnostyka. Włącz monitorowanie i diagnostykę, w tym podstawowe metryki kondycji, dzienniki infrastruktury diagnostyki i diagnostykę rozruchu. Diagnostyka rozruchu może ułatwić diagnozowanie błędów rozruchu, jeśli nie będzie można uruchomić maszyny wirtualnej. Utwórz konto usługi Azure Storage do przechowywania dzienników. Standardowe konto magazynu lokalnie nadmiarowego (LRS, locally redundant storage) jest wystarczające dla dzienników diagnostycznych. Aby uzyskać więcej informacji, zobacz Włączanie monitorowania i diagnostyki.
Dostępność. Na maszynę wirtualną może mieć wpływ planowana konserwacja lub nieplanowany przestój. Można użyć dzienników ponownego uruchamiania maszyny wirtualnej do określenia, czy ponowne uruchomienie maszyny wirtualnej zostało spowodowane przez zaplanowaną konserwację. Aby uzyskać większą dostępność, wdróż wiele maszyn wirtualnych w zestawie dostępności lub w różnych strefach dostępności w regionie. Obie te konfiguracje zapewniają wyższą umowę dotyczącą poziomu usług (SLA).
Kopie zapasowe W celu ochrony przed przypadkową utratą danych użyj usługi Azure Backup, aby utworzyć kopię zapasową maszyn wirtualnych w magazynie geograficznie nadmiarowym. Usługa Azure Backup umożliwia wykonywanie kopii zapasowych spójnych z aplikacją.
Zatrzymywanie maszyny wirtualnej. Platforma Azure rozróżnia między stanami „zatrzymana” i „cofnięty przydział”. Opłaty są naliczane, gdy maszyna wirtualna jest zatrzymana, lecz nie wtedy, gdy jest cofnięty przydział. W witrynie Azure Portal przycisk Zatrzymaj powoduje cofnięcie przydziału maszyny wirtualnej. Jeśli maszyna wirtualna zostanie zamknięta za pomocą systemu operacyjnego przez zalogowanego użytkownika, to zostanie zatrzymana, lecz przydział nie zostanie cofnięty, więc w dalszym ciągu będą naliczane opłaty.
Usuwanie maszyny wirtualnej. Jeśli usuniesz maszynę wirtualną, możesz usunąć lub zachować jego dyski. Oznacza to, że możesz bezpiecznie usunąć maszyną wirtualną bez utraty danych. Jednak nadal będą naliczane opłaty za dyski. Dyski zarządzane można usuwać tak samo jak każdy inny zasób platformy Azure. Aby zapobiec przypadkowemu usunięciu, użyj blokady zasobu do zablokowania całej grupy zasobów lub poszczególnych zasobów, takich jak maszyna wirtualna.
Kwestie wymagające rozważenia
Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.
Optymalizacja kosztów
Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.
Istnieją różne opcje rozmiarów maszyn wirtualnych w zależności od użycia i obciążenia. Zakres obejmuje najbardziej ekonomiczną opcję serii Bs do najnowszych maszyn wirtualnych gpu zoptymalizowanych pod kątem uczenia maszynowego. Aby uzyskać informacje o dostępnych opcjach, zobacz Cennik maszyny wirtualnej z systemem Linux platformy Azure.
W przypadku przewidywalnych obciążeń użyj planu oszczędności platformy Azure i rezerwacji platformy Azure na potrzeby obliczeń z umową roczną lub trzyletnią i uzyskaj znaczne oszczędności z płatności zgodnie z rzeczywistym użyciem. W przypadku obciążeń bez przewidywalnego czasu ukończenia lub zużycia zasobów należy rozważyć opcję Płatność zgodnie z rzeczywistym użyciem .
Użyj maszyn wirtualnych typu spot platformy Azure, aby uruchamiać obciążenia, które można przerwać i nie wymagają ukończenia w ramach wstępnie określonego przedziału czasu lub umowy SLA. Platforma Azure wdraża maszyny wirtualne typu spot, jeśli jest dostępna pojemność i eksmituje, gdy potrzebuje pojemności z powrotem. Koszty związane z maszynami wirtualnymi typu spot są znacznie niższe. Rozważ użycie maszyn wirtualnych typu spot dla tych obciążeń:
- Obliczenia o wysokiej wydajności, zadania przetwarzania wsadowego lub aplikacje do renderowania grafiki.
- Środowiska testowe, w tym obciążenia ciągłej integracji i ciągłego dostarczania.
- Aplikacje bezstanowe, tworzone w dużej skali.
Użyj kalkulatora cen platformy Azure, aby oszacować koszty.
Aby uzyskać więcej informacji, zapoznaj się z sekcją kosztów w temacie Dobrze zaprojektowana struktura platformy Microsoft Azure.
Zabezpieczenia
Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.
Użyj Microsoft Defender dla Chmury, aby uzyskać centralny widok stanu zabezpieczeń zasobów platformy Azure. Defender dla Chmury monitoruje potencjalne problemy z zabezpieczeniami i zapewnia kompleksowy obraz kondycji zabezpieczeń wdrożenia. Defender dla Chmury jest konfigurowana na subskrypcję platformy Azure. Włącz zbieranie danych zabezpieczeń zgodnie z opisem w temacie Dołączanie subskrypcji platformy Azure do usługi Defender dla Chmury Standard. Po włączeniu zbierania danych Defender dla Chmury automatycznie skanuje wszystkie maszyny wirtualne utworzone w ramach tej subskrypcji.
Zarządzanie poprawkami. Jeśli to ustawienie jest włączone, Defender dla Chmury sprawdza, czy brakuje żadnych aktualizacji zabezpieczeń i krytycznych.
Oprogramowanie chroniące przed złośliwym kodem. Jeśli to ustawienie jest włączone, Defender dla Chmury sprawdza, czy jest zainstalowane oprogramowanie chroniące przed złośliwym kodem. Możesz również użyć Defender dla Chmury, aby zainstalować oprogramowanie chroniące przed złośliwym kodem z poziomu witryny Azure Portal.
Kontrola dostępu. Kontrola dostępu oparta na rolach (RBAC) platformy Azure umożliwia kontrolowanie dostępu do zasobów platformy Azure. Kontrola dostępu oparta na rolach platformy Azure umożliwia przypisywanie ról autoryzacji członkom zespołu DevOps. Na przykład rola Czytelnik może umożliwiać wyświetlanie zasobów platformy Azure, ale nie ich tworzenie, usuwanie ani zarządzanie nimi. Niektóre uprawnienia są specyficzne dla typu zasobu platformy Azure. Na przykład rola Współautor maszyny wirtualnej umożliwia ponowne uruchomienie lub cofnięcie przydziału maszyny wirtualnej, zresetowanie hasła administratora, utworzenie nowej maszyny wirtualnej itd. Inne wbudowane role, które mogą być przydatne w tej architekturze, obejmują użytkownika usługi DevTest Labs i współautora sieci.
Uwaga
Kontrola dostępu oparta na rolach platformy Azure nie ogranicza akcji, które użytkownik zalogowany do maszyny wirtualnej może wykonać. Te uprawnienia są określane przez typ konta w systemie operacyjnym gościa.
Dzienniki inspekcji. Użyj dzienników inspekcji, aby wyświetlić akcje aprowizowania i inne zdarzenia maszyny wirtualnej.
Szyfrowanie danych. Użyj usługi Azure Disk Encryption , jeśli musisz zaszyfrować dyski systemu operacyjnego i danych.
Doskonałość operacyjna
Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i działają w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Omówienie filaru doskonałości operacyjnej.
Użyj jednego szablonu usługi Azure Resource Manager do aprowizowania zasobów platformy Azure i jej zależności. Ponieważ wszystkie zasoby znajdują się w tej samej sieci wirtualnej, są odizolowane w tym samym obciążeniu podstawowym. Ułatwia skojarzenie określonych zasobów obciążenia z zespołem DevOps, dzięki czemu zespół może niezależnie zarządzać wszystkimi aspektami tych zasobów. Ta izolacja umożliwia zespołowi DevOps wykonywanie ciągłej integracji i ciągłego dostarczania (CI/CD).
Ponadto możesz użyć różnych szablonów usługi Azure Resource Manager i zintegrować je z usługą Azure DevOps Services , aby aprowizować różne środowiska w ciągu kilku minut, na przykład w celu replikowania środowisk produkcyjnych, takich jak scenariusze lub środowiska testowania obciążenia tylko wtedy, gdy jest to konieczne, oszczędzając koszty.
Aby uzyskać wyższą architekturę dostępności, zobacz Aplikacja N-warstwowa systemu Linux na platformie Azure z rozwiązaniem Apache Cassandra, architektura referencyjna zawiera więcej niż jedną maszynę wirtualną, a każda maszyna wirtualna jest uwzględniona w zestawie dostępności.
Rozważ użycie usługi Azure Monitor w celu analizowania i optymalizowania wydajności infrastruktury oraz monitorowania i diagnozowania problemów z siecią bez konieczności logowania się do maszyn wirtualnych.
Następne kroki
- Aby utworzyć maszynę wirtualną z systemem Linux, zobacz Szybki start: tworzenie maszyny wirtualnej z systemem Linux w witrynie Azure Portal
- Aby zainstalować sterownik NVIDIA na maszynie wirtualnej z systemem Linux, zobacz Instalowanie sterowników procesora GPU NVIDIA na maszynach wirtualnych serii N z systemem Linux
- Aby aprowizować maszynę wirtualną z systemem Linux, zobacz Tworzenie maszyn wirtualnych z systemem Linux i zarządzanie nimi przy użyciu interfejsu wiersza polecenia platformy Azure
- Domyślny dostęp wychodzący na platformie Azure