在NLB和ALB后获取客户端真实IP地址

注:本文只对ELB+EC2有效,EKS上的NLB请参考这篇博客。

一、背景

1、ELB分类

AWS ELB提供了弹性扩展能力,用于多EC2节点流量负载、高可用、弹性扩展的调度等用途。目前主要使用以NLB和ELB为主。上一代传统负载均衡器又被称为CLB,推荐不要再继续使用CLB,而是更换到NLB和ALB。

Continue reading “在NLB和ALB后获取客户端真实IP地址”

使用Powershell自动初始化实例本地硬盘

一、背景

当选择带有本地实例存储的规格时候,例如c5d,m5d,g4dn等,EC2上除系统盘外,会自动增加一个本地存储。本地存储在关闭EC2后会清空。再次打开EC2电源时候,EC2会将本地存储识别为一个没有经过初始化的新驱动器,上次分配的盘符也不再处于绑定状态。

如果希望每次开机后对实例存储自动初始化、格式化、并绑定盘符,则可以使用本文的脚本。

Continue reading “使用Powershell自动初始化实例本地硬盘”

在Windows下安装Tensorflow

一、背景

Tensorflow可以在Windows下安装运行,有GPU版本和CPU版本。自行安装Tensorflow的一个主要问题就是版本不匹配。CUDA和Tensorflow的搭配是有特定版本要求的,并非越高越好。因此如果完全去Nvidia官网下载公开驱动,在运行Tensorflow过程中很可能报告找不到xxx.dll等错误,就是因为版本不匹配造成的。网上可以搜索到相关文章。相对于自行安装Python、自行下载CUDA、CUDNN、Tensor等组件并匹配版本,还要配置环境变量,复杂和麻烦。因此,本文推荐使用Anaconda一步到位。

Continue reading “在Windows下安装Tensorflow”

在EC2上使用S3FS以文件系统方式挂载S3

一、背景

在某些特殊场景下,例如测试、数据临时校验等,需要在EC2的虚拟机层面,通过操作系统以文件和目录形式对S3做读写,这时候可以使用第三方的S3文件系统工具,将S3挂载到某磁盘目录。

注意:本工具因为性能和可靠性原因,不建议用于生产,建议只用于测试。

Continue reading “在EC2上使用S3FS以文件系统方式挂载S3”

通过RDS参数组功能修改RDS数据库的RDS时区参数

一、背景

RDS是托管数据库,也叫做Managed Service,由云平台负责数据库创建、配置、集群、高可用、存储、数据复制、监控、快照、备份、诊断、扩缩容、更换机型等一系列功能。

这一些功能由云平台提供,意味着运行RDS的基础操作系统是不允许用户登陆的。虽然在创建数据库时候需要选择实例规格,例如选择m6g.2xlarge,意味着8vCPU/32GB的虚拟机,并且这个虚拟机会使用Amazon Linux系统。但是这一切用户不可见。RDS只对用户暴露数据库的SQL接口,例如SQL Server暴露1433端口,Oracle暴露1521端口,MySQL暴露3306端口,PostgreSQL暴露5432端口。RDS对外不暴露SSH端口。

如果此时有需要调整数据库服务的底层参数,例如在虚拟机上手工安装MySQL时候需要在/etc/my.cnf中配置参数,这时候应该如何调整?本功能就是RDS参数组提供的修改数据库参数功能。RDS参数组功能对各种RDS数据库均有效,本文仅以MySQL为例编写。

Continue reading “通过RDS参数组功能修改RDS数据库的RDS时区参数”

使用Rsync为Snowball迁移后的文件系统做增量复制

一、使用Snowball迁移后的文件增量需求

一个典型的NAS迁移场景是使用Snowball将原IDC的大量数据复制到Snowball上,然后通过Snowball交运到AWS云。数据在AWS区域内,会从Snowball中提取出来,保存到S3目标存储桶内。也就是说,Snowball的交付成果是一个S3存储桶。至此Snowball迁移的流程结束。

Continue reading “使用Rsync为Snowball迁移后的文件系统做增量复制”