Amazon CloudWatch可以让你监控AWS上运行的资源的状态,方便你收集和跟踪资源的各项指标,并且可以设置相应的警报和自动应对的更改。

CloudWatch中的几个参数:

  • 面板(Dashboards)-可创建自定义面板来方便观察你AWS环境中的不同监控对象
  • 告警(Alarms)- 当某个监控对象超过阈值时,会给你发出告警信息
  • 事件(Events)- 针对AWS环境中所发生的变化进行的反应
  • 日志(Logs)-Cloudwatch日志帮助你收集、监控和存储日志信息

CloudWatch的其他特点:

  • 基本监控免费,采样频率为5分钟,监控CPU,磁盘IO,网络流量等
  • 详细监控收费,采样频率为1分钟,监控内容和基本监控一样
  • 上面两种监控模式都不能监控内存使用率,监控内存需要使用自定义参数的监控
  • 监控数据会保存15个月
  • CloudWatch还可以监控弹性伸缩组(Auto Scaling Group),弹性负载均衡器(ELB),EBS等等

AWS Command Line Interface工具

AWS Command Line Interface (AWS CLI) 是一个建立在AWS SDK for Python (Boto)之上的开源工具,用来与AWS的服务进行交互。只需要非常少的配置,你就可以使用你所熟知的终端程序来执行几乎所有你在AWS管理平台上所做的任何事情。

这些终端包括了:

  • Linux命令行 – 可以使用在Linux, macOS或者Unix上使用的shell程序Bash, Zsh和tsch等
  • Windows命令行 – 使用PowerShell或者Windows命令行工具
  • 远程 – 使用SSH登陆到EC2实例上来远程执行命令

AWS CLI工具可以直接安装在Windows, Mac/Linux上,或者使用预装有AWS CLI的Amazon Linux AMI镜像所创建的EC2实例。

赋予AWS CLI权限

仅仅安装了AWS CLI工具还不够,你必须给它赋予一定的权限,这样它才能访问AWS内的资源。有两个方法可以赋予AWS CLI权限:

  1. 使用AWS IAM来创建一个新的AWS用户,赋予该用户一定的权限,并且为该用户创建AWS Access Key ID和AWS Secret Access Key的程序访问凭证。然后将凭证配置到AWS CLI上。
  2. 使用AWS IAM创建一个新的AWS角色,赋予该角色一定的权限,然后将这个角色赋予到使用Amazon Linux AMI创建的EC2实例上。

第一种方法适用于任何装有AWS CLI工具的客户端,甚至是自己的个人电脑。但一定不要泄露AWS Access Key ID和AWS Secret Access Key,否则别人可以使用这个凭证来随意在你的AWS上创建/使用资源。也不要把这些凭证放在Github上

第二种方法适用于装有AWS CLI的EC2实例,这是被认为最安全的一种方式。

为EC2分配IAM角色

使用Access Key ID和AWS Secret Access Key的凭证这种方式是不安全的,如果一旦这个凭证被泄露,任何人都可以通过这个凭证来获取你AWS内的资源。而且,如果你在管理成千上万台有类似需求的EC2实例,那么如果有一天需要更改Access Key ID和AWS Secret Access Key的时候,将是一场噩梦。

Bootstrap开机脚本

在你启动一个Amazon EC2实例的时候,你可以选择在实例启动的时候运行你预先设定的Bootstrap脚本。该脚本可以是一段代码、文件或者base64的编码。

创建EC2实例的时候,在配置实例详细信息里的高级详细信息可以将下面的代码配置进去。

脚本文件内容(第一行表示这是一个Bash脚本文件):

#!/bin/bash
yum update -y
yum install httpd -y
service httpd start
chkconfig httpd on
echo "Hello aws.cloudbin.com" > /var/www/html/index.html

Metadata

  • 实例的metadata是关于实例本身的数据,这些数据描述了实例的一些状态和基本信息
  • metadata包括的信息有实例的ID,使用的AMI ID,系统名,公网IP地址,内网IP地址,关联的角色等等
  • 实例内部,可以通过http://169.254.169.254/latest/meta-data来获取metadata的信息
  • Metadata可以用来管理和配置实例
  • 如访问http://169.254.169.254/latest/meta-data/public-ipv4就可以获得EC2实例的公网IP地址

User Data

  • User data可以用来在EC2实例启动的时候作为启动脚本的内容
  • User data也可以在实例启动之后用于执行一些批量/自动化的脚本
  • 可以通过http://169.254.169.254/latest/user-data来获取用户数据的信息
  • 访问http://169.254.169.254/latest/user-data即可以获得实例的user data。

重要注意的地方:虽然您只能从实例自身内部访问实例元数据和用户数据,但数据并未进行加密保护。可访问实例的人员均可查看其元数据。因此,您应当采取适当的预防措施来保护敏感数据(例如永久加密密钥)。不应将敏感数据 (例如密码) 存储为用户数据。

请注意,您无需为用于检索实例元数据和用户数据的 HTTP 请求付费。

CloudWatch监控

  • 标准监控 = 5 分钟
  • 详细监控 = 1 分钟 (需要额外付费)
  • CloudWatch是用来监控系统性能的
  • CloudTrail是用来做审计的(查看日志信息等)

角色(Role)

  • 使用角色(Role)比使用Access Key和Secret Access Key要安全很多
  • 角色更容易管理和变更
  • 角色可以在EC2实例启动之后再分配,并且可以随时更改角色以及角色关联的策略
    • 在旧版本考试中,角色只能在EC2创建的时候分配,并且实例启动之后不能对角色进行任何更改
  • 角色是跨区域的,创建的角色可以在任何区域中使用

实例Meta-data

  • 用来获取实例自身的一些信息,例如公网IP地址
  • 使用http://169.254.169.254/latest/meta-data/来获取meta-data
Posted in 未分类

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据