如何利用AWS服务构建覆盖全球的服务架构?

摘要:一、背景 当我们在做全球业务时,例如网站机器游戏,为了支撑全球用户,我们会在不同的位置搭建节点,以满足业务功能和响应实效。 我们会搭建一个这样的架构满足初步的使用。 能用是ok的了,会有什么问题呢? 1、因为服务独立,上架1个SKU需要
一、背景   当我们在做全球业务时,例如网站/机器/游戏,为了支撑全球用户,我们会在不同的位置搭建节点,以满足业务功能和响应实效。 我们会搭建一个这样的架构满足初步的使用。      能用是ok的了,会有什么问题呢?   1、因为服务独立,上架1个SKU需要多次发布到不同的服务。   2、因为域名过多,发布时需要频繁的退出、登录切换不同的二级域名,非常繁琐不说,还可能会遗漏。   3、后期处理数据统计、报表、看板、设备地图,耗时费力。   4、这还是单节点,未考虑高可用的情况下,多区域、多节点部署服务器导致运维难度增加、过多的财务开支。   5、各个节点各玩各的。   有什么方式可以解决这些问题?   AWS服务组件很好支持。 二、AWS架构   AWS提供了非常丰富的组件,列几个常用的:   1、Route 53 负责域名解析流量管理健康检查,高可用可以用到它。   2、VPC 虚拟私有网络,可将同一区域的服务器、数据库置于同一内网段,提升访问速度。   3、CloudFront CDN加速,可以给访问请求、对象存储加速。函数功能极其强大,可配置HTTP、HTTPS的请求跨域,可识别全球流量来源,根据来源分发到不同区域的节点。   4、EC2 服务器,内含了负载均衡器ELB、目标组,可实现同一地区的服务器的负载均衡和高可用。结合CloudFront可将流量分发到就近的服务。   5、Aurora and RDS 数据库,Aurora 作为全球数据库,已实现主从备份,可在1s内实现全球数据同步,结合Route 53的短域名实现读写分离。   6、S3 对象存储,OSS存储图片、视频、文档、音频等。   7、Certificate Manager 安全凭证管理,可申请和管理证书。   架构完是这样的。 三、干活,简单的一笔带过   1、将外部域名解析到Route 53。   2、在Certificate Manager申请证书。   3、在拟定的区域创建VPC内网。   4、购买服务器和数据库时选择上面的创建的VPC内网。   5、在创建Aurora数据库时需要选确认某一个区域为主集群,主集群下会创建写入器实例、读取器实例。     再创建其它区域的读取实例,如下图:      6、在Route 53创建一个私有的短域名,用于数据库连接,无需在域名供应商购买。我这里用db.com     7、将二级域名指向到Aurora的写域名指向到Aurora的写入器实例的DNS(路由策略:简单),     读域名指向到多个读取器实例的DNS(路由策略:延迟)。数据写入到主库后,1s内可同步到所有的从库      8、在EC2购买服务器后,新建目标组,将服务器添加到目标组中      9、在EC2创建负载均衡器,这里分NLB(服务器之间用)和ELB(服务器内部服务之间用),层级和颗粒度不同。     这里创建NLB,添加转发到的目标组到侦听器,注意选择VPC。创建完即可通过DNS访问。      10、创建CloudFront,将需要经过CDN加速的域名添加到备用域名,添加第2步创建的证书,源添加到访问目标的DNS。成功后CloudFront会分配域名。   11、在Route 53将经过CloudFront加速的域名指向到CloudFront分配域名上。   12、在Route 53创建NLB的健康检查,成功后生成ID。   13、在Route 53添加故障转移域名,用于服务区域之间的高可用,无需额外采购服务器   14、在CloudFront创建函数,将请求按照国家和地区分发到相应的服务器。
阅读全文