O provisionamento de uma máquina virtual (VM) no Azure requer componentes adicionais além da própria VM, incluindo recursos de rede e armazenamento. Este artigo mostra as práticas recomendadas para executar uma VM Linux segura no Azure.
Arquitetura
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de Trabalho
Grupo de recursos
Um grupo de recursos é um contêiner lógico que contém recursos relacionados do Azure. Em geral, agrupe os recursos com base em seu tempo de vida e quem irá gerenciá-los.
Coloque recursos estreitamente associados que partilhem o mesmo ciclo de vida no mesmo grupo de recursos. Os grupos de recursos permitem-lhe implementar e monitorizar recursos como um grupo e monitorizar os custos de faturação por grupo de recursos. Você também pode excluir recursos como um conjunto, o que é útil para implantações de teste. Atribua nomes significativos aos recursos para simplificar a localização de um recurso específico e compreender a sua função. Para obter mais informações, veja Convenções de Nomenclatura Recomendadas para Recursos do Azure.
Máquina virtual
Pode aprovisionar uma VM com base numa lista de imagens publicadas, numa imagem gerida personalizada ou num ficheiro de disco rígido virtual (VHD) carregado para o Armazenamento de Blobs do Azure. O Azure suporta a execução de várias distribuições Linux populares, incluindo Debian, Red Hat Enterprise Linux (RHEL) e Ubuntu. Para obter mais informações, veja Azure and Linux (O Azure e o Linux).
O Azure oferece vários tamanhos de máquinas virtuais. Para obter mais informações, consulte Tamanhos para máquinas virtuais no Azure. Se você estiver movendo uma carga de trabalho existente para o Azure, comece com o tamanho da VM mais próximo de seus servidores locais. Em seguida, meça o desempenho da sua carga de trabalho real em termos de CPU, memória e operações de entrada/saída de disco por segundo (IOPS) e ajuste o tamanho conforme necessário.
Geralmente, escolha uma região do Azure mais próxima de seus usuários internos ou clientes. Nem todos os tamanhos de VM estão disponíveis em todas as regiões. Para obter mais informações, veja Serviços por região. Para obter uma lista dos tamanhos de VM disponíveis em uma região específica, execute o seguinte comando da CLI do Azure:
az vm list-sizes --location <location>
Para obter mais informações sobre como escolher uma imagem de VM publicada, veja Localizar imagens VM do Linux.
Discos
Para um melhor desempenho de E/S, recomendamos o Armazenamento Premium, que armazena os dados em unidades de estado sólido (SSDs). O custo tem por base a capacidade do disco aprovisionado. O IOPS e o débito (ou seja, a velocidade de transferência de dados) também dependem do tamanho do disco, pelo que, quando aprovisionar um disco, considere os três fatores (capacidade, IOPS e débito). O armazenamento premium também apresenta bursting gratuito, combinado com uma compreensão dos padrões de carga de trabalho, oferece uma seleção de SKU eficaz e uma estratégia de otimização de custos para a infraestrutura IaaS, permitindo alto desempenho sem provisionamento excessivo e minimizando o custo da capacidade não utilizada.
Os Managed Disks simplificam o gerenciamento de discos manipulando o armazenamento para você. Os discos gerenciados não exigem uma conta de armazenamento. Você especifica o tamanho e o tipo de disco e ele é implantado como um recurso altamente disponível. Os discos gerenciados também oferecem otimização de custos, fornecendo o desempenho desejado sem a necessidade de provisionamento excessivo, contabilizando padrões de carga de trabalho flutuantes e minimizando a capacidade provisionada não utilizada.
O disco do SO é um VHD armazenado no Armazenamento do Microsoft Azure, por isso, este persiste, mesmo quando o computador anfitrião está inativo. O VHD pode ser conectado localmente NVMe ou dispositivos semelhantes disponíveis em muitas SKUs VM.
Os discos efêmeros oferecem um bom desempenho sem custo extra, mas vêm com as desvantagens significativas de não serem persistentes, terem capacidade limitada e serem restritos apenas ao uso de SO e disco temporário. Para as VMs do Linux, o disco do SO é /dev/sda1
. Também recomendamos a criação de um ou mais discos de dados, que são VHDs persistentes usados para dados de aplicativos.
Quando cria um VHD, os discos de dados não estão formatados. Inicie sessão na VM para formatá-los. Na shell do Linux, os discos de dados são apresentados como /dev/sdc
, /dev/sdd
e assim sucessivamente. Pode executar lsblk
para listar os dispositivos de bloqueio, incluindo os discos. Para utilizar um disco de dados, crie uma partição e um sistema de ficheiros e monte o disco. Por exemplo:
# 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
Quando adiciona um disco de dados, é-lhe atribuído um número de unidade lógica (LUN). Opcionalmente, você pode especificar a ID do LUN — por exemplo, se estiver substituindo um disco e quiser manter a mesma ID do LUN ou se tiver um aplicativo que procure um ID de LUN específico. Contudo, lembre-se de que os IDs de LUNs têm de ser exclusivos para cada disco.
Poderá ser útil alterar o agendador de E/S para otimizar o desempenho dos SSDs, pois os discos das VMs com contas de armazenamento premium são SSDs. Uma recomendação comum é utilizar o agendador NOOP para os SSDs, mas deve utilizar uma ferramenta como iostat para monitorizar o desempenho de E/S do disco da carga de trabalho.
A VM é criada com um disco temporário. Este disco é armazenado numa unidade física na máquina anfitriã. Não é guardado no Armazenamento do Microsoft Azure e pode ser eliminado durante os reinícios e outros eventos do ciclo de vida das VMs. Utilize este disco apenas para dados temporários, tais como ficheiros de paginação ou de troca. Para as VMs do Linux, o disco temporário é /dev/disk/azure/resource-part1
e está montado em /mnt/resource
ou em /mnt
.
Rede
Os componentes de rede incluem os seguintes recursos:
Rede virtual. Cada VM é implantada em uma rede virtual que é segmentada em sub-redes.
Interface de rede (NIC). A NIC permite à VM comunicar com a rede virtual. Se você precisar de várias NICs para sua VM, um número máximo de NICs será definido para cada tamanho de VM.
Endereço IP público. Um endereço IP público é necessário para se comunicar com a VM — por exemplo, via RDP (Remote Desktop Protocol). O endereço IP público pode ser dinâmico ou estático. Por predefinição, é dinâmico.
- Reserve um endereço IP estático se precisar de um endereço IP fixo que não seja alterado — por exemplo, se precisar criar um registro DNS 'A' ou adicionar o endereço IP a uma lista segura.
- Também pode criar um nome de domínio completamente qualificado (FQDN) para o endereço IP. Depois, pode registar um registo CNAME no DNS que aponte para o FQDN. Para obter mais informações, veja Criar um nome de domínio completamente qualificado no portal do Azure.
Grupo de Segurança de Rede (NSG). Os grupos de segurança de rede são usados para permitir ou negar tráfego de rede para VMs. Os NSGs podem ser associados a sub-redes ou a instâncias de VM individuais.
- Todos os NSGs contêm um conjunto de regras predefinidas, incluindo uma regra que bloqueia todo o tráfego de entrada da Internet. Não é possível eliminar as regras predefinidas, mas estas podem ser substituídas por outras. Para habilitar o tráfego da Internet, crie regras que permitam o tráfego de entrada para portas específicas — por exemplo, a porta 80 para HTTP. Para habilitar o Secure Shell (SSH), adicione uma regra NSG que permita o tráfego de entrada para a porta TCP 22.
Azure NAT Gateway. Os gateways NAT (Network Address Translation) permitem que todas as instâncias em uma sub-rede privada se conectem de saída à Internet, permanecendo totalmente privadas. Somente os pacotes que chegam como pacotes de resposta a uma conexão de saída podem passar por um gateway NAT. Não são permitidas ligações de entrada não solicitadas a partir da Internet.
Azure Bastion. O Azure Bastion é uma solução de plataforma como serviço totalmente gerenciada que fornece acesso seguro a VMs por meio de endereços IP privados. Com essa configuração, as VMs não precisam de um endereço IP público que as exponha à internet, o que aumenta sua postura de segurança. O Azure Bastion fornece conectividade RDP ou SSH segura para suas VMs diretamente por TLS (Transport Layer Security) por meio de vários métodos, incluindo o portal do Azure ou clientes SSH ou RDP nativos.
Operações
SSH. Antes de criar uma VM do Linux, gere um par de chaves públicas-privadas de RSA 2048 bits. Utilize o ficheiro de chave pública quando criar a VM. Para obter mais informações, veja Como utilizar SSG com Linux e Mac no Azure.
Diagnósticos. Ative a monitorização e os diagnósticos, incluindo métricas básicas de estado de funcionamento, registos de infraestrutura de diagnósticos e diagnósticos de arranque. Os diagnósticos de arranque poderão ajudá-lo a diagnosticar falhas no arranque se a VM não estiver no estado de arranque. Crie uma conta de Armazenamento do Azure para armazenar os logs. Para conter os registos de diagnósticos, é suficiente uma conta de armazenamento localmente redundante (LRS) standard. Para obter mais informações, veja Enable monitoring and diagnostics (Ativar a monitorização e os diagnósticos).
Disponibilidade. Sua VM pode ser afetada pela manutenção planejada ou pelo tempo de inatividade não planejado. Pode utilizar registos de reinício de VM para determinar se o reinício de uma VM foi provocado por uma manutenção planeada. Para maior disponibilidade, implante várias VMs em um conjunto de disponibilidade ou em zonas de disponibilidade em uma região. Ambas as configurações fornecem um contrato de nível de serviço (SLA) mais alto.
Backups Para proteger contra perda acidental de dados, use o serviço de Backup do Azure para fazer backup de suas VMs para armazenamento com redundância geográfica. O Azure Backup proporciona cópias de segurança consistentes com aplicações.
Parar uma VM. O Azure faz uma distinção entre os estados “parada” e “desalocada”. Se o estado da VM for "parada", será cobrado, mas não se for "desalocada". No portal do Azure, o botão Parar desaloca a VM. Se encerrar com o SO enquanto tiver sessão iniciada, a VM será parada, mas não desalocada, pelo que continuarão a ser cobrado custos.
Eliminar uma VM. Se você excluir uma VM, terá a opção de excluir ou manter seus discos. Isto significa que pode eliminar em segurança a VM sem perder dados. No entanto, você ainda será cobrado pelos discos. Você pode excluir discos gerenciados como qualquer outro recurso do Azure. Para impedir a eliminação acidental, utilize um bloqueio de recursos para bloquear o grupo de recursos inteiro ou bloqueie recursos individuais, como a VM.
Considerações
Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser usados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.
Otimização de custos
A otimização de custos consiste em procurar formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Visão geral do pilar de otimização de custos.
Há várias opções para tamanhos de VM, dependendo do uso e da carga de trabalho. A gama inclui a opção mais económica da série B para as mais recentes VMs GPU otimizadas para aprendizagem automática. Para obter informações sobre as opções disponíveis, consulte Preços de VM do Azure Linux.
Para cargas de trabalho previsíveis, utilize as Reservas do Azure e o plano de poupança do Azure para computação com um contrato de um ou três anos e obtenha poupanças significativas nos preços pré-pagos. Para cargas de trabalho sem tempo previsível de conclusão ou consumo de recursos, considere a opção Pagar conforme o uso .
Use VMs spot do Azure para executar cargas de trabalho que podem ser interrompidas e não exigem conclusão dentro de um período de tempo predeterminado ou um SLA. O Azure implanta VMs spot se houver capacidade disponível e remove quando precisa da capacidade de volta. Os custos associados às máquinas virtuais Spot são significativamente mais baixos. Considere VMs spot para estas cargas de trabalho:
- Cenários de computação de alto desempenho, tarefas de processamento em lotes ou aplicações de composição visual.
- Ambientes de teste, incluindo integração contínua e cargas de trabalho de entrega contínua.
- Aplicações sem monitorização de estado de grande escala.
Use a Calculadora de Preços do Azure para estimar custos.
Para obter mais informações, veja a secção de custos Well-Architected Framework do Microsoft Azure.
Segurança
A segurança oferece garantias contra ataques deliberados e o abuso de seus valiosos dados e sistemas. Para obter mais informações, consulte Visão geral do pilar de segurança.
Use o Microsoft Defender for Cloud para obter uma exibição central do estado de segurança de seus recursos do Azure. O Defender for Cloud monitoriza potenciais problemas de segurança e fornece uma imagem abrangente do estado de funcionamento da segurança da sua implementação. O Defender for Cloud é configurado por assinatura do Azure. Habilite a coleta de dados de segurança conforme descrito em Integre sua assinatura do Azure ao Defender for Cloud Standard. Quando a coleta de dados está habilitada, o Defender for Cloud verifica automaticamente todas as VMs criadas sob essa assinatura.
Gestão de patches. Se ativado, o Defender for Cloud verifica se faltam atualizações críticas e de segurança.
Antimalware. Se ativado, o Defender for Cloud verifica se o software antimalware está instalado. Você também pode usar o Defender for Cloud para instalar software antimalware de dentro do portal do Azure.
Controlo de acessos. Use o controle de acesso baseado em função do Azure (Azure RBAC) para controlar o acesso aos recursos do Azure. O RBAC do Azure permite atribuir funções de autorização a membros da sua equipe de DevOps. Por exemplo, a Função Leitor pode ver recursos do Azure, mas não criá-los, geri-los nem eliminá-los. Algumas permissões são específicas para um tipo de recurso do Azure. Por exemplo, a função Contribuidor de Máquina Virtual pode reiniciar ou desalocar uma VM, repor a palavra-passe de administrador, criar uma nova VM e assim sucessivamente. Outras funções internas que podem ser úteis para essa arquitetura incluem Usuário do DevTest Labs e Colaborador de Rede.
Nota
O RBAC do Azure não limita as ações que um usuário conectado a uma VM pode executar. Estas permissões são determinadas pelo tipo de conta no SO convidado.
Logs de auditoria. Utilize registos de auditoria para ver ações de aprovisionamento e outros eventos da VM.
Encriptação de dados. Use a Criptografia de Disco do Azure se precisar criptografar o sistema operacional e os discos de dados.
Excelência operacional
A excelência operacional abrange os processos operacionais que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, consulte Visão geral do pilar de excelência operacional.
Use um único modelo do Azure Resource Manager para provisionar os recursos do Azure e suas dependências. Como todos os recursos estão na mesma rede virtual, eles são isolados na mesma carga de trabalho básica. Isso facilita a associação dos recursos específicos da carga de trabalho a uma equipe de DevOps, para que a equipe possa gerenciar de forma independente todos os aspetos desses recursos. Esse isolamento permite que a equipe de DevOps execute integração contínua e entrega contínua (CI/CD).
Além disso, você pode usar diferentes modelos do Azure Resource Manager e integrá-los aos Serviços de DevOps do Azure para provisionar ambientes diferentes em minutos, por exemplo, para replicar a produção, como cenários ou ambientes de teste de carga, somente quando necessário, economizando custos.
Para obter uma arquitetura de maior disponibilidade, consulte Aplicativo Linux N-tier no Azure com Apache Cassandra, a arquitetura de referência inclui mais de uma VM e cada VM está incluída em um conjunto de disponibilidade.
Considere utilizar o Azure Monitor para analisar e otimizar o desempenho da sua infraestrutura, monitorizar e diagnosticar problemas de rede sem iniciar sessão nas suas máquinas virtuais.
Próximos passos
- Para criar uma VM Linux, consulte Guia de início rápido: criar uma máquina virtual Linux no portal do Azure
- Para instalar um driver NVIDIA em uma VM Linux, consulte Instalar drivers de GPU NVIDIA em VMs da série N executando Linux
- Para provisionar uma VM Linux, consulte Criar e gerenciar VMs Linux com a CLI do Azure
- Acesso de saída padrão no Azure