code: def CreateBlockDeviceMap(self, image_id, instance_type):
        
        # 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
docs: 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.