借助Userdata为EC2 Windows上部署Cloudwatch Agent并配置基础监控

本文更新于2023年9月,中国区测试通过

一、背景

为了实现Windows的内存监控、文件系统使用率监控等,需要部署CloudWatch Agent。

在创建EC2时候,这个工作可以通过Userdata脚本自动部署。如果EC2 Windows创建时候没有使用Userdata,那么也可以通过Powershell执行命令完成自动安装。

此外,为了方便安装软件,本文的脚本也将部署choco包管理工具。

Continue reading “借助Userdata为EC2 Windows上部署Cloudwatch Agent并配置基础监控”

使用Apache Benchmark模拟HTTP Basic认证后的Web Server压力测试

一、背景

某些应用服务器采用了HTTP Basic身份验证,整个Web Server和目录下的所有文件都需要先通过HTTP方式的身份验证,如果不通过,则返回HTTP 401错误。此时,如果希望直接直接请求目录下的文件,是无法立刻发起测试的。因此需要在对apache ab增加-A命令,进行身份验证。

注意:

  • Basic认证和NTLM是不同的认证方式,NTLM增加了Cookie;
  • 如果测试使用AWS ALB,ALB是不兼容NTLM认证的,请更换为NLB进行压力测试。
Continue reading “使用Apache Benchmark模拟HTTP Basic认证后的Web Server压力测试”

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调用上传附件”

通过 AD Connector 配置EC2自动加域 —— Seamless Join Domain

注:本文针对在IDC自建AD活动目录的场景。如果您使用的是AWS托管的Directory Service,则可以跳过本文第三章节,即可直接在第四章节的界面中看到托管的目录。

一、背景

EC2 Windows有两种加入域:手工加入,自动加入。手工加入域的方式就和一个普通电脑一样,先修改DNS为域控制器的DNS IP,然后在系统属性部分,将单机切换到域,重启即可完成加域。自动加域是通过AWS云端的AD Connector,将所有新开的EC2自动加入域,而无须人工操作,也被称为Seamless Join Domain。两种模式的主要对比如下图。

Continue reading “通过 AD Connector 配置EC2自动加域 —— Seamless Join Domain”

使用 AWS Transfer 搭建托管的SFTP服务

一、简介

来自AWS官网的简介:

AWS Transfer 系列提供完全托管支持,可将文件直接传入和传出 Amazon S3。 AWS Transfer 系列使用安全文件传输协议 (SFTP)、SSL 的文件传输协议 (FTPS) 和文件传输协议 (FTP),可通过集成现有身份验证系统并提供与 Amazon Route 53 的 DNS 路由,帮助您将文件传输工作流程无缝迁移到 AWS,而对于客户和合作伙伴及其应用而言则没有任何变化。通过 Amazon S3 中的数据,您可以配合 AWS 服务完成数据处理、分析、机器学习和存档。AWS Transfer 系列部署非常简单,无需购买和设置任何基础设施。

Continue reading “使用 AWS Transfer 搭建托管的SFTP服务”

使用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版本和参数问题”

阿里云 OSS 迁移到 AWS S3

注意:本文最初编写于2020年9月。至2023年初,本文所介绍的S3-resumable-upload工具已经不再维护(参考本文末尾Github上介绍),最新的代码和功能被合并到Data Transfer Hub。新的Data Transfer Hub是带有GUI图形界面的S3迁移工具,支持阿里云等多个公有云的对象存储服务,可一键生成复制任务,背后通过ECS容器服务进行多线程复制,且支持增量复制。详情请跳转到Data Transfer Hub的官网。本工具本身免费,复制时候需要的资源如另外拉起ECS容器按云标准收费。

一、迁移工具

Amazon-s3-resumable-upload 是 AWS S3 的迁移工具,有单机版、集群版、无服务器Serverless(Lambda)版本,可以用于本地到S3上云,国内外S3互传等场景。其中如果源站是阿里云,则暂时只有单机版本支持。

部署迁移工具需要在AWS云上创建一个EC2,使用Amazon Linux 2操作系统,并安装Python3和相关依赖库。

Continue reading “阿里云 OSS 迁移到 AWS S3”