Recuperando dns públicos de instancia EC2 con BOTO3

Estoy usando ipython para comprender Boto3 e interactuar con instancias de EC2. Aquí está el código que estoy usando para crear una instancia:

import boto3

ec2 = boto3.resource('ec2')
client = boto3.client('ec2')


new_instance = ec2.create_instances(
    ImageId='ami-d05e75b8',
    MinCount=1,
    MaxCount=1,
    InstanceType='t2.micro',
    KeyName=<name_of_my_key>,
    SecurityGroups=['<security_group_name>'],
    DryRun = False
    )

Esto inicia una instancia EC2 bien, y puedo obtener el nombre DNS público, ip y otra información de la consola de AWS. Pero, cuando trato de obtener el DNS público usando Boto, al hacer esto:

new_instance[0].public_dns_name

Devuelve comillas en blanco. Sin embargo, otros detalles de la instancia, como:

new_instance[0].instance_type

Devuelve la información correcta.

¿Algunas ideas? Gracias.

EDITAR:

Entonces si lo hago:

def get_name(inst):
    client = boto3.client('ec2')
    response = client.describe_instances(InstanceIds = [inst[0].instance_id])
    foo = response['Reservations'][0]['Instances'][0]['NetworkInterfaces'][0]['Association']['PublicDnsName']
    return foo


foo = get_name(new_instance)
print foo

Luego devolverá el DNS público. Pero no tiene sentido para mí por qué tengo que hacer todo esto.

Respuestas a la pregunta(1)

Su respuesta a la pregunta