使用S3 Access Point访问S3存储桶

一、背景

S3提供Access Point用于数据分享、访问授权,可用于对外隐藏真实的存储桶名称的同时实施权限控制。S3 Access Point有两种类型:从Internet互联网访问类型,以及仅能从特定VPC访问的类型。此外S3 Access Point也支持跨账户访问。

下面分别进行两种配置。

Continue reading “使用S3 Access Point访问S3存储桶”

调整中文Windows Server的CMD控制台默认字体和代码页

一、背景

在使用Windows自带的cmd(不是Windows 10 新的Terminal App)的过程中,很多人发现中文版本Windows的cmd字体的默认是宋体,显示英文非常丑陋,和英文字体的美观大方相比简直是天壤之别。

由此,为了获得更好的字体显示,就进入了cmd设置界面,试图切换字体,然而发现只能选寥寥几种中文字体,无法切换到美观的英文字体。于是,为了字体选择范围更大,很多时候宁可将整个Windows语言都切换到英文OS,这样又对其他应用兼容性带来了挑战。

为了解决这个问题,一般有两种方法:1是增加新的True Type字体,修改改注册表加入新的字体支持;2是切换cmd默认的代码页。本文介绍方法2。

Continue reading “调整中文Windows Server的CMD控制台默认字体和代码页”

在EKS上的ELB获取最终用户的真实IP地址

有关EKS系列文档和实验的汇总,请点击这里跳转

一、背景

1、没有EKS而是使用EC2场景下获取客户端真实IP地址

在之前的文章主要是介绍ELB+EC2模式下,获取客户端真实IP,可参考AWS官方知识库:

https://aws.amazon.com/cn/premiumsupport/knowledge-center/elb-capture-client-ip-addresses/

也可参考过往的这篇blog文章。

Continue reading “在EKS上的ELB获取最终用户的真实IP地址”

升级EKS托管节点组的AMI到最新版镜像

EKS节点EC2推荐采用Managed Node托管节点组,其使用的操作系统AMI清单参考这里:

https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/eks-linux-ami-versions.html

由于操作系统需要定期升级更新,因此对EKS节点升级可通过刷新Node Group对应的AMI来进行版本升级。

Continue reading “升级EKS托管节点组的AMI到最新版镜像”

AWS Gateway Load Balancer (GWLB) in single VPC Quickstart

GWLB in single VPC Quickstart CloudFormation Template

一、架构说明

1、GWLB简介

关于AWS GWLB,之前构建过一个结合Transit Gateway的多VPC的GWLB方案,也就是所谓的集中式。集中式是指应用系统所在的VPC是没有GWLB Endpoint的,流量是通过Transit Gateway汇集到一个统一的VPC做流量检查。

本次构建的quickstart则是一个分布式检测架构。所谓分布式,是指整个架构不包含Transit Gateway,而应用系统VPC本身是包含GWLB Endpoint。未来增加第二个、第三个VPC时候,每个VPC都带有自己的GWLB Endpoint。所以这个架构,在只有一个VPC时候,看起来是Single VPC。如果有多个VPC,就是分布式流量检查架构。

本模版是针对是特定场景下的需求,如果是全新设计,建议按照GWLB最佳实践的架构进行组网。

本方案构建一个单VPC的网络检测方案。本文代码参考Github这里

Continue reading “AWS Gateway Load Balancer (GWLB) in single VPC Quickstart”

使用Keepalive机制在NAT后保持长链接

一、背景

1、NAT的长链接的局限

AWS云上的NAT/NLB/GWLB在针对长连接的场景上,存在350秒闲置超时的物理机制,且这是一个硬限制,无法通过开case提升limit的办法修改。这一限制的官方文档描述参考如下:NAT ,NLB ,GWLB 。

为了解决这一限制问题,需要同时在OS层、应用成打开keepalive设置,并且需要在服务器端和客户端分别配置。

Continue reading “使用Keepalive机制在NAT后保持长链接”

通过子域名授权的方式实现海外和国内分别使用Route53服务解析的方案

一、背景

1、使用单一域名按国家解析的挑战

有的客户希望在国内和海外采用单一域名运行,例如将域名部署在AWS全球的Route53服务上,并设置按照不同国家解析到不同Region的记录。此时,由于域名解析完全位于海外的DNS,国内的解析效果可能较差,存在解析不出来、同步延迟大等问题。如果由此将域名解析完全部署在中国区的Route53服务上,对国内用户体验良好,但是对海外用户又有解析失败概率提高的可能。

由此可采取授权子域名解析的办法。请看如下详细解释。

Continue reading “通过子域名授权的方式实现海外和国内分别使用Route53服务解析的方案”

ECS服务相关汇总

容器基础1:构建Apache+PHP镜像DockerFile

容器基础2:构建容器镜像并上传到ECR

ECS 201 Workshop(一)准备工作:配置IAM和任务定义

ECS 201 Workshop(二)发布ECS服务

ECS 201 Workshop(三)弹性扩展

ECS 201 Workshop(四)通过CodeDeploy实现蓝绿发布

ECS 201 Workshop(五)使用CLI发起CodeDeploy部署新的ECS版本

Continue reading “ECS服务相关汇总”

构建Apache2+PHP容器的例子

构建容器用于AWS ECS服务和AWS EKS服务的时候,由于容器服务的启动endpoint只能是唯一的启动进程,而且必须处于前台,因此会面临无法同时启动php-fpm和httpd的问题。此外,在构建容器中,还经常遇到体积过大,影响服务发布速度等问题。

如下配置文件可参考构建容器镜像用于AWS ECS服务和AWS EKS服务。中国区和海外区测试通过。

Continue reading “构建Apache2+PHP容器的例子”

在ECS容器服务上使用EFS文件服务提供持久化存储

一、背景

EFS文件系统可以提供可靠的、持续的文件系统给多种服务,这其中也包括ECS容器服务。在容器场景上使用EFS的主要优势是可以简化管理,借助托管服务快速部署无须复杂运维,让ECS容器镜像的构建只需要关心应用程序本身,不需要将配置文件、数据文件打包到容器中。由此可实现容器的运行时和数据的分离。ECS Fargate和Fargate Spot都支持使用EFS文件系统,其中在Fargate Spot服务上搭配EFS,更可以借助EFS的持久化,避免Spot中断时候的数据持久保存问题。

Continue reading “在ECS容器服务上使用EFS文件服务提供持久化存储”