在高度安全的纯内网使用Session Manager登录EC2

Session Manager基础知识请参考这篇文章。本文只针对严格受限的纯内网场景编写,一些操作细节略过。

一、背景

Session Manager是非常好用的EC2远程连接和管理工具,之前在这篇博客中有过系统讲解。Session Manager的使用前提是本VPC的EC2能够具备出向互联网访问,连接到本Region的Session Manager位于互联网的Endpoint。

那么对于一个完全内网的环境,没有默认路由0.0.0.0/0去往互联网或NAT Gateway,甚至没有Internet Gateway(IGW),完全是封闭的内网。此时,如何使用Session Manager?此时可通过Endpoint实现。此外,由于各种依赖条件比较多,因此编写本篇文章。

Continue reading “在高度安全的纯内网使用Session Manager登录EC2”

将EC2手工加入EKS集群成为托管节点

EKS动手实验合集请参考这里

一、背景

1、EKS服务使用EC2的两种模式

EKS服务使用EC2的两种模式

  • 使用EKS自动生成的托管节点组:在EKS服务控制台或者通过eksctl命令完成,EKS会自动使用最新镜像,全自动创建,并使用Autoscaling缩放;如果是通过eksctl脚本,还会自动创建合适的IAM角色;这时候EC2会在托管节点组内。
  • 使用EKS提供的AMI以托管节点方式自行加入集群:使用EKS官方提供的基础镜像,手工创建一个EC2,并手工配置IAM角色,然后使用bootstrap.sh脚本,将本EC2加入EKS集群;这时候EC2会成为托管节点,但不会进入上一步的托管节点组。

以上两种方式,都是EKS托管节点,意味着EKS可有效进行版本升级等管理。不过不在节点组中的EC2不能参与缩放,当节点不够用时候,需要手工拉起新的节点。

本文介绍第二种方式的使用。

Continue reading “将EC2手工加入EKS集群成为托管节点”

生成VPC Flowlog并输出到CloudWatch用于分析VPC流量

一、背景

VPC Flowlog是用于采集VPC内四层网络流量的工具。其采集对象包括EC2、NLB、RDS等之间和外部网络之间的流量。VPC Flowlog是OSI模型第四层采集工具,会记录源地址、源端口、目标地址、目标端口、协议、传输数据量等信息,但不会记录OSI模型第七层定义的域名、网址等属于应用层定义的日志,也不会记录发送的数据本体。VPC Flowlog常用于排查EC2相关网络错误。

本文介绍如何开启VPC Flowlog并输出到CloudWatch用于查看VPC内流量。

Continue reading “生成VPC Flowlog并输出到CloudWatch用于分析VPC流量”

在某定制AMI和定制内核版本的CentOS上调查ENA驱动版本低导致的EC2不能运行在6系列机型的问题

一、背景

从IDC导入的CentOS 7.4系统,没有使用系统自带的3.10内核,而是定制了4.11内核。之前安装包含EC2需要的ENA网卡驱动,在5系列机型上可启动,在6系列机型上启动时候健康检查停留在1/2的不正常状态。查看EC2运行状态截图和EC2串口控制台,发现是网络启动失败,也就是没有识别到网卡。

本文描述了排查过程如下。

Continue reading “在某定制AMI和定制内核版本的CentOS上调查ENA驱动版本低导致的EC2不能运行在6系列机型的问题”

使用AWS Java SDK V2创建EC2、并通过Userdata指定Hostname

本文相关代码、POM文件在Github这里

本文介绍了如果通过Userdata在首次创建EC2时候自定义主机名Hostname。本文使用Java语言,通过AWSSDK的方式调用API发起操作。本文提供了代码和POM参考,在Amazon Linux 2的EC2上编译、测试通过。

Continue reading “使用AWS Java SDK V2创建EC2、并通过Userdata指定Hostname”

使用DMS向Redshift Serverless复制数据所需要的IAM Role

更新了Redshift加载IAM Role的说明

一、背景

在使用DMS向Redshift Serverless复制数据的过程中,添加Redshift Serverless为Target Endpoint,然后按下测试按钮,此时后收到报错:

Role 'dms-access-for-endpoint' is not configured properly.

根据有关文档,配置完成这个IAM Role后,开始Redshift复制任务,又会遇到错误,在DMS生成的CloudWatch日志中,出现如下错误:

2023-10-31T15:12:44 [TARGET_LOAD     ]E:  RetCode: SQL_ERROR  SqlState: XX000 NativeError: 30 Message: [Amazon][Amazon Redshift] (30) Error occurred while trying to execute a query: [SQLState XX000] ERROR:  exception name : UnauthorizedException, error type : 135, message: The requested role arn:aws:iam::1xxxxxxx:role/dms-access-for-endpoint is not associated to cluster, should retry : 0 DETAIL:     -----------------------------------------------   error:  exception name : UnauthorizedException, error type : 135, message: The requested role arn:aws:iam::133129065110:role/dms-access-for-endpoint is not associated to cluster, should retry : 0   code:      30000   context:      query:     409714[child_sequence:1]   location:  xen_aws_credentials_mgr.cpp:422   process:   padbmaster [pid=1073955240]   -----------------------------------------------  [1022500]  (ar_odbc_stmt.c:5007)

如何让DMS能够正确的连接到Redshift Serverless?

Continue reading “使用DMS向Redshift Serverless复制数据所需要的IAM Role”

开始使用 Managed Streaming for Kafka (MSK) Serverless 版本

一、背景

MSK的Serverless版本简单易用,无须设置大量复杂参数,点击几下鼠标,五分钟内即可创建完毕,可快速开始使用。

MSK Serverless默认是2个可用区,使用IAM认证,并开启TLS认证。因此需要在Kafka的客户端做额外配置。本文讲解如何连接到MSK Serverless版本。

Continue reading “开始使用 Managed Streaming for Kafka (MSK) Serverless 版本”

看懂一份AWS CloudFront(含Origin Shield)的CDN服务账单

一、背景

CloudFront Origin Shield功能是在CloudFront区域缓存之下的一层额外缓存。当被加速的源站不在AWS上的时候,开启这个功能和优化访问体验。当被加速的源站是AWS上的资源时候,对源站请求会汇聚到Origin Shield所在的区域,可以起到优化缓存的作用。

开启了CloudFront Origin Shield之后,产生的云费用账单会有数条,此时如何分析每一项费用的产生是否合理、如何进行优化?

Continue reading “看懂一份AWS CloudFront(含Origin Shield)的CDN服务账单”

CentOS 7.3从IDC导入到AWS云后的ENA和NVMe驱动安装、dracut报错修复和磁盘扩容

更新了内核小版本的提示,确保安装的内核驱动与当前使用的小版本对应,否则其他版本的内核可能会加载非最新版ENA驱动。

一、背景

1、关于IDC迁移到AWS EC2之后的ENA网卡驱动

从IDC导入了一个CentOS 7.3镜像到AWS海外Region。导入成为新的AMI成功后,在t2.small等上几代机型上可正常启动,此时使用的是vif的驱动,可执行ethtool -i eth0查看。

此时无法将本EC2的机型修改到5系列、6系列等新机型。这是不支持的,界面上不允许选取。这是由于镜像没有打开ENA Support造成的。

此时可按照AWS官网文档,正常安装ENA网卡驱动,并为本EC2开起ENA Support。操作完成后,本EC2可以切换机型到5系列机型。

Continue reading “CentOS 7.3从IDC导入到AWS云后的ENA和NVMe驱动安装、dracut报错修复和磁盘扩容”