docs: def CreateBlockDeviceMap(self, image_id, instance_type):
        """
        If you launch without specifying a manual device block mapping, you may 
        not get all the ephemeral devices available to the given instance type.
        This will build one that ensures all available ephemeral devices are
        mapped.      
        """
        # get the block device mapping stored with the image
        image = self.ec2.get_image(image_id)
        block_device_map = image.block_device_mapping
        assert(block_device_map)
        # update it to include the ephemeral devices      
        # max is 4... is it an error for instances with fewer than 4 ?  
        # see: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/
        # InstanceStorage.html#StorageOnInstanceTypes
        ephemeral_device_names = ['/dev/sdb', '/dev/sdc', '/dev/sdd', '/dev/sde']
        for i, device_name in enumerate(ephemeral_device_names):
          name = 'ephemeral%d' % (i)
          bdt = blockdevicemapping.BlockDeviceType(ephemeral_name = name)
          block_device_map[device_name] = bdt
        return block_device_map