阿里云各产品从经典网络迁移到专有网络VPC的技术实践

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 本文结合实际场景,介绍了阿里云迁移VPC功能classlink、混挂、混访的具体运用,希望可以给同行一些借鉴。

背景

一方面,作为阿里云老用户,默认使用的经典网络,曾经简便易用,入门简单;然而,时过境迁,虽然规模的不断扩大,产品的不断丰富,经典网络也开始暴露各种如安全性、配置复杂甚至阿里云地址池不够用等等问题。阿里云也在2016年6月启动了专用网络策略,没有经典网络ECS实例的用户,只能购买专有网络ECS实例,各项新功能和各种新产品也不再支持经典网络,所以必须迁移到专用网络。
另一方面,公司业务已运行多年,系统众多,主要使用微服务架构,但是服务规划和治理水平没有跟上,服务间调用关系复杂,系统间相互依赖也不少;同时系统和服务数量庞大,无法直接整体迁移VPC。
所以,我们独辟蹊径,不从业务系统级别,而是从云产品级别逐步迁移改造,使所有相关依赖都可以在两个网络环境中访问。

SLB的迁移

我们的业务系统间甚至服务间不仅通过服务注册发现来相互调用,也会通过SLB来相互调用。曾经,因为SLB无法平滑过渡,我们的VPC迁移计划搁置了很久。因为整个业务系统没法整体迁移,调用关系又很复杂,所以阿里云提供的迁移工具SLB混挂,在我们的场景下没法完成预期目标。
1.当A系统在经典网络,B系统在VPC时,如果是A访问B,那么给B系统挂载个经典网络的SLB,确实可以完成目标;但是如果还有个C系统在VPC,也要访问B系统,那么这个B系统的经典网络的SLB,C系统就访问不到了。所以这样做不行。
2.那么,反过来呢?也就是先给B系统挂载个VPC的SLB,然后让C和A系统来访问呢?C系统当然可以直接访问了,然而A系统是经典网络的,同样没法直接访问B系统在VPC的SLB。
3.好吧。既然,不管是挂载VPC的SLB还是挂载经典网络的SLB都不行,那么挂载公网的总行了吧?确实行。不过,本来是内网的SLB,现在换成了公网的SLB,虽然是过渡阶段,但是安全风险还是很大。如果要用这个方案,那么必须给每个SLB的每个监听加上访问控制。由于我们的SLB和监听端口数量非常大,ECS也经常新购和释放,人肉来做效率很低,也很容易出错,所以我们决定开发个自动处理SLB访问控制的程序来做这个事情。甚至,这个程序我们都做好了。
4.然而,就在我们测试ECS Classlink时,我们发现,当经典网络的ECS接入对应VPC的classlink后,这个ECS即可访问VPC内的所有产品,包括SLB。不过,这个SLB要在classlink允许访问的交换机网段上。
所以,迁移SLB的方案就变成了这样:先把所有相关的ECS都开启classlink,然后把所有的内网SLB都切换到VPC里。这样,SLB的迁移就完成了。当然,重新配置SLB以及其监听,重新发布部署服务挂载到VPC SLB上,把上游调用方的访问地址切换到新的SLB上,然后再下掉老的SLB和服务都是必须的,而且要很小心去做。

ECS的迁移

对于ECS,阿里云提供了直接迁移的方法,可以在实例的【更多】-【网络和安全组】里选择【预约迁移至专有网络】然后按照步骤就可以完成迁移。不过这种操作ECS需要重启,而且只能主账号操作,我们只有在个别情况下才使用。这种迁移方式有个好处,公网IP会被保留下来,在一些特殊场景比如公网IP被外部依赖的时候会非常有用。
image
image
image
ECS我们一般不使用直接迁移的方式,而是在VPC内新购买机器,重新部署和搭建服务,并开放给经典网络和VPC网络中的所有调用方使用。不过,虽然不做迁移,但是必须要跟VPC能互访,所以所有ECS都开启classlink是必须的。这个也是迁移VPC第一步要完成的。

其他产品

除了SLB和ECS,阿里云的其他产品,如RDS、MongoDB、Redis、OSS、MNS/MQ等,都提供了混访模式,也就是在过渡期间,给每个实例都分配一个VPC地址,同时继续保留原来的经典网络地址,这样,不管使用方所在的网络是经典网络还是VPC网络,都可以访问到。
当全部迁移VPC完成后,经典网络的地址就可以释放掉,所有产品就完全变成了VPC网络。这里要注意的是,当这些产品切换到VPC后,虽然经典网络地址还继续保留,但是是有保留时间限制的,需要在一段时间内迁移完毕或者经常续期。另外,一旦切换到VPC后,默认显示的各种信息就都是VPC网络的,要使用经典网络地址时需要特别留心注意不要搞错地址。

总结

以上就是我们从经典网络迁移到专有网络VPC时将阿里云产品逐个切换到VPC网络的方法,其实都是阿里云官方方式,classlink、混挂、混访。通过这种方式,我们基本解除了系统间的依赖,不管先迁移哪个系统,都没有太大的影响。不过,在具体场景下,要完全做到平滑,还是需要特别注意,要多做测试,同时也还是要注意操作步骤和相互依赖。

相关实践学习
阿里云专有网络VPC使用教程
专有网络VPC可以帮助您基于阿里云构建出一个隔离的网络环境,并可以自定义IP 地址范围、网段、路由表和网关等;此外,也可以通过专线/VPN/GRE等连接方式实现云上VPC与传统IDC的互联,构建混合云业务。 产品详情:https://www.aliyun.com/product/vpc
相关文章
|
1月前
|
弹性计算 负载均衡 网络协议
这种情况可能是由于阿里云的API服务出现了短暂的故障或者网络波动导致的
【2月更文挑战第20天】这种情况可能是由于阿里云的API服务出现了短暂的故障或者网络波动导致的
53 1
|
25天前
|
SQL 数据可视化 Apache
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
阿里云数据库 SelectDB 内核 Doris 的 SQL 方言转换工具, Doris SQL Convertor 致力于提供高效、稳定的 SQL 迁移解决方案,满足用户多样化的业务需求。兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移。
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
|
25天前
|
弹性计算 网络协议 关系型数据库
网络技术基础阿里云实验——企业级云上网络构建实践
实验地址:<https://developer.aliyun.com/adc/scenario/65e54c7876324bbe9e1fb18665719179> 本文档指导在阿里云上构建跨地域的网络环境,涉及杭州和北京两个地域。任务包括创建VPC、交换机、ECS实例,配置VPC对等连接,以及设置安全组和网络ACL规则以实现特定服务间的互访。例如,允许北京的研发服务器ECS-DEV访问杭州的文件服务器ECS-FS的SSH服务,ECS-FS访问ECS-WEB01的SSH服务,ECS-WEB01访问ECS-DB01的MySQL服务,并确保ECS-WEB03对外提供HTTP服务。
|
27天前
|
关系型数据库 MySQL 数据库
使用阿里云的数据传输服务DTS(Data Transmission Service)进行MySQL 5.6到MySQL 8.0的迁移
【2月更文挑战第29天】使用阿里云的数据传输服务DTS(Data Transmission Service)进行MySQL 5.6到MySQL 8.0的迁移
215 2
|
1月前
|
弹性计算 NoSQL 测试技术
倚天使用|Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
137500 3
|
1月前
|
NoSQL 网络协议 架构师
|
2月前
|
弹性计算 Linux 网络安全
三步搭建VPC专有网络NAT网关,配置SNAT和DNAT规则(补充版)
申明:该文档参考于用户 “帅宝宝”的文档进行的优化,新增永久生效的方式
283 1
|
2月前
|
弹性计算 大数据 测试技术
2024年阿里云服务器价格购买价格表(实例配置价格+磁盘价格+网络宽带价格)
2024年阿里云服务器价格购买价格表来了!2024年阿里云服务器租用费用,轻量应用服务器和云服务器ECS优惠价格表,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服务器30元3个月,幻兽帕鲁4核16G和8核32G服务器配置,云服务器ECS可以选择经济型e实例、通用算力u1实例、ECS计算型c7、通用型g7、c8i、g8i等企业级实例规格。今天分享阿里云服务器租用费用最新报价:
60 2
|
22天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客