小编Jay*_*ore的帖子

AWS Fargate 与 Batch 与 ECS 进行一天一次的批处理

我有一个批处理,用 PHP 编写并嵌入到 Docker 容器中。基本上,它从多个 Web 服务加载数据,对数据进行一些计算(在 ~1 小时内),并将计算出的数据发布到另一个 Web 服务,然后容器退出(如果正常,返回代码为 0,如果进程某处失败则返回 1 )。在此过程中,一些日志会写入 STDOUT 或 STDERR。该批次必须每天触发一次。

我想知道用于调度、执行和监控我的批处理的最佳 AWS 服务是什么:

  • 一开始,我使用了带有 crontabEC2 机器:这里没有高可用性功能,所以我决定切换到更多 PaaS 的方法。
  • 然后,我将Elastic Beanstalk 用于 Docker,带有一个非功能性 Web 服务器(仅用于回复 Healthcheck)和容器内的 Crontab,每天唤醒一次我的批处理命令。使用自动调用规则 min=1 max=1,我有 HA(如果容器崩溃或 VM 崩溃,它会被 AWS 重新启动)
  • 但是现在,为了提高效率,我决定转向某些ECS 服务,并采用一种方法,我不需要让 EC2 实例 23/24 无所事事地唤醒。所以我尝试了 Fargate。
  • 使用Fargate我定义了我的任务(Fargate 类型,而不是 EC2 类型),并在其上配置所有内容。
  • 我创建了一个集群来运行我的任务:我可以“手动一次”运行我的任务,所以我知道每个设置都是正确的。

现在,深入 Fargate,我希望每天执行一次任务。

  • 当我使用ECS的计划任务功能时,它似乎工作正常:容器按时启动,进程运行,然后容器停止。但 CloudWatch 缺少一些指标:未报告 CPUReservation 和 CPUUtilization。此外,无法知道批处理是否以退出代码 0 或 1 退出(所有执行都以“STOPPED”状态停止)。因此,如果容器执行失败,我无法发送 CloudWatch 警报。 …

amazon-ecs aws-fargate

8
推荐指数
1
解决办法
5537
查看次数

CloudWatch Logs Insights:按时间范围聚合

我是 CloudWatch Logs Insights 的新手,我不知道如何按 3 列的时间范围聚合数据。

我要解析的日志文件是 json 格式:

{'ts': '12:01:00', 'method':'GET',  'url':'aaaa'}
{'ts': '12:02:00', 'method':'GET',  'url':'aaab'}
{'ts': '12:03:00', 'method':'POST', 'url':'aaac'}
{'ts': '12:04:00', 'method':'GET',  'url':'aaad'}
{'ts': '12:05:00', 'method':'POST', 'url':'aaae'}
{'ts': '12:06:00', 'method':'GET',  'url':'aaaf'}
{'ts': '12:07:00', 'method':'POST', 'url':'aaag'}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,每个事件行都是一个 POST 或 GET。每个事件也带有时间戳。

我想使用 Insights 在 500 万个窗口中可视化随时间推移的 GET 和 POST 分布。

我找不到正确的语法来在查询监视器中得到这样的结果:

# : ts       : NbGET  : NbPOST
1 : 12:00:00 : 3      : 1
3 : 12:05:00 : 1      : 2
Run Code Online (Sandbox Code Playgroud)

有了这样的结果,我就可以用两个提取的指标 'GET' 和 'POST' 绘制一个图表。

知道如何实现这一目标吗?

amazon-web-services amazon-cloudwatchlogs

6
推荐指数
1
解决办法
1万
查看次数

在CloudWatch仪表板中查看CloudFront指标

有没有办法在现有CloudWatch仪表板中显示CloudFront指标?

我可以在CloudFront控制台中查看CloudFront分布指标(请求总数,命中率...),但是我无法在CloudWatch仪表板中找到这些指标。

在Cloudfront文档(https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cf-metricscollected.html)上,他们讨论了“ AWS / CloudFront”名称空间,但是在该名称空间中没有任何指标CloudWatch。

另外,我怀疑有一个启用度量的选项(例如具有启用S3的详细统计信息的度量),但是我没有找到这样的选项。

我更喜欢将所有指标都放在一个仪表板中,从而更容易进行数据交互(例如,EC2 cpu利用率vs数据库连接vs cloudwatch req / s)。

amazon-web-services amazon-cloudfront amazon-cloudwatch

4
推荐指数
1
解决办法
1011
查看次数