四招教你玩转VPC | U刻
  • 四招教你玩转VPC

    栏目:技术分享

    互联网上各种软件、应用、手机App充斥着人们的每一天,这些应用也越来越易用、却也使得开发变得复杂。开发人员使用到的组件也更多了。稍微大些的应用开发将会使用组件解耦、系统分层,以便降低紧耦合带来的各种不良后果。

    本文将介绍VPC如何实现各个组件分层和隔离,并将以VPC子网是否连通互联网、云平台VPC之间连通、本地数据中心与云端VPC的连通等介绍VPC的4种典型应用方式和解决需求的实现方法。

    VPC有什么作用

    VPC通过子网将资源进行逻辑隔离为用户提供隔离的网络环境、灵活的可定义子网网段,并支持随时在现有VPC中追加新的定义网段,保证IP地址取之不尽,解决传统子网带来的节点数量的限制,同时用户可以使用VPN等方式连接本地数据中心后将业务平滑迁移到云端。

    第一招:VPC内连接互联网

    VPC内使用子网将资源进行了隔离,初始情况下子网内资源无法连接到互联网,所有资源和服务仅可内网访问,起到了预想的与公网隔离的效果。但如果资源只能内网访问显然也不是我们想要的,我们创建的Web应用等服务需要暴露在公网上,也就需要VPC子网内的资源具有访问互联网的能力。

    问题

    在VPC子网内的资源能够连接到互联网。

    解决方法

    • 为VPC子网内每一个云主机资源绑定EIP;
    • 通过NAT网关将VPC子网内资源路由至NAT网关,并通过其绑定的EIP连接互联网。

    具体实现

    (图:VPC子网中云主机通过EIP或NAT网关连接互联网)

    1. 创建VPC及子网subnet-a,并部署相关云主机等资源;
    2. 选择使用EIP方式,申请EIP并绑定至云主机UHost,则云主机UHost可以通过EIP与互联网进行连接;这种方式配置最简单,但是却要为每一台云主机UHost绑定EIP,如果资源数量较多,不建议使用这种方式;
    3. 选择使用NAT网关方式,在VPC中创建NAT网关并选择subnet-a连通,此时子网subnet-a中的所有资源将会路由至NAT网关,并通过绑定在NAT网关上的EIP连接互联网;这种方式通过一个配置即可满足一个子网内资源的连接互联网需求;
    4. 云主机绑定EIP方式与NAT网关方式,两者可以取其一进行使用。

    (图:通过端口转发规则将流量转发至NAT网关绑定的EIP以连接互联网)

    应用场景

    我们选择通过一台云主机UHost提供个人博客的Web服务,在创建云主机UHost时选择部署在VPC1的192.168.1.0/24子网内,申请一个EIP绑定到该云主机UHost上来提供外网访问能力,互联网上用户可以直接通过该EIP访问到该博客网站。

    第二招:通过VPC子网隔离内外网组件

    一台云主机很难满足普通应用的需求,例如搭建具有更高可用性的企业博客,通常需要用到多台云主机、负载均衡、EIP,一些配置信息、博客数据还需要使用云数据库服务。用户可访问的Web服务需要连接公网,而用户数据、日志数据等只需在系统内部和Web服务器连接使用,因此需要根据资源是否对外网连接进行分层,从而部署在不同子网中。

    需求

    因业务需求将资源和组件划分为互联网可访问、互联网不可访问进行隔离。

    解决方法

    在VPC中创建子网subnet-a(供连接互联网),创建subnet-b(供内网使用),通过NAT网关只连接subnet-a并面向互联网开放;subnet-b不连接到该NAT网关并且其中资源也不绑定EIP。

    具体实现

    (图:连接公网的子网和只供内网访问的子网)

    • 创建VPC;
    • 创建两个子网subnet a和subnet b,subnet a为前端接入子网,部署云主机;subnet b为数据库子网部署云数据库;
    • 配置NAT网关,并连接前端接入子网subnet-a,使其可以连接到互联网,对外提供前端接入功能;数据库子网subnet-b仅在VPC内访问,前端接入子网中的云主机UHost,可以连接后端业务子网中的后端服务器和云数据库并实现业务支撑和数据操作。

    通过如上配置,既实现了对互联网的访问又保证了云数据库只供内网访问,为其安全增加了一道保障。

    应用场景:后端业务子网临时连接互联网

    如上所述,数据库私有子网中只能内网访问,但是仍会碰到云数据库进行版本更新、漏洞修复等需要访问互联网的情况。基于这种临时需求,我们可以通过NAT网关的白名单模式来连接互联网。在NAT网关配置中添加subnet-b,但是需要使用白名单模式, 仅允许开放指定数据库的特定端口,尽可能避免全部暴露在互联网。

    (图:使用NAT网关白名单并配置端口转发规则实现指定资源和端口对互联网开放)

    只需通过NAT网关连接需要外网访问能力的子网即可,通过白名单模式和端口转发规则配置可以实现细粒度的访问控制。

    第三招:云平台多VPC之间互联

     

    在构建业务时会按照生产环境、开发环境、测试环境等在不同的VPC中部署资源,偶尔需要打通不同环境的VPC。在VPC规划时可能因为对可变因素考虑不足,导致VPC设置过小,或者资源在VPC之间的分布不合理而又不便重新部署,这些可能都需要将多个VPC进行连接。

    需求

    因生产环境与测试环境等分割环境、前期对VPC规划不足等原因而需要将云平台多个VPC进行连接。

    解决方法

    UCloud云平台支持跨地域、跨项目的多个VPC连接,且可在控制台直接操作配置。

    具体实现

     

    1. 在云平台VPC配置中直接选择多个VPC,可直接实现VPC联通;
    2. 在VPC1中所有流量会路由至虚拟NAT网关1,同样VPC2中所有流量会路由至虚拟NAT网关2;
    3. UCloud云平台会自动将VPC1和VPC2进行连接,便可以实现两个VPC之间的流量传输。

    此过程不再需要我们配置路由表,但为了方便了解数据流向,我们可以分析下后端实现的虚拟路由表。VPC1中虚拟路由表为:

    目的地 下一跳
    192.168.0.0/16 Local
    0.0.0.0 virtual-gw-1

     

    VPC2中虚拟路由表为:

    目的地 下一跳
    172.16.0.0/16 Local
    0.0.0.0 virtual-gw-2

    具体配置方式就比较简单了,如下图所示。

    (图:在云平台直接联通多个VPC)

     

     

    第四招:连接本地网络与云端VPC

    需求

    用户业务部署在多个地域或者本地数据中心,需要将业务本地网络与云端VPC进行联通。

    解决方法

    • 使用VPN、专线接入UConnect连接本地数据中心VPC子网与UCloud云平台的VPC子网;
    • 使用跨域通道UDPN连接UCloud云平台的多个VPC子网。

    具体实现

    1. 在云端部署VPC公网子网、私网子网,并部署业务所需云平台资源;
    2. 在云端配置IPSec VPN,其中配置云端网关地址、客户本地(对端)网关地址;
    3. 在客户本地安装VPN软件,并配置客户本地网关、云端网关;
    4. 在云端和客户本地VPN中配置VPN隧道(tunnel)并连通指定子网,测试流量正常。

    应用场景

    跨地域的VPC连通有多种类型,按照所属位置来说包括:

    • 云平台间连通:多个VPC分布在UCloud云平台的多个地域中
    • 混合云架构(基础):连通客户本地数据中心的VPC和UCloud云平台的VPC
    • 混合云架构:云平台上有多个VPC,并且在本地数据中心也有VPC

    很多传统行业在本地数据中心部署有业务,在迁移上云的过程中可能将核心数据或业务保留在本地,产生了混合云的架构。连通本地数据中心和云端VPC的方式也有几种:自建VPN方式、云端IPSec VPN、专线接入UConnect等,具体差异在运维成本、通信效率等方面,VPC子网连通配置上大同小异。

    UCloud云平台VPC之间的连通可以选择跨域通道UDPN,基于同城环网、专线等基础设施,实现了超远程专线网络。 UDPN为云平台中跨地域的各个数据中心间,提供低延迟、高质量的跨地区内网数据传输的能力。

    (图:使用跨域通道UDPN便捷的连通多个地域)

    总结

    VPC无论是在传统服务器管理还是云端资源管理上都非常成熟,也是比较基础的服务。本文根据VPC子网是否需要连接到公网、云平台多个VPC互相连通以及本地网络与云端VPC的打通进行了概述和整理,回根溯源VPC的应用场景主要还是以上几种情况。当然现实情况下还要根据业务场景灵活的使用VPC,难点还是在解决异构环境的打通、大型网络下复杂的规划和管理。

    想要获取更多技术和活动资讯,可扫描以下二维码,关注“UCloud技术公告牌”微信公众号;或搜索微信ID:ucloud_tech进行关注。

    7