如何在无NAT网关的私有子网EC2上使用AWS CloudWatch Agent上传日志
在私有子网EC2实例无需NAT网关上传日志到CloudWatch的方案
1. 创建CloudWatch Logs的VPC接口端点
- 登录AWS控制台,进入VPC服务
- 在左侧导航选择「端点」>「创建端点」
- 选择「AWS服务」,搜索并选中
com.amazonaws.<区域>.logs(替换为你的实例所在区域,例如com.amazonaws.us-east-1.logs) - 选择目标私有子网(即你的EC2实例所在的私有子网)
- 配置安全组:确保安全组允许EC2实例的私有IP向端点的443端口发起出站请求(CloudWatch Logs基于HTTPS通信)
- 完成端点创建,等待状态变为「可用」
2. 配置EC2实例的IAM角色
- 创建或更新EC2实例关联的IAM角色,添加
CloudWatchLogsFullAccess权限(也可配置更精细的权限,例如仅允许创建指定日志组、上传日志流等) - 确认该IAM角色已成功关联到目标EC2实例
3. 安装并配置CloudWatch Agent
- 在私有子网EC2实例上安装CloudWatch Agent:
- Amazon Linux 2/Amazon Linux 2023:
sudo yum install amazon-cloudwatch-agent -y - Ubuntu/Debian:
sudo apt-get update && sudo apt-get install amazon-cloudwatch-agent -y
- Amazon Linux 2/Amazon Linux 2023:
- 运行配置向导生成配置文件:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard- 向导中选择「EC2」作为运行环境,指定要上传的日志文件路径、目标日志组名称等参数
- 无需额外配置公网访问相关设置
- 启动CloudWatch Agent服务:
sudo systemctl start amazon-cloudwatch-agent - 设置服务开机自启:
sudo systemctl enable amazon-cloudwatch-agent
4. 验证配置有效性
- 查看CloudWatch Agent运行日志确认连接状态:
sudo tail -f /var/log/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.log - 登录CloudWatch控制台,检查目标日志组是否有日志数据流入
注意事项
- VPC端点必须与EC2实例处于同一AWS区域
- 确认EC2实例所在子网的路由表中已包含VPC端点的路由条目(创建端点时默认自动添加,可在VPC路由表中核查)
- 若仅需上传日志,无需额外创建SSM等其他服务的VPC端点
内容的提问来源于stack exchange,提问作者Mirza
相关产品推荐
相关产品推荐

