在其中一个ec2实例上获取自动伸缩组中其他ec2的私有IP地址的最佳方法是什么?

时间:2018-07-25 08:00:34

标签: amazon-web-services amazon-ec2 aws-cli amazon-efs

我需要使用当前自动缩放组的所有专用IP地址更新共享EFS驱动器中的配置文件。

我正在考虑的方法是运行一个用户数据脚本,该脚本向ASG查询私有IP地址,然后将其回显到配置文件中。为此,ec2需要具有AWS CLI凭证和适当的只读访问权限。理想情况下,我不想在此ec2上存储任何凭据。

还有另一种方法吗?可能是VPC端点之类的东西?

谢谢!

1 个答案:

答案 0 :(得分:3)

您在问两个问题。

如何为EC2实例安全地提供凭据?

您使用IAM角色,并将角色分配给您的EC2实例。然后在代码中使用实例凭据。下面的CLI示例将自动获取这些凭据。

Using an IAM Role to Grant Permissions to Applications Running on Amazon EC2 Instances

如何获取Auto Scaling组(ASG)中EC2实例的私有IP地址?

  1. 您需要获取连接到ASG的实例的列表。
  2. 对于ASG中的每个实例,请调用describe API并提取专用IP地址。

示例命令:

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-auto-scaling-group

aws ec2 describe-instances --instance-ids i-1234567890abcdef0

您可以过滤命令输出。例如,将以下内容添加到第二个命令中,以仅显示私有IP地址:

--query 'Reservations[*].Instances[*].PrivateIpAddress'

推荐: 我将使用Python SDK并编写一个简单的程序来提供这些功能并更新您的配置文件。