如何访问EC2实例元数据服务?从EC2外部

时间:2020-01-09 01:53:22

标签: amazon-web-services amazon-ec2 aws-cli amazon-cloudwatch amazon-cloudwatchlogs

使用以下AWS Cloud Watch配置:

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选项一起使用的脚本:

userdata.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脚本(spin_up_ec2.sh)客户端如何与EC2元数据服务对话,以检索{cluster}{instance_id}的值?

2)

在公共子网中启动EC2会有所帮助吗?与元数据服务通话

1 个答案:

答案 0 :(得分:2)

实例外部不提供Amazon EC2实例元数据。

您可以对AWS服务进行API调用以获得类似信息(例如,检索EC2实例所在的子网)。