EC2 Event [Running] + Lambda Function



我需要做的是:当启动EC2实例时,lambda函数或其他函数安装脚本来监视主机中的内存和磁盘使用情况。

我在想我该怎么做……有人能给我个主意吗?

不需要lambda。将您的安装脚本作为用户数据传递。

参见:启动时在Linux实例上运行命令

看来您的需求是从一个Amazon EC2实例监视内存和磁盘使用情况。我将假设您想通过Amazon CloudWatch监视它。

Amazon CloudWatch为EC2实例提供了默认指标,包括CPU利用率、网络流量和磁盘访问。这些指标可以从管理程序中看到。然而,CloudWatch无法看到EC2实例的"内部",因此有必要从实例中运行脚本来跟踪诸如空闲内存和空闲磁盘空间之类的事情。脚本与操作系统对话以检索这些指标,这就是为什么它们必须在实例内运行。

一些标准的监控脚本可用于Linux实例:监控Amazon EC2 Linux实例的内存和磁盘指标

当然,您可以编写自己的脚本来将自定义指标发送到CloudWatch。一旦安装完成,这些脚本将在实例重启时自动运行。

如果您希望在新的 EC2实例上安装这些脚本(或您自己的脚本),有几个方法:

  • 在一个实例上安装脚本,然后创建该实例的Amazon Machine Image (AMI),其中包含磁盘的副本。然后,您可以使用该AMI启动新实例,并且脚本已经安装在新实例上。
  • 使用User Data脚本启动实例,以安装监控脚本。任何通过User Data传递的脚本都将在实例启动时自动运行。

当你使用伸缩组时,你必须指定一个LaunchConfig。LaunchConfig的一部分是在实例启动时执行的用户数据脚本。如果您使用CloudFormation脚本来创建新的EC2 VM,那么也可以很容易地完成这一点。您可以在这里找到脚本示例。此处输入链接描述

最新更新