Ejecución de una VM con Linux en Azure

Azure Backup
Azure Blob Storage
Azure Storage
Azure Virtual Machines

El aprovisionamiento de una máquina virtual (VM) de Azure requiere componentes adicionales, además de la propia máquina virtual, que incluyen recursos de red y de almacenamiento. En este artículo se muestran procedimientos recomendados para ejecutar una máquina virtual Linux en Azure.

Architecture

Diagram showing a Linux VM in Azure.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

Resource group

Un grupo de recursos es un contenedor lógico que incluye recursos de Azure relacionados. En general, los grupos de recursos se basan en su duración y quién los administra.

Coloque los recursos estrechamente asociados que comparten el mismo ciclo de vida en un mismo grupo de recursos. Los grupos de recursos permiten implementar y supervisar los recursos como un grupo, y realizar un seguimiento de los costos de facturación por grupo de recursos. También se pueden eliminar recursos en conjunto, lo que resulta útil cuando se realizan implementaciones de prueba. Asigne nombres de recursos significativos para simplificar la ubicación de un recurso específico y comprender su rol. Para más información, consulte las Convenciones de nomenclatura para los recursos de Azure.

Máquina virtual

Puede aprovisionar una máquina virtual desde una lista de imágenes publicadas, desde una imagen administrada personalizada o desde un archivo de disco duro virtual (VHD) cargado en Azure Blob Storage. Azure admite la ejecución de varias distribuciones Linux conocidas, como CentOS, Debian, Red Hat Enterprise, Ubuntu y FreeBSD. Para más información, consulte Azure y Linux.

Azure ofrece numerosos tamaños diferentes de máquina virtual. Para más información, consulte Tamaños de máquinas virtuales en Azure. Si desplaza una carga de trabajo existente a Azure, comience con el tamaño de máquina virtual que más se parezca a los servidores locales. Luego, mida el rendimiento de la carga de trabajo real, en términos de CPU, memoria y operaciones de entrada/salida por segundo (IOPS) del disco, y ajuste el tamaño según sea necesario.

Por lo general, se recomienda elegir una región de Azure más cercana a los usuarios internos o clientes. No todos los tamaños de máquina virtual están disponibles en todas las regiones. Para más información, consulte Productos disponibles por región. Para obtener una lista de los tamaños de máquina virtual disponibles en una región específica, ejecute el siguiente comando en la CLI de Azure:

az vm list-sizes --location <location>

Para información sobre cómo elegir una imagen de máquina virtual publicada, consulte Búsqueda de imágenes de máquina virtual Linux.

Discos

Para un mejor rendimiento de la E/S de disco, se recomienda Premium Storage, que almacena los datos en unidades de estado sólido (SSD). El costo se basa en la capacidad del disco aprovisionado. Las E/S por segundo y el rendimiento (es decir, la velocidad de transferencia de datos), también dependen del tamaño del disco, por lo que al aprovisionar un disco, debería tener en cuenta los tres factores (capacidad, E/S por segundo y rendimiento). Premium Storage también incluye expansión gratuita que, combinada con una comprensión de los patrones de carga de trabajo, ofrece una estrategia eficaz de selección de SKU y optimización de costes para la infraestructura de IaaS, lo que permite un alto rendimiento sin un exceso de aprovisionamiento y minimiza el coste de la capacidad no utilizada.

Managed Disks simplifica la administración de discos y controla el almacenamiento automáticamente. Managed Disks no requiere una cuenta de almacenamiento. Solo debe especificar el tamaño y el tipo de disco, y se implementará como un recurso de alta disponibilidad. Managed Disks también ofrece optimización de costes al proporcionar el rendimiento deseado sin necesidad de sobreaprovisionamiento, teniendo en cuenta los patrones fluctuantes de carga de trabajo y minimizando la capacidad aprovisionada no utilizada.

El disco del sistema operativo es un disco duro virtual almacenado en Azure Storage, por lo que se conserva incluso cuando la máquina host está inactiva. El disco duro virtual se puede conectar localmente a NVMe o a dispositivos similares disponibles en muchas SKU de máquina virtual.

Los discos efímeros ofrecen un buen rendimiento sin coste adicional, pero tienen el inconveniente de no ser persistentes, tener una capacidad limitada y estar restringidos al uso del sistema operativo y de discos temporales. Para máquinas virtuales con Linux, el disco del sistema operativo es /dev/sda1. También se recomienda crear uno o varios discos de datos, que son discos duros virtuales persistentes que se usan para los datos de aplicación.

Cuando se crea un disco duro virtual, no tiene formato. Inicie sesión en la máquina virtual para dar formato al disco. En el shell de Linux, se muestran los discos de datos como /dev/sdc, /dev/sdd, y así sucesivamente. Puede ejecutar lsblk para mostrar los dispositivos de bloques, lo que incluye los discos. Para utilizar un disco de datos, cree una partición y un sistema de archivos y monte el disco. Por ejemplo:

# 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

Cuando agrega un disco de datos, se asigna un identificador de número de unidad lógica (LUN) al disco. Opcionalmente, puede especificar el id. de LUN, por ejemplo, si va a reemplazar un disco y desea conservar el mismo identificador de LUN o si tiene una aplicación que busca un identificador de LUN específico. Sin embargo, recuerde que los id. de LUN debe ser únicos para cada disco.

Puede cambiar el programador de E/S para optimizar el rendimiento de las SSD, ya que los discos de las máquinas virtuales con cuentas de Premium Storage son SSD. Una recomendación habitual es utilizar el programador NOOP para las SSD, pero para ello debe usar una herramienta como iostat para supervisar el rendimiento de E/S de disco para su carga de trabajo.

La máquina virtual se crea con un disco temporal. Este disco se almacena en una unidad física del equipo host. No se guarda en Azure Storage y es posible que se elimine durante los reinicios y otros eventos del ciclo de vida de la máquina virtual. Use este disco solo para datos temporales, como archivos de paginación o de intercambio. Para máquinas virtuales con Linux, el disco temporal es /dev/sdb1 y se monta en /mnt/resource o /mnt.

Red

Los componentes de red incluyen los siguientes recursos:

  • Red virtual. Todas las máquinas virtuales se implementan en una red virtual que se puede dividir en varias subredes.

  • Interfaz de red (NIC) . La NIC permite que la VM se comunique con la red virtual. Si necesita varias tarjetas de interfaz de red para la máquina virtual, tenga en cuenta que hay un número máximo definido para cada tamaño de máquina virtual.

  • Dirección IP pública. Es necesaria una dirección IP pública para comunicarse con la máquina virtual, por ejemplo, a través de Escritorio remoto (RDP). La dirección IP pública puede ser dinámica o estática. El valor predeterminado es dinámica.

  • Reserve una dirección IP estática si necesita una dirección IP fija que no cambie; por ejemplo, si tiene que crear un registro "A" en DNS o agregar la dirección IP a una lista segura.

  • También puede crear un nombre de dominio completo (FQDN) para la dirección IP. Después, puede registrar un registro CNAME en DNS que apunte al nombre de dominio completo. Para más información, consulte Crear un nombre de dominio completo en Azure Portal.

  • Grupo de seguridad de red (NSG) . Los grupos de seguridad de red se utilizan para permitir o denegar el tráfico de red a las máquinas virtuales. Los grupos de seguridad de red se pueden asociar con subredes o con instancias de máquina virtual individuales.

Todos los NSG contienen un conjunto de reglas predeterminadas, incluida una que bloquea todo el tráfico de entrada de Internet. No se puede eliminar las reglas predeterminadas, pero otras reglas pueden reemplazarlas. Para permitir el tráfico de Internet, cree reglas que permitan el tráfico entrante a puertos específicos; por ejemplo, el puerto 80 para HTTP. Para habilitar SSH, agregue una regla de NSG que permita el tráfico entrante al puerto TCP 22.

Operaciones

SSH. Antes de crear una máquina virtual Linux, genere un par de clave pública y privada RSA de 2048 bits. Utilice el archivo de clave pública al crear la máquina virtual. Para más información, consulte Uso de SSH con Linux y Mac en Azure.

Diagnóstico. Habilite la supervisión y el diagnóstico, como las métricas básicas de estado, los registros de infraestructura de diagnóstico y los diagnósticos de arranque. Los diagnósticos de arranque pueden ayudarle a diagnosticar errores de arranque si la máquina virtual entra en un estado de imposibilidad de arranque. Cree una cuenta de Azure Storage para almacenar los registros. Una cuenta de almacenamiento con redundancia local (LRS) estándar es suficiente para este tipo de registros. Para más información, consulte Habilitación de supervisión y diagnóstico.

Disponibilidad. La máquina virtual puede verse afectada por un mantenimiento planeado o un tiempo de inactividad no planeado. Puede usar registros de reinicio de máquina virtual para determinar si se produjo un reinicio de la máquina virtual por un mantenimiento planeado. Para aumentar la disponibilidad, implemente varias máquinas virtuales en un conjunto de disponibilidad. Esta configuración también ofrece un Acuerdo de Nivel de Servicio (SLA) superior.

Copias de seguridad Para crear una protección contra la pérdida accidental de datos, use el servicio Azure Backup para realizar una copia de seguridad de las máquinas virtuales en el almacenamiento con redundancia geográfica. Azure Backup proporciona copias de seguridad coherentes con la aplicación.

Detención de una máquina virtual. Azure hace una distinción entre los estados "Detenido" y "Desasignado". Se le cobra cuando el estado de la máquina virtual se detiene, pero no cuando se desasigna la máquina virtual. En Azure Portal, con el botón Detener, se desasigna la máquina virtual. Si apaga desde dentro del sistema operativo mientras tiene la sesión iniciada, la VM se detiene pero no se desasigna, por lo que se le seguirá cobrando.

Eliminación de una máquina virtual. Si elimina una VM, no se eliminarán los discos duros virtuales. Esto significa que puede eliminar de forma segura la VM sin perder datos. Sin embargo, se le seguirá cobrando por el almacenamiento. Para eliminar el disco duro virtual, elimine el archivo de Blob Storage. Para evitar eliminaciones por error, use un bloqueo de recurso para bloquear el grupo de recursos completo o recursos individuales, como una máquina virtual.

Consideraciones

Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.

Optimización de costos

La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.

Hay varios tamaños de máquina virtual y la elección de uno u otro dependerá del uso y la carga de trabajo. Estos incluyen desde la opción más económica de la serie Bs hasta las máquinas virtuales de GPU más nuevas optimizadas para el aprendizaje automático. Para más información sobre las opciones disponibles, consulte Precios de máquinas virtuales Linux de Azure.

Para cargas de trabajo predecibles, use Azure Reservations y el plan de ahorro de Azure para el proceso con un contrato de uno o tres años y obtenga un ahorro significativo en los precios de pago por uso. En el caso de cargas de trabajo sin tiempo predecible de finalización o consumo de recursos, considere la opción Pago por uso.

Use máquinas virtuales de Azure Spot para ejecutar cargas de trabajo que se pueden interrumpir y no es necesario que finalicen dentro de un período de tiempo predeterminado o según un SLA. Azure implementa VM de Spot si hay capacidad disponible y deja de hacerlo cuando vuelve a necesitar la capacidad. Los costos asociados a las máquinas virtuales de Spot son significativamente menores. Considere la posibilidad de usar VM de Spot para estas cargas de trabajo:

  • Escenarios informáticos de alto rendimiento, trabajos de procesamiento por lotes o aplicaciones de representación visual.
  • Entornos de prueba, incluidas las cargas de trabajo de integración continua y entrega continua.
  • Aplicaciones sin estado a gran escala.

Puede usar la calculadora de precios de Azure para calcular los costos.

Para más información, consulte la sección acerca de los costos del artículo sobre elmarco de buena arquitectura de Microsoft Azure.

Seguridad

La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.

Para obtener una vista centralizada del estado de seguridad de sus recursos de Azure, utilice Microsoft Defender for Cloud. Defender for Cloud supervisa los posibles problemas de seguridad y proporciona una imagen completa del estado de seguridad de su implementación. Defender for Cloud se configura por suscripción de Azure. Habilite la colección de datos de seguridad que se describe en Incorporación de su suscripción de Azure a Defender for Cloud estándar. Una vez habilitada la recopilación de datos, Defender for Cloud busca automáticamente las máquinas virtuales creadas en esa suscripción.

Administración de revisiones. Si está habilitada esta opción, Defender for Cloud comprueba si falta alguna actualización crítica y de seguridad.

Antimalware. Si está habilitada esta opción, Defender for Cloud comprueba si está instalado software antimalware. También puede utilizar Defender for Cloud para instalar software antimalware desde Azure Portal.

Control de acceso. Use el control de acceso basado en roles de Azure (RBAC de Azure) para controlar el acceso a los recursos de Azure. RBAC de Azure le permite asignar roles de autorización a los miembros de su equipo de DevOps. Por ejemplo, el rol de lector puede ver recursos de Azure pero no crearlos, administrarlos o eliminarlos. Algunos permisos son específicos para un tipo de recurso de Azure. Por ejemplo, el rol Colaborador de la máquina virtual puede reiniciar o desasignar una máquina virtual, restablecer la contraseña de administrador, crear una nueva máquina virtual, etc. Otros roles integrados que pueden resultar útiles para esta arquitectura son, por ejemplo, el de Usuario de DevTest Labs y el de Colaborador de la red.

Nota

RBAC de Azure no limita las acciones que puede realizar un usuario que ha iniciado sesión en una máquina virtual. Esos permisos están determinados por el tipo de cuenta en el sistema operativo invitado.

Registros de auditoría. Use registros de auditoría para ver las acciones de aprovisionamiento y otros eventos de máquina virtual.

Cifrado de datos. Use Azure Disk Encryption si necesita cifrar los discos de datos y del sistema operativo.

Excelencia operativa

La excelencia operativa abarca los procesos de las operaciones que implementan una aplicación y la mantienen en ejecución en producción. Para más información, consulte Introducción al pilar de excelencia operativa.

Use una plantilla de Azure Resource Manager única para aprovisionar los recursos de Azure y sus dependencias. Dado que todos los recursos están en la misma red virtual, están aislados en la misma carga de trabajo básica. Esto facilita la asociación de recursos específicos de la carga de trabajo a un equipo de DevOps para que este pueda administrar todos los aspectos de esos recursos de forma independiente. Este aislamiento permite que el equipo de DevOps realice la integración continua y la entrega continua (CI/CD).

Además, puede usar distintas plantillas de Azure Resource Manager e intégrelas con Azure DevOps Services para aprovisionar entornos diferentes en minutos; por ejemplo, para replicar escenarios similares a la producción o entornos de prueba de carga solo cuando sea necesario y ahorrar costos.

Si necesita una arquitectura de mayor disponibilidad, consulte Aplicación de n niveles de Linux en Azure con Apache Cassandra. La arquitectura de referencia incluye más de una máquina virtual y cada una se incluye en un conjunto de disponibilidad.

Considere la posibilidad de usar Azure Monitor para analizar y optimizar el rendimiento de la infraestructura, así como supervisar y diagnosticar problemas de red sin iniciar sesión en las máquinas virtuales.

Pasos siguientes