使用CloudTrail和Athena分析S3访问日志

本文更新于2023年8月,新增了对于大量CloudTrail历史数据,需要实现创建分区键的说明。否则按照CloudTrail控制台推荐的默认的Athena建表语句进行查询,将是针对数个GB数据的全表扫描带来不必要的成本。按照本文新增章节,创建带有分区键的Athena表,即可显著降低查询成本。分区键推荐采用Region和日期的方式。

一、背景

S3存储桶的文件读写日志包括Server Access Log和CloudTrail两种方式。二者之间的差别可参考如下网址:

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/logging-with-S3.html

在官方上描述非常详细,可看到CloudTrail采集的信息更加丰富,因此本文将介绍使用CloudTrail做分析。如下截图。

Continue reading “使用CloudTrail和Athena分析S3访问日志”

开启FSR自动预热从EBS快照恢复过来的卷

一、背景

在AWS官网,有关从快照恢复后的预热描述如下。

空的 EBS 卷一经创建便能实现其最高性能,而不需要初始化(以前称为预热)。

对于从快照创建的卷,必须先从 Amazon S3 下载存储块并将其写入到卷中,然后才能访问这些块。该预备操作需要一些时间才能完成,并且可能会导致首次访问每个块时的 I/O 操作延迟大大提高。在下载所有块并将其写入到卷后,才会实现卷性能。

这也就意味着,如果是从快照恢复一个EC2,或者是从CloudEndure的快照恢复过来,初始的磁盘性能将不足。由此,需要执行预热才能充分发挥性能。

预热分成手工预热和自动预热。

Continue reading “开启FSR自动预热从EBS快照恢复过来的卷”

手工激活在IDC内网的Storage Gateway

注:2021年Storage Gateway产品特性更新,支持通过图形界面在内网激活,本文部分内容可能已经不适用,因此请参考这篇。

一、背景

Storage Gateway是在IDC中提供云端存储服务的虚拟网关。Storage Gateway可以提供文件存储、块存储(IPSAN)和虚拟带库(VTL)三种协议。Storage Gateway部署在IDC内,对IDC内提供网络服务,对外需要从IDC所在的运行位置,发起网络到AWS云的对应区域的管理控制台和S3桶。

此外,在激活Storage Gateway时候,需要AWS控制台能够链接Storage Gateway所对应的虚拟机的暴露在外网的80端口,这个条件对于国内IDC来说较为苛刻:

  • 1、是因为很多IDC上下行带宽不对等,没有太多公网IP可以用来暴露;
  • 2、ICP备案的要求,未经备案就无法打开80端口。

因此,因此本文将描述在此场景下,无需暴露公网80端口,如何手工激活。

Continue reading “手工激活在IDC内网的Storage Gateway”

S3 Presign URL调用上传附件

一、背景

S3 Presign URL是通过S3服务生成一个带签名的URL,这个URL包含了S3桶名、文件名(目录名)、所属账号、时间戳、有效期等信息。当在有效期内的时候,通过Post请求发送到这个URL,可以上传/下载。当有效期超过之后,访问此文件,会提示403没有权限。

使用Presign URL的好处是安全:

  • 调用API接口时候,只暴露Access Key ID,而不暴露Secret Key,也就是不暴露API的密码。
  • Presign URL可设置过期时间,例如生成URL后限制60秒,那么上传操作必须在60秒内完成,60秒后之前生成的URL和时间戳过期。
Continue reading “S3 Presign URL调用上传附件”

使用AWS CLI在S3之间对拷数据的CLI版本和参数问题

一、问题

在两个S3上执行数据复制时候,遇到如下错误。

$ aws s3 cp s3://abc-bkt-zhy/data-origion/index_day.json s3://abc-mytarget/
copy failed: s3://abc-bkt-zhy/stock-data-origion/index_day.json to s3://abc-mytarget/index_day.json An error occurred (AccessDenied) when calling the GetObjectTagging operation: Access Denied

这是由于AWS CLI V1版本和V2版本的不同差异造成的。在命令行下自行如下命令显示CLI版本。

Continue reading “使用AWS CLI在S3之间对拷数据的CLI版本和参数问题”

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

一、背景

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

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

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