海外测试,在AWS服务踩过的一个小坑

上周笔者所在项目的海外内测结束了,现在开始做技术复盘工作。这里简单分享一个以前没有遇到过的小坑,希望大家不会和我一样中招。

海外测试,在AWS服务踩过的一个小坑

以前在国内运营游戏,基本上不是采用腾讯云,就是采用阿里云。由于这次是在北美进行测试,所以经过团队内部的讨论后,我们决定使用亚马逊云来做服务器。主要原因呢,还是认为使用当地最大最可靠的云服务器更安全一些,在技术支持上也更有保障,更富有经验。

但这也带来了下面这个小坑,这是以前国内云厂商使用的时候没有遇到过的。

AWS的Redis服务是默认开启SSL的。但是在QA环境下,我们的Redis并没有设置带有密码的用户。于是在部署线上环境的时候,当线上设置了带有密码的Redis用户后,我们发现游戏程序对于经过SSL加密的Redis密码无法解析,服务器程序启动失败。

由于临近上线,不得已我们只能切换了一个无密码的Redis用户,才临时解决了这个问题。在测试结束后,我们也就这个问题和AWS的技术支持团队沟通过。他们表示,只要访问Redis是在私网环境下,那么无密码也是并不存在安全风险的。因为AWS本身对于内网是有一层防护的

在这个过程中,我觉得有这么两个事情是需要总结一下的:

1、开发需要在设计游戏的时候,确保数据访问是通过内网进行的。这是一个最基本、最重要的前置条件。本次测试如果不是因为程序访问数据库都是走的内网环境,那么无密码的用户将会造成极大风险;

2、测试环境一定要和线上保持一致。这其实也是个很基本的问题了。但是以前的认识是,只要测试服务器架构模拟线上架构,服务器及数据库的环境变量配置一致即可。但是这个坑告诉了我,数据库的用户设置也需要完全一致,如果线上有密码,那么测试中也就需要带密码,这样可以提前发现问题



留言