规划大小调整和网络

已完成

Azure VM 是 Azure 中常用的基础结构即服务 (IaaS) 计算资源类型。 与平台即服务 (PaaS) 计算服务相比,Azure VM 在 VM 操作系统 (OS) 及其配置方面提供了更多的灵活性和控制。 提高的控制和灵活性需要更多的规划来支持最佳结果。

本单元介绍规划 Azure Linux VM 部署的总体因素和注意事项。 该规划过程应考虑 VM 配置的计算、网络和存储方面。 其中一些特征是操作系统特有的,不同的 Linux 发行版的实现细节各不相同。

Microsoft 与知名的 Linux 供应商合作,将他们的产品与 Azure 平台集成。 为了充分利用此集成,可从各种常用 Linux 发行版(如 SUSE、Red Hat 和 Ubuntu)的预生成映像中创建 Azure VM。 还可以选择生成 Linux 发行版的自定义映像,以在云环境中运行。 在此情况下,Azure VM 预配过程可能会有更多步骤。

无论哪种情况,此学习模块都有助于进一步优化生成的部署。 优化要求你对 Azure VM 资源及其依赖项有深入的了解。

了解资源依赖项

创建 Azure VM 时,还需要创建 Azure VM 依赖的多个关联资源,以便向虚拟化 OS 提供完整功能。 这些资源包括:

  • 存储 OS、应用程序和数据的虚拟磁盘。

  • 包含一个或多个子网的虚拟网络,用于将 Azure VM 连接到其他 Azure 服务或本地数据中心。

  • 将 Azure VM 连接到虚拟网络子网的网络接口。

    注意

    必须为每个网络接口至少动态或静态分配一个专用 IP 地址。 专用 IP 地址不是单独的 Azure 资源,而是子网配置的一部分。

  • 托管 Azure VM 的资源组。

  • (可选)与 VM 网络接口关联的公共 IP 地址,用于从 Internet 提供对 VM 的直接入站访问。

现已了解 Azure VM 资源依赖项,接下来可以开始规划 VM 大小。

规划大小调整

要确定 Azure VM 的正确大小,需要考虑其预期工作负载。 选择的大小决定了 VM 的以下特征:

  • 处理能力
  • 内存
  • 存储容量
  • “性能”
  • 对高级网络功能的支持

重要

Azure VM 具有虚拟 CPU (vCPU) 配额限制,应在规划时考虑这些限制。 要在部署后提高配额限制,必须向 Azure 支持提交联机请求。

Azure 提供各种不同规格和价位的大小,以满足各种需求。 VM 大小分组为多个类别,表示它们所针对的工作负载类型。 每个类别包括一个或多个系列,它们具有共同的基础硬件特征,但提供一系列不同的大小

以下列表显示了工作负载类型以及每种工作负载类型的常见用例。 每个工作负载类型都有相应的系列,其中包括各种大小。

  • 常规用途:测试和开发、中小型数据库和中低流量 Web 服务器。
  • 计算密集型:中等流量 Web 服务器、网络设备、批处理和应用程序服务器。
  • 内存密集型:关系数据库服务器、中到大型缓存和内存中分析。
  • 存储密集型:大数据、SQL 以及需要高磁盘吞吐量和输入/输出 (I/O) 的 NoSQL 数据库。
  • 启用图形处理单元 (GPU):大量图形渲染或视频编辑,以及具有深度学习的模型训练和推理。
  • 高性能计算 (HPC):速度最快、CPU 最强大的 VM,具有可选的支持远程直接内存访问 (RDMA) 的高吞吐量网络接口。

规划 Azure VM 大小时,还要考虑以下因素:

  • 更改 Azure VM 系列或大小虽然简单且常见,但需要重启 OS。 要避免重启,请尽可能从一开始就适当地调整 VM 的大小。
  • VM 大小可用性因区域而异,因此在规划部署时要考虑区域可用性。
  • 可附加到 Azure VM 的磁盘数上限取决于其大小。

其他大小注意事项

请考虑使用 Microsoft Azure VM 选择器根据工作负载类型、OS、已安装的软件和部署区域来确定最合适的 VM 大小。

如果规划在同一区域长时间使用相同或类似大小的 Azure VM,请考虑使用 Azure 预留,将计算成本降低高达 72%。

要降低可处理中断(例如批处理作业)的工作负载的 Azure VM 成本,请使用 Azure 现成 VM

规划网络

VM 使用虚拟网络与外部资源通信。 虚拟网络表示 Azure 区域中的专用网络。 可将虚拟网络连接到其他网络(包括本地数据中心的网络),并应用流量规则来控制入站和出站连接。

每个虚拟网络指定一个 IP 地址空间,该空间通常由 RFC 1918 定义的一个或多个专用地址范围组成。 与本地网络一样,可将虚拟网络地址空间划分为多个子网,以隔离 Azure VM 工作负载。 虚拟网络中的每个子网表示一个专用地址范围。 要强制实施工作负载隔离,请将网络安全组 (NSG) 与每个子网相关联

每个 Azure VM 包含一个或多个网络接口,每个接口连接到同一虚拟网络中的一个子网。 Azure 自动为子网中的每个 VM 分配一个子网范围内的 IP 地址。 Azure 保留每个子网上的前四个和最后一个 IP 地址供自己使用,并且不会分配它们。

虽然可以在 VM 预配过程中创建虚拟网络及其子网,但建议的方法是以网络环境开始 Azure VM 部署规划。 考虑所有网络要求并创建相应的虚拟网络后,可以继续部署 Azure VM。

规划 Azure 虚拟网络和子网时,请记住以下设计原则:

  • 确保地址空间不重叠。 如果要连接虚拟网络和本地网络,IP 地址空间不能重叠。
  • 使用较少的较大虚拟网络,而不是使用较多较小的虚拟网络。 这种做法有助于最大程度地减少管理开销,并促进可伸缩性。

网络带宽

尽管 Azure VM 可以有多个网络接口,但其可用带宽完全取决于其大小。 通常,与较小的 VM 大小相比,较大的 VM 大小分配有更多带宽。

要根据分配的限制测量实际网络带宽量,Azure 仅面向出口流量。 所有离开 VM 的网络流量都将计入该限额,无论流量目的地如何。

Azure 不会直接限制入口带宽。 但是,存储和计算资源利用率等因素会影响 Azure VM 可处理的传入数据量。

规划远程连接

在部署规划过程中,考虑提供远程连接的最合适方法。 对于 Linux VM,远程连接通常涉及使用安全外壳 (SSH) 以实现终端 shell 会话的传输中加密

要通过 SSH 连接进行身份验证,可使用用户名和密码,或使用 SSH 密钥对。 使用密码进行 SSH 连接会使 VM 容易受到暴力攻击。 使用 SSH 密钥是使用 SSH 连接到 Linux VM 的更安全且首选的方法。

即使使用 SSH 密钥,默认情况下也必须建立与目标 Azure VM 网络适配器关联的公共 IP 地址的连接。 此公共 IP 很容易受到外部威胁的影响,并且成为潜在的攻击途径。 为规避这种风险,请考虑实现 Azure Bastion 或实时 (JIT) VM 访问。

注意

在混合场景中,若要在从本地环境连接到 Azure VM 时不再需要公共 IP 地址,可以使用站点到站点虚拟专用网 (VPN) 或 Azure ExpressRoute。

Azure Bastion

将 Azure Bastion 服务部署到与目标 VM 连接的虚拟网络的专用子网中。 Azure Bastion 充当通过 HTTPS 进行外部 SSH 连接的代理,这些连接只能从 Azure 门户获取。 通过 Azure Bastion,无需将公共 IP 地址分配给目标 VM 的网络接口,还可确保只有经过身份验证且经过适当授权的用户才能发起 SSH 连接。

JIT VM 访问

JIT VM 访问是一项 Microsoft Defender for Cloud 功能,可限制对与 Azure VM 网络接口关联的公共 IP 地址的访问。 这些限制动态调整 NSG 以在指定时间范围内只允许来自指定的 IP 地址范围的传入连接。 与 Azure Bastion 一样,用户必须进行身份验证,然后才能从 Azure 门户发起连接。