稳定平滑进行云上业务IPv6改造——Series2:ECS及业务应用改造

简介: 稳定平滑进行云上业务IPv6改造——Series2:ECS及业务应用改造

上期本文对IPv6化改造思路以及CDN的IPv6化改造进行了介绍,本期将对ECS及业务应用的IPv6化改造进行介绍。

ECS及业务应用IPv6化改造方法

这部分的改造我们可以根据具体情况使用两种方法:

  • 使用IPv6转换服务:通过阿里云的IPv6转换服务进行旁路转换,不改造应用架构,但类似反向代理有一定的局限性,可以作为短期过渡使用。
  • ECS配置IPv6网关:VPC中开启IPv6网关,在每一台ECS中配置IPv6 Interface,并手工配置应用服务使之开启IPv6的服务监听,这种方法会进行一些配置变更和应用变更,虽然操作技术门槛略高一些,但是长期可行的方式。

使用IPv6转换服务

从客户业务应用的角度出发,如果客户对其应用层面并不非常熟悉,对现有业务的不间断运行要求非常高,同时和外部数据交换并不是那么频繁,那么采用“IPv6转换服务”是个不错的选择,具体操作起来也很容易,具体分为三步:
(1)获取应用服务IP和服务端口:这里的IP和服务端口可以是SLB的,也可以是ECS的,主要看现有IPv4应用对外发布时所暴露的IP和服务端口;
(2)评估应用的CPS(Connection Per Second,每秒新建连接数)和带宽:根据现有IPv4应用访问情况和客户规划情况确定IPv6转换服务的实例规格和带宽;
(3)配置IPv6转换服务:根据CPS、带宽、服务IP、服务端口就可以进行IPv6转换服务的配置了,配置对应的映射条目。
下图是为1xx.xx.xx9.129的TCP80进行IPv6转换映射:
图1:添加IPv6转换映射条目.png

图1:添加IPv6转换映射条目

配置好后会获得一个IPv6地址,使用这个IPv6地址即可访问ECS或业务应用了。如上图的配置,我们的IPv6访问地址就为:http://[2::*::2bf]:80。

image.png
图2:访问IPv6地址示例

ECS配置IPv6网关

如果客户对自身的业务应用非常熟悉,且动手能力很强,那么通过支持客户对ECS和应用进行IPv6的改造,使其达到“IPv6+IPv4双栈”模式,是一个一劳永逸的方法,这种方法在变更前要对客户应用架构和具体使用的服务程序很了解,同时变更过程中可能会出现业务闪断,需要格外注意方案的有效性,可以通过灰度的方式分模块进行变更和验证,具体改造需要下面几步。

配置VPC的IPv6功能

这一步需要提前让客户申请“IPv4/IPv6双栈VPC公测资格”,审核通过后点击“开通IPv6”,使VPC和其下的vSwitch支持IPv6。
图3:VPC开通IPv6功能示意图.png

图3:VPC开通IPv6功能示意图

配置成功后如下图所示:
图4:VPC的IPv6配置成功.png

图4:VPC的IPv6配置成功

创建并配置IPv6网关

这一步需要配置IPv6网关的规格和IPv6公网带宽,需要根据客户应用的公网转发吞吐和业务带宽进行规划。
图5:IPv6网关设置.png

图5:IPv6网关设置

为ECS申请IPv6地址

在ECS控制台中,为需要进行IPv6改造的ECS申请“辅助IP”,使其获得公网IPv6地址。
图6:ECS申请“辅助IP”.png

图6:ECS申请“辅助IP”

这一步只是在阿里云的管控层面为所选ECS申请到了对应的IPv6地址,还需要在ECS层面配置才能使ECS中的操作系统获取这个IPv6地址(详见3.5)。同时,需要在“IPv6网关”的“IPv6网关带宽”中为对应的IPv6地址分配带宽,否则此IPv6地址无法对外网提供服务。
图7:为IPv6地址分配带宽.png

图7:为IPv6地址分配带宽

配置安全组

这一步非常重要,很多客户在做了IPv6化后发现依然无法通过IPv6进行通讯,客户在安全组中常常会设置“0.0.0.0/0”这种规则,以为是代表所有,其实0.0.0.0/0”仅是IPv4的“ALL对象“,需要客户再创建对应的IPv6安全组规则,授权对象写成“::/0”即可。

配置ECS内的系统参数

这一步也非常关键,通过修改ECS内sysctl的参数使其Interface支持IPv6协议,并获取3.3中获取的IPv6地址,动手能力强的客户可以通过手工修改sysctl中的net.ipv6.conf.all.disable_ipv6、net.ipv6.conf.default.disable_ipv6、net.ipv6.conf.lo.disable_ipv6三个参数,使其全部为“0”来使能IPv6 Mod,也可通过这里的指引执行自动化脚本开启IPv6 Mod。开启成功后,通过执行:ip a | grep “inet6”即可看到操作系统已经获取到对应的公网IPv6地址:
图8:查看ECS操作系统获取到的公网IPv6地址.png

图8:查看ECS操作系统获取到的公网IPv6地址

验证ECS内操作系统的IPv6连通性

进行过如上五步后,可以在改造后的ECS中执行:ping6 aliyun.com或ping6 ipv6.baidu.com来测试IPv6协议栈和网络是否有效。
图9:验证ECS内操作系统的IPv6连通性.png

图9:验证ECS内操作系统的IPv6连通性

应用IPv6服务监听开启

这一步需要对客户业务应用有很深的理解,并根据具体的应用服务软件特性进行IPv6开启。例如某ERP开发公司的某业务应用依赖nginx系的Web服务程序提供服务,对外服务端口为8080,则我们需要在nginx.conf中添加对应的IPv6监听:

server {
    listen 80;
    listen [::]:80;
    ……
}

然后执行nginx -t测试配置是否正确,确认无误后和客户进行灰度发布(systemctl restart nginx);
然后执行netstat -tunlp看是否出现如下监听服务:

tcp6 0 0 :::80 :::* LISTEN 1053/nginx

如出现以上情况,说明变更成功,同时不必紧张为何没有显示IPv4的80监听,这是正常情况,IPv4和IPv6都可访问。
无论nginx还是tomcat,还是其他C/S或B/S服务,开启IPv6服务监听的方法均大同小异,搜索对应的应用官网或服务商的文档即可获取具体配置方法,这里不再赘述。
下期本文将从“SLB、DNS”几个层面具体讲解IPv6化改造的方法,敬请期待!

作者:成俞晟

阿里云智能GTS-SRE团队技术服务经理

曾就职于联想集团、华为、中化集团,有着丰富的数据中心及云计算经验,现就职于阿里云智能GTS-SRE团队,任北方区SRE架构师。

我们是阿里云智能全球技术服务-SRE团队,我们致力成为一个以技术为基础、面向服务、保障业务系统高可用的工程师团队;提供专业、体系化的SRE服务,帮助广大客户更好地使用云、基于云构建更加稳定可靠的业务系统,提升业务稳定性。我们期望能够分享更多帮助企业客户上云、用好云,让客户云上业务运行更加稳定可靠的技术,您可用钉钉扫描下方二维码,加入阿里云SRE技术学院钉钉圈子,和更多云上人交流关于云平台的那些事。

image.png

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
存储 关系型数据库 API
深入理解后端技术:构建高效、可扩展的服务器端应用
本文将探讨后端开发的核心概念和技术,包括服务器端编程、数据库管理、API设计和安全性等方面。通过深入浅出的方式,让读者了解如何构建高效、可扩展的后端系统。我们将从基本的后端框架开始,逐步深入到高级主题,如微服务架构和容器化部署。无论您是初学者还是有经验的开发人员,都能在本文中找到有价值的信息和实用的建议。
|
12天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
14天前
|
Kubernetes Java Maven
揭秘无服务器革命:Quarkus如何让Java应用在云端“零”负担起飞?
本文介绍如何使用Quarkus从零开始开发无服务器应用,通过示例代码和详细步骤引导读者掌握这一技术。无服务器架构让开发者无需管理服务器,具有自动扩展和成本效益等优势。Quarkus作为Kubernetes Native Java框架,优化了Java应用的启动速度和内存使用,适合无服务器环境。文章涵盖环境搭建、项目创建及部署全流程,并介绍了Quarkus的扩展性和监控工具,助力高效开发与应用性能提升。
24 9
|
11天前
|
存储 缓存 前端开发
优化 SSR 应用以减少服务器压力
优化 SSR 应用以减少服务器压力
|
14天前
|
监控 JavaScript Java
部署应用程序到服务器
部署应用程序到服务器
30 3
|
1月前
|
弹性计算 安全 测试技术
阿里云的ECS云服务器应用例
在未来的远程办公时代,“未来空间”打造了一个高效、灵活且安全的在线协作平台,采用阿里云ECS云服务器作为核心基础设施。ECS提供按需付费的弹性计算能力,确保平台响应迅速并能应对流量高峰。其集成的安全特性如安全组和云盾,构建了多层次防护体系,保障数据安全。此外,ECS与阿里云其他服务无缝集成,如RDS、CDN和OSS,实现了高效的数据管理和全球低延迟访问。结合阿里云的机器学习服务,“未来空间”开发了智能会议摘要和情绪分析功能,提升了用户体验。凭借ECS的强大支持,该平台不仅实现了全球团队的高效协作,还赢得了市场的广泛认可,成为远程办公领域的标杆。
|
17天前
|
安全 关系型数据库 API
深入理解后端技术:构建高效、可靠的服务器端应用
本文将深入探讨后端技术的核心概念和最佳实践,包括服务器端编程、数据库管理、API设计与开发等方面。我们将从基础开始,逐步深入,帮助读者建立起对后端开发的全面理解,从而能够独立构建高效、可靠的服务器端应用。
30 0
|
2月前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
34 0
|
2月前
|
开发者 Windows Android开发
跨平台开发新选择:揭秘Uno Platform与.NET MAUI优劣对比,帮你找到最适合的框架,告别选择困难症!
【8月更文挑战第31天】本文对比了备受关注的跨平台开发框架Uno Platform与.NET MAUI的特点、优势及适用场景。Uno Platform基于WebAssembly和WebGL技术,支持Windows、iOS、Android及Web平台,而.NET MAUI由微软推出,旨在统一多种UI框架,支持Windows、iOS和Android。两者均采用C#和XAML进行开发,但在性能、平台支持及社区生态方面存在差异。Uno Platform在Web应用方面表现出色,但性能略逊于原生应用;.NET MAUI则接近原生性能,但不支持Web平台。开发者应根据具体需求选择合适的框架。
62 0
|
2月前
|
缓存 UED 开发者
全面加速Angular应用:从代码拆分到服务器端渲染的性能优化全攻略——深入探讨提升加载速度的有效策略
【8月更文挑战第31天】在现代Web开发中,提升应用加载速度对增强用户体验至关重要,尤其对于使用Angular框架的单页应用而言更是如此。本文通过解答五个常见问题,提供了一份全面的Angular性能优化攻略,涵盖减少初始加载时间、处理大型第三方库、优化变更检测、利用缓存以及服务器端渲染等技术。通过这些方法,开发者能够显著提升应用性能,确保流畅高效的用户体验。
38 0
下一篇
无影云桌面