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

一、背景

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访问日志”

EKS 101 动手实验(四)编写yaml配置文件使用ECR上的镜像部署部署应用

针对EKS 1.21版本2021年10月,中国宁夏区域测试通过。

一、确认ECR上镜像URI

进入ECR界面,确认镜像完整URI地址是:

461072029761.dkr.ecr.ap-southeast-1.amazonaws.com/phpdemo:1

注意,不同region的名称不一样,以及最后要包含tag版本号。

二、编写yaml文件

格式如下。使用前文实验的ALB Ingress部署。

Continue reading “EKS 101 动手实验(四)编写yaml配置文件使用ECR上的镜像部署部署应用”

EKS 101 动手实验(三)启用CloudWatch Container Insight并调整集群的节点组配置

针对EKS 1.21版本2021年10月,中国宁夏区域测试通过。

一、启用CloudWatch Container Insight(可选)

1、添加IAM角色

进入IAM服务界面,找到Role角色界面,搜索关键字是 eksctl-集群名称,一共可以搜索出来三个,类似格式如下:

  • eksctl-eks-demo-zhy-nodegroup-ng-NodeInstanceRole-1QOHRI2YXMUZS
  • eksctl-eks-demo-zhy-cluster-ServiceRole-JHRG5AXPY20V
  • eksctl-eks-demo-zhy-addon-iamserviceaccount-Role1-1OGCKAYIHMXLQ

编辑这三个角色,每个角色都覆盖挂载一个新策略,将CloudWatchAgentServerPolicy 加入其中,保存退出。

点击挂载新策略,将CloudWatchAgentServerPolicy 加入其中,保存退出。

Continue reading “EKS 101 动手实验(三)启用CloudWatch Container Insight并调整集群的节点组配置”

EKS 101 动手实验(二)使用ELB Ingress

本文在2021年10月EKS 1.21版本中国宁夏区域测试通过。

一、部署ELB Ingress

本文将部署适合EKS 1.21版本的ELB Ingress Controller V2.2.0版本。请注意,与之前EKS 1.14/1.15等版本使用的Ingress Controller 1.x有所不同。请注意区分。

1、为EKS生成IAM的OIDC授权

执行如下命令。请注意替换集群名称和区域为实际操作的环境。

eksctl utils associate-iam-oidc-provider \
  --region ap-southeast-1 \
  --cluster eksworkshop \
  --approve

返回结果如下表示成功。

Continue reading “EKS 101 动手实验(二)使用ELB Ingress”

EKS 101 动手实验(一)创建EKS集群

更新到EKS 1.21版本 @2021-10 宁夏区域测试通过

快速跳转链接:

一、工具准备

1、Windows下安装EKS客户端

首先安装好AWS CLI。eksctl的安装可通过choco包管理工具进行。先使用管理员权限打开powershell,执行:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

即可安装好choco。然后在cmd下用管理员权限安装:

choco install -y eksctl 

很多日常软件都可以后续执行choco install安装。

Continue reading “EKS 101 动手实验(一)创建EKS集群”

Python批量开关EC2脚本

前提条件:

  • 需要本机配置AWS CLI的AK/SK;
  • 本机安装Python3;
  • 本机安装boto3库(执行pip3 install boto3)。

Python脚本如下:

import boto3.ec2
client = boto3.client('ec2')
ec2action = boto3.resource('ec2')

response = client.describe_instance_status(
    IncludeAllInstances=True
)

for i in response['InstanceStatuses']:
    instance = ec2action.Instance(i['InstanceId'])
    response1 = instance.stop(
            #DryRun=True,
            Force=True
    )
    print("instance: ", i['InstanceId'], "is being stopped." )
    print(response1)

以上为关机脚本。如果需要批量开机,替换stop为start即可。

使用Rekognition识别视频中的名人

一、原理和架构

Rekognition服务目前在AWS海外区域可用,在中国区暂时不可用。

1、原理

Rekognition的原理是:

  • 上传视频到S3中,获得完整的S3存储地址;
  • 调用Rekognition的API发起对S3中的某个视频文件的识别,不同类型的识别有不同的接口,比如识别物体、人脸、名人为不同的调用接口,此任务为异步,返回 JobId 信息。
  • 视频分析完毕后,Rekognition回call SNS通知服务,并可根据 JobId 查询;
  • 应用程序接收到SNS通知后,从SNS消息总线中取出ID,然后再次调用Rekognition的获取分析接口,获得JSON格式的输出结果,输出结果包含人物ID、任务信息、时间线等;
  • 最后调用获取名人信息接口,输入人物ID,获得名称和公开信息(URL网址)。
Continue reading “使用Rekognition识别视频中的名人”

S3数据湖+Athena+Glue 无服务器数据分析实验

一、准备工作

在S3上新建一个存储桶,多人实验时候请注意存储桶名称需要唯一。在存储桶内新建两个目录,一个名为 raw 用于存放原始数据,第二个目录名为 etl 用于存放转换过的数据。

请将测试数据 sample.json 文件上传到存储桶的raw目录内。请记住文件大小,稍后将会进行对比。

Continue reading “S3数据湖+Athena+Glue 无服务器数据分析实验”