O provisionamento de uma VM (máquina virtual) no Azure requer alguns componentes adicionais além da própria VM, incluindo recursos de rede e armazenamento. Este artigo mostra as melhores práticas para executar uma VM segura do Linux no Azure.
Arquitetura
Baixe um Arquivo Visio dessa arquitetura.
Workflow
Grupo de recursos
Um grupo de recursos é um contêiner lógico que armazena os recursos relacionados ao Azure. Em geral, recursos de grupo baseados em seu tempo de vida e que vão gerenciá-los.
Coloque recursos estreitamente associados que compartilhem o mesmo ciclo de vida no mesmo grupo de recursos. Os grupos de recursos permitem implantar e monitorar recursos como um grupo e rastrear custos de cobrança por grupo de recursos. Também é possível excluir recursos como um conjunto, o que é útil para implantações de teste. Atribua nomes de recursos significativos para simplificar a localização de um recurso específico e o reconhecimento de sua função. Para obter mais informações, confira Convenções de nomenclatura recomendadas para os Recursos do Azure.
Máquina virtual
Você pode provisionar uma VM a partir de uma lista de imagens publicadas, de um arquivo gerenciado personalizado ou um arquivo de VHD (disco rígido virtual) carregado no armazenamento Blobs do Azure. O Azure dá suporte à 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 e Linux.
O Azure oferece vários tamanhos de máquinas virtuais diferentes. Para obter mais informações, confira Tamanhos das máquinas virtuais no Azure. Se você estiver movendo uma carga de trabalho existente para o Azure, comece com o tamanho da VM que mais se aproxima de seus servidores locais. Em seguida, meça o desempenho da carga de trabalho real em termos de CPU, memória e IOPS (operações de entrada/saída de disco por segundo) e ajuste o tamanho conforme a necessidade.
Em geral, escolha a região do Azure que esteja 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, consulte 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 informações sobre como escolher uma imagem de VM publicada, consulte Localizar imagens de VM do Linux.
Discos
Para um melhor desempenho de E/S de disco, recomendamos o Armazenamento Premium, que armazena dados em SSDs (unidades de estado sólido). O custo é baseado na capacidade do disco provisionado. O IOPS e a taxa de transferência (ou seja, a taxa de transferência de dados) também dependem do tamanho do disco. Portanto, ao provisionar um disco, considere todos os três fatores (capacidade, IOPS e taxa de transferência). O armazenamento premium também apresenta bursting gratuito, combinado com uma compreensão dos padrões de carga de trabalho, oferece uma estratégia eficaz de seleção de SKU e otimização de custos para a infraestrutura IaaS, permitindo alto desempenho sem provisionamento excessivo e minimizando o custo da capacidade não utilizada.
O Managed Disks simplifica o gerenciamento de disco cuidando do 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 de OS é um VHD armazenado no Armazenamento do Microsoft Azure , de modo que ele persiste mesmo quando o computador host está desligado. O VHD pode ser NVMe conectado localmente ou dispositivos semelhantes disponíveis em muitos SKUs de VM.
Os discos efêmeros oferecem 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 do sistema operacional e do disco temporário. Para VMs do Linux, o disco de SO é /dev/sda1
. Também é recomendável criar um ou mais discos de dados, que são VHDs persistentes usados para dados de aplicativo.
Quando você cria um VHD, ele não está formatado. Faça logon na VM para formatar o disco. No shell do Linux, os discos de dados são exibidos como /dev/sdc
, /dev/sdd
e assim por diante. Você pode executar lsblk
para listar os dispositivos de bloco, incluindo os discos. Para usar um disco de dados, crie uma partição e o sistema de arquivos 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 você adiciona um disco de dados, uma ID de LUN (número de unidade lógica) é atribuída ao disco. Opcionalmente, você poderá especificar a ID do LUN — por exemplo, se estiver substituindo um disco e quiser manter a mesma ID de LUN ou tiver um aplicativo que está procurando uma ID de LUN específica. No entanto, lembre-se de que as IDs de LUN devem ser exclusivas para cada disco.
Convém alterar o agendador de E/S para otimizar o desempenho em SSDs, pois os discos para VMs com contas de armazenamento premium são SSDs. Uma recomendação comum é usar o agendador NOOP para SSDs, mas é necessário usar uma ferramenta como iostat para monitorar o desempenho de E/S de disco para sua carga de trabalho.
A VM é criada com um disco temporário. Esse disco é armazenado em uma unidade física no computador host. Ele não é salvo no Armazenamento do Microsoft Azure e pode ser excluído durante a reinicialização e outros eventos de ciclo de vida da VM. Use esse disco somente para dados temporários, como arquivos de paginação ou de permuta. Para VMs do Linux, o disco temporário é /dev/disk/azure/resource-part1
e é montado em /mnt/resource
ou /mnt
.
Rede
Os componentes de rede incluem os seguintes recursos:
Rede virtual. Cada VM é implantada em uma rede virtual que pode ser segmentada em sub-redes.
NIC (adaptador de rede). A NIC permite que a VM se comunique com a rede virtual. Se você precisar de vários NICs para sua VM, um número máximo de NICs é 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, sobre RDP (Área de Trabalho Remota). Esse endereço IP público pode ser dinâmico ou estático. O padrão é dinâmico.
- Reserve um endereço IP estático se precisar de um endereço IP fixo que não mudará, por exemplo, se precisar criar um registro A de DNS ou adicionar o IP endereço para uma lista segura.
- Você também pode criar um FQDN (nome de domínio totalmente qualificado) para o endereço IP. Em seguida, é possível registrar um registro CNAME no DNS que aponta para o FQDN. Para saber mais, consulte Criar um nome de domínio totalmente qualificado no Portal do Azure.
NSG (grupo de segurança de rede) . Os Grupos de segurança de rede são utilizados para permitir ou recusar o tráfego de rede a VMs. Os NSGs podem ser associados com sub-redes ou com instâncias VM individuais.
- Todos os NSGs contêm um conjunto de regras padrão, incluindo uma regra que bloqueia todo o tráfego de Internet de entrada. As regras padrão não podem ser excluídas, mas outras regras podem substituí-las. Para habilitar o tráfego de Internet, crie regras que permitam o tráfego de entrada em 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.
Gateway da NAT do Azure. Os gateways da NAT permitem que todas as instâncias em uma sub-rede privada se conectem à Internet enquanto permanecem totalmente privadas. Somente os pacotes que chegam como pacotes de resposta a uma conexão de saída podem passar por um gateway da NAT. Conexões de entrada não solicitadas da Internet não são permitidas.
Azure Bastion. O Azure Bastion é uma solução de plataforma como serviço totalmente gerenciada que permite 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 meio do 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ública-privada do RSA de 2048 bits. Use o arquivo de chave pública ao criar a VM. Para saber mais, veja Como usar SSH com Linux e Mac no Azure.
Diagnóstico. Habilite o monitoramento e diagnóstico, incluindo métricas de integridade básicas, logs de infraestrutura de diagnóstico e diagnóstico de inicialização. O diagnóstico de inicialização poderá ajudar a diagnosticar uma falha de inicialização se sua VM entrar em um estado não inicializável. Crie uma conta do Armazenamento do Azure para armazenar os logs. Uma conta LRS (armazenamento com redundância local) padrão é suficiente para os logs de diagnóstico. Para saber mais, confira Habilitar monitoramento e diagnóstico.
Disponibilidade. Sua VM pode ser afetada por manutenção planejada ou por tempo de inatividade não planejado. Você pode usar os logs de reinicialização da VM para determinar se uma reinicialização da VM foi causada por manutenção planejada. Para maior disponibilidade, implante várias VMs em um conjunto de disponibilidade ou em zonas de disponibilidade em uma região. Essas duas configurações fornecem um SLA (contrato de nível de serviço de nível) mais elevado.
Backups Para se proteger contra perda acidental de dados, use o serviço Backup do Azure a fim de fazer o backup das VMs em um armazenamento com redundância geográfica. O Backup do Azure fornece backups consistentes com o aplicativo.
Interromper uma VM. O Azure faz uma distinção entre os estados "parado" e "desalocado". Você será cobrado quando o status da VM for interrompido, mas não quando a VM for desalocada. No Portal do Azure, o botão Parar desaloca a VM. No entanto, se você desligar por meio do sistema operacional enquanto estiver conectado, a VM será interrompida, mas não desalocada e, portanto, você ainda será cobrado.
Excluir uma VM. Se você excluir uma VM, terá a opção de excluir ou manter seus discos. Isso significa que você poderá excluir com segurança a VM sem perda de dados. No entanto, você ainda será cobrado pelos discos. Você pode excluir discos gerenciados como qualquer outro recurso do Azure. Para evitar a exclusão acidental, use um bloqueio de recurso para bloquear o grupo de recursos inteiro ou bloquear recursos individuais, como uma VM.
Considerações
Estas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.
Otimização de custo
A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.
Há várias opções para tamanhos de VM, dependendo do uso e da carga de trabalho. O intervalo inclui a opção mais econômica da série Bs para as VMs de GPU mais recentes otimizadas para aprendizado de máquina. Para obter informações sobre as opções disponíveis, confira os preços da VM Linux do Azure.
Para cargas de trabalho previsíveis, utilize o Reservas do Azure e o Plano de economia do Azure para computação com um contrato de um ou três anos e receba uma economia significativa em relação aos preços pré-pagos. Para cargas de trabalho sem tempo previsível de conclusão ou consumo de recursos, considere a opção Pagamento conforme o uso.
Use as VMs Spot do Azure para executar cargas de trabalho que podem ser interrompidas e não exigem a conclusão em um período predeterminado ou em um SLA. O Azure implantará VMs Spot se houver capacidade disponível e removerá quando precisar da capacidade novamente. Os custos associados às máquinas virtuais Spot são significativamente menores. Considere as VMs Spot para estas cargas de trabalho:
- Cenários de computação de alto desempenho, processamento em lotes ou aplicativos de renderização visual.
- Ambientes de teste, incluindo cargas de trabalho de integração contínua e entrega contínua.
- Aplicativos sem estado de grande escala.
Use a Calculadora de Preços do Azure para estimar os custos.
Para obter mais informações, confira a seção de custo em Estrutura Bem Projetada do Microsoft Azure.
Segurança
A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira Visão geral do pilar de segurança.
Use o Microsoft Defender para Nuvem para ter uma exibição central do estado da segurança de todos os recursos do Azure. O Defender para Nuvem monitora problemas de segurança potenciais e fornece uma visão abrangente da integridade de segurança de sua implantação. O Defender para Nuvem é configurado por assinatura do Azure. Habilite a coleta de dados de segurança conforme descrito em Integrar a assinatura do Azure ao Defender para Nuvem Standard. Depois que a coleta de dados for habilitada, o Defender para Nuvem examinará automaticamente todas as VMs criadas nessa assinatura.
Gerenciamento de patch. Se for habilitado, o Defender para Nuvem verificará se quaisquer atualizações críticas e de segurança estão ausentes.
Antimalware. Se for habilitado, o Defender para Nuvem verificará se o software antimalware está instalado. Você também pode usar o Defender para Nuvem para instalar o software antimalware por meio do portal do Azure.
Controle de acesso. Use o RBAC (controle de acesso baseado em função) do Azure para controlar o acesso a recursos do Azure. O RBAC do Azure permite atribuir funções de autorização aos membros da equipe de DevOps. Por exemplo, a função Leitor pode exibir os recursos do Azure, mas não criar, gerenciar nem excluí-los. Algumas permissões são específicas para determinado tipo de recurso do Azure. Por exemplo, a função Colaborador da Máquina Virtual pode reiniciar ou desalocar uma VM, redefinir a senha de administrador, criar uma nova VM e, assim por diante. Outras funções internas que podem ser úteis para essa arquitetura incluem Usuário de DevTest Labs e Colaborador de Rede.
Observação
O RBAC do Azure não limita as ações que podem ser executadas por um usuário conectado a uma VM. Essas permissões são determinadas pelo tipo de conta no SO convidado.
Logs de auditoria. Use os logs de auditoria para ver as ações de provisionamento e outros eventos da VM.
Criptografia de dados. Use o Azure Disk Encryption se você precisa criptografar os discos do sistema operacional e de dados.
Excelência operacional
A excelência operacional abrange os processos de operações que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, confira 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 estã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 maneira independente todos os aspectos desses recursos. Esse isolamento permite que a Equipe de DevOps execute a CI/CD (integração contínua e entrega contínua).
Você também pode usar diferentes modelos do Azure Resource Manager e integrá-los ao Azure DevOps Services para provisionar diferentes ambientes em minutos, por exemplo, para replicar cenários semelhantes à produção ou carregar ambientes de teste somente quando necessário, economizando custos.
Para arquitetura de maior disponibilidade, confira o aplicativo de N camadas do Linux no Azure com o Apache Cassandra, a arquitetura de referência inclui mais de uma VM e cada VM está incluída em um conjunto de disponibilidade.
Considere usar o Azure Monitor para analisar e otimizar o desempenho de sua infraestrutura e monitorar e diagnosticar problemas de rede sem fazer logon em suas máquinas virtuais.
Próximas etapas
- Para criar uma máquina virtual Linux, consulte Início Rápido: criar uma máquina virtual do Linux no portal do Microsoft Azure
- Para instalar um driver da NVIDIA em uma VM Linux, consulte Instalar drivers de GPU da NVIDIA em VMs da série N executando Linux
- Para provisionar uma VM do Linux, confira Criar e gerenciar VMs do Linux com a CLI do Azure
- Acesso de saída padrão no Azure