你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 上运行 Windows VM

Azure 备份
Azure Blob 存储
Azure 资源管理器
Azure 存储
Azure 虚拟机

除 VM 本身以外,在 Azure 中预配虚拟机 (VM) 还需要其他一些组件,包括网络和存储资源。 本文介绍在 Azure 上运行安全 Windows VM 的最佳做法。

体系结构

显示 Azure 中的 Windows 虚拟机的关系图。

下载此体系结构的 Visio 文件

工作流

资源组

资源组是保存相关 Azure 资源的逻辑容器。 一般情况下,可根据资源的生存期及其管理者将资源分组。

将共享相同生命周期、密切相关的资源放入同一资源组。 资源组可让你以组的形式部署和监视资源,并按资源组跟踪计费成本。 还可以删除作为集的资源,这适用于测试部署。 指定有意义的资源名称,以便简化特定资源的查找并了解其角色。 有关详细信息,请参阅 Azure 资源的建议命名约定

虚拟机

可以通过发布的映像列表或上传到 Azure Blob 存储的自定义托管映像或虚拟硬盘 (VHD) 文件来预配 VM。

Azure 提供多种不同的虚拟机大小。 有关详细信息,请参阅 Azure 中虚拟机的大小。 如果要将现有工作负荷转移到 Azure,开始时请先使用与本地服务器最匹配的 VM 大小。 然后从 CPU、内存和每秒磁盘输入/输出操作次数 (IOPS) 等方面测量实际工作负荷的性能,并根据需要调整大小。

通常选择离内部用户或客户最近的 Azure 区域。 并非所有 VM 大小都可在所有区域中使用。 有关详细信息,请参阅每个区域的服务。 若要获取特定区域中可用 VM 大小的列表,请从 Azure CLI 运行以下命令:

az vm list-sizes --location <location>

要了解如何选择发布的 VM 映像,请参阅查找 Windows VM 映像

磁盘

为获得最佳磁盘 I/O 性能,建议使用高级存储,它在固态硬盘 (SSD) 上存储数据。 成本取决于预配磁盘的容量。 IOPS 和吞吐量也取决于磁盘大小,因此,在预配磁盘时,请考虑所有三个因素(容量、IOPS 和吞吐量)。 高级存储还具有免费突发功能功能,结合对工作负荷模式的了解,可为 IaaS 基础结构提供有效的 SKU 选择和成本优化策略,在不超量预配的情况下实现高性能,并最大限度地降低未使用容量的成本。

托管磁盘可代为处理存储,从而简化磁盘管理。 托管磁盘不需要存储帐户。 只需指定磁盘的大小和类型,就可以将它部署为高度可用的资源。 托管磁盘还可以提供所需的性能而无需超量预配,考虑工作负荷模式的波动,并最大限度地减少未使用的预配容量,从而优化成本。

OS 磁盘是存储在 Azure 存储中的 VHD,因此即使主机关闭,OS 磁盘也仍然存在。 我们还建议创建一个或多个数据磁盘(用于保存应用程序数据的持久性 VHD)。

临时磁盘可在不增加成本的情况下提供良好的性能,但它也存在明显的缺点,比如非持久性、容量有限以及仅限于 OS 和临时磁盘使用。 如果可能,请将应用程序安装在数据磁盘上,而不是 OS 磁盘上。 某些旧版应用程序可能需要将组件安装在 C: 驱动器上;在这种情况下,可使用 PowerShell 重设 OS 磁盘的大小

还使用临时磁盘(Windows 上的 D: 驱动器)创建 VM。 此磁盘存储在主机的物理驱动器上。 它并非保存在 Azure 存储中,并且在重启期间以及发生其他 VM 生命周期事件期间可能会被删除。 只使用此磁盘存储临时数据,如页面文件或交换文件。

网络

网络组件包括以下资源:

  • 虚拟网络。 每个 VM 都会部署到可细分为多个子网的虚拟网络中。

  • 网络接口 (NIC) 。 NIC 使 VM 能够与虚拟网络进行通信。 如果 VM 需要多个 NIC,那么每种 VM 大小都定义了最大 NIC 数量。

  • 公共 IP 地址。 需要使用公共 IP 地址才能与 VM 通信 - 例如,通过远程桌面协议 (RDP)。 公共 IP 地址可以是动态的或静态的。 默认是动态的。

  • 网络安全组 (NSG)网络安全组用于允许或拒绝向 VM 传送网络流量。 NSG 可与子网或单个 VM 实例相关联。

    • 所有 NSG 都包含一组默认规则,其中包括阻止所有入站 Internet 流量的规则。 无法删除默认规则,但其他规则可以覆盖它们。 若要启用 Internet 流量,请创建允许特定端口的入站流量的规则 — 例如,将端口 80 用于 HTTP。 若要启用 RDP,请添加允许 TCP 端口 3389 的入站流量的 NSG 规则。
  • Azure NAT 网关。网络地址转换 (NAT) 网关允许专用子网中的所有实例连接到 Internet,同时保持完全专用。 只有作为响应数据包到达出站连接的数据包才能直通 NAT 网关。 不允许来自互联网的未经请求的入站连接。

  • Azure Bastion。Azure Bastion 是一个完全托管的平台即服务解决方案,可通过专用 IP 地址对虚拟机进行安全访问。 通过此配置,VM 就不需要公开在互联网上的公共 IP 地址,从而提高了安全状况。 Azure Bastion 可通过各种方法,包括 Azure 门户或本地安全外壳 (SSH) 或 RDP 客户端,直接通过传输层安全 (TLS) 提供与虚拟机的安全 RDP 或 SSH 连接。

Operations

诊断。 启用监视和诊断,包括基本运行状况指标、诊断基础结构日志和启动诊断。 如果 VM 陷入不可启动状态,启动诊断有助于诊断启动故障。 创建用于存储日志的 Azure 存储帐户。 标准的本地冗余存储 (LRS) 帐户足以存储诊断日志。 有关详细信息,请参阅启用监视和诊断

可用性。 VM 可能会受到计划内维护计划外停机的影响。 可以使用 VM 重新启动日志来确定 VM 重新启动是否是由计划内维护导致的。 若要提高可用性,请在可用性集中或跨区域中的可用性区域部署多个 VM。 这两种配置都提供更高的服务级别协议 (SLA)

备份 为了防止数据意外丢失,请使用 Azure 备份服务将 VM 备份到异地冗余存储。 Azure 备份提供应用程序一致性备份。

停止 VM。 Azure 对“已停止”和“已解除分配”状态进行了区分。 VM 状态为“已停止”时,将计费,但 VM 为“已解除分配”状态时,则不计费。 在 Azure 门户中,“停止”按钮可解除分配 VM。 如果在已登录时通过 OS 关闭,VM 会停止,但不会解除分配,因此仍会产生费用。

删除 VM。 如果删除 VM,可以选择删除或保留其磁盘。 这意味着可以安全地删除 VM,而不会丢失数据。 但是,您仍需支付磁盘费用。 可以像删除其他 Azure 资源一样删除托管磁盘。 要防止意外删除,请使用资源锁锁定整个资源组或锁定单个资源(如 VM)。

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负荷质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

成本优化

成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述

根据用途和工作负荷,有多种 VM 大小可供选择。 范围包括 Bs 系列中最划算的选项,以及针对机器学习优化的最新 GPU VM。 有关可用选项的信息,请参阅 Azure Windows VM 定价

对于可预测的工作负载,请使用一年或三年合同的 Azure 预留适用于计算的 Azure 节省计划,与即用即付价格相比,这可实现显著节省。 对于没有可预测的完成时间或资源消耗的工作负荷,请考虑即用即付选项。

使用 Azure 现成 VM 运行可能中断且不需要在预定的时间范围或 SLA 内完成的工作负荷。 如果存在可用容量,Azure 会部署现成 VM,并在需要恢复容量时逐出。 与现成虚拟机相关的成本明显降低。 请考虑为以下工作负荷使用现成 VM:

  • 高性能计算方案、批处理作业或视觉渲染应用程序。
  • 测试环境,包括持续集成和持续交付工作负荷。
  • 大规模无状态应用程序。

使用 Azure 定价计算器估算成本。

有关详细信息,请参阅 Microsoft Azure 架构良好的框架中的“成本”部分。

安全性

安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅安全性支柱概述

要集中查看 Azure 资源的安全状态,请使用 Microsoft Defender for Cloud。 Defender for Cloud 会监视潜在的安全问题,并全面显示部署的安全运行状况。 Defender for Cloud 按 Azure 订阅进行配置。 根据将 Azure 订阅加入 Defender for Cloud 标准中所述启用安全数据收集。 启用数据收集后,Defender for Cloud 会自动扫描该订阅下创建的所有 VM。

修补程序管理。 如果启用,Defender for Cloud 会检查是否缺少任何安全更新和关键更新。 使用 VM 上的组策略设置可启用自动系统更新。

反恶意软件。 如果启用,Defender for Cloud 会检查是否已安装反恶意软件。 还可以使用 Defender for Cloud 从 Azure 门户中安装反恶意软件。

访问控制。 使用 Azure 基于角色的访问控制 (Azure RBAC) 来控制对 Azure 资源的访问。 Azure RBAC 允许将授权角色分配给 DevOps 团队的成员。 例如,“读者”角色可以查看 Azure 资源,但不能创建、管理或删除这些资源。 某些权限特定于 Azure 资源类型。 例如,“虚拟机参与者”角色可以执行重启或解除分配 VM、重置管理员密码、创建新的 VM 等操作。 可能对此体系结构有用的其他内置角色包括开发测试实验室用户网络参与者

注意

Azure RBAC 不限制已登录到 VM 的用户可以执行的操作。 这些权限由来宾 OS 上的帐户类型决定。

审核日志。 使用审核日志可查看预配操作和其他 VM 事件。

数据加密。 如果需要加密 OS 磁盘和数据磁盘,请使用 Azure 磁盘加密

卓越运营

卓越运营涵盖了部署应用程序并使其在生产环境中保持运行的运营流程。 有关详细信息,请参阅卓越运营支柱概述

使用基础结构即代码 (IaC),方法是使用单个 Azure 资源管理器 模板来预配 Azure 资源(声明性方法),也可以使用单个 PowerShell 脚本(命令性方法)。由于所有资源都位于同一虚拟网络中,因此它们隔离在同一基本工作负载中。 通过工作负载隔离,可以更轻松地将工作负载的特定资源关联到某个 DevOps 团队,以便该团队能够独立管理这些资源的所有方面。 这种隔离可使 DevOps 团队和服务执行持续集成和持续交付 (CI/CD)。

此外,可以使用不同的 Azure 资源管理器模板并将它们与 Azure DevOps Services 集成,以便在几分钟内预配不同的环境,例如仅在需要时复制生产场景或负载测试环境,从而节省成本。

请考虑使用 Azure Monitor 来分析和优化基础结构的性能,在不登录到虚拟机的情况下监视和诊断网络问题。

后续步骤