¿Hay una manera fácil de tener todas las IP privadas asignadas en una subred particular con la línea de comandos de AWS?
Quiero dar como entrada la ID de subred, es decir. subnet-0ca0b01xxxxxxxxxx y el resultado debe ser la lista de todas las IP privadas asignadas en la subred. Gracias.
Puedes usar el siguiente comando:
aws ec2 describe-instances --filters "Name=subnet-id,Values=**YourSubnetID**" --query 'Reservations[*].Instances[*].PrivateIpAddress' --output textLa solución anterior solo devuelve las IP privadas para sus instancias EC2, pero ¿qué pasa con sus instancias RDS/ElastiCache o cualquier otro recurso de AWS que use una IP privada? En realidad, necesita usar el comando describe-network-interfaces .
Esto devolverá todas las direcciones IP privadas para uno o varios ID de subred:
aws ec2 describe-network-interfaces --filters Name=subnet-id,Values=subnet_id_1,subnet_id_2 --query 'NetworkInterfaces[*].PrivateIpAddress'Pero el comando anterior tampoco va a funcionar para todos los casos. Por ejemplo, estoy ejecutando varios clústeres de EKS en AWS, el complemento VPC CNI para Kubernetes puede asignar varias IP privadas para una sola interfaz de red elástica. En tales escenarios, esto es lo que necesita usar, es ligeramente diferente:
aws ec2 describe-network-interfaces --filters Name=subnet-id,Values=subnet_id_1,subnet_id_2 --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress'