amazon-web-services - 如何访问 EC2 实例元数据服务?从 EC2 外部
问题描述
使用 AWS 云手表的以下配置:
awslogs.conf
[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 2500
log_group_name = /var/log/messages
log_stream_name = {cluster}{instance_id}
以下脚本与命令--userdata
选项一起使用aws ec2
:
用户数据.sh
# Above agentlogs.conf file is copied to /etc/awslogs/awslogs.conf in AWS EC2 instance
# Configure cloudwatch config file
cat > /etc/cloudwatch-logs.ini <<EOF
[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 2500
log_stream_name = {cluster}{instance_id}
initial_position = start_of_file
log_group_name = /var/log/messages
EOF
从此脚本启动 EC2(在 EC2 外部运行):
spin_up_ec2.sh
# Using AWS CLI, we spin up EC2 instance using userdata.sh,
# Using metadata service How to read values of {cluster} & {instance_id} syntax, shown above:
aws logs describe-log-streams --log-group-name /var/log/messages --log-stream-name-prefix <grab_cluster_name_value><grab_instance_id_value> --region us-east-1
spin_up_ec2.sh
位于 EC2 之外,在同一个 VPC 中,在不同的子网中。那么,不确定如何利用 EC2 元数据服务?
EC2 在私有子网中运行。
{cluster}
价值将类似于clust1
{instance_id}
价值将类似于i-1a52627268bc
1)
shell script( spin_up_ec2.sh
) 客户端如何与 EC2 元数据服务通信,以检索{cluster}
&的值{instance_id}
?
2)
在公共子网中启动 EC2 有用吗?与元数据服务对话
解决方案
Amazon EC2 实例元数据在实例之外不可用。
您可以对 AWS 服务进行 API 调用以获取类似信息(例如检索 EC2 实例所在的子网)。
推荐阅读
- python - 如何根据行中的相似性找到特定列条目的平均值?
- android - Android 实时数据未更新 OnResume 状态
- kubernetes - 如何使用 Java Api 从 Kubernetes 检索 pod 内存和 cpu 使用情况
- java - 索引出界。你应该如何将 resultSet 中的数据存储到 ArrayList 中?
- python - Python Tkinter 窗口标题
- sql - 查询以针对一列的每个不同值返回在所有行中具有相同值的行值
- python - 在熊猫数据框中,\\ N 是随机存在的,我想将其删除
- ssl - 在基础设施的任何地方禁用低于版本 TLSv1.2 的 TLS
- python - 从 Canny 图像中查找矩形对象
- node.js - twilio cli 未读取节点中的 .env 文件