def fetch_available_volumes(ec2, filters=None):
    """
    Generator of available EBS volumes

    :param ec2: EC2 resource
    :type ec2: boto3.resources.factory.ec2.ServiceResource
    :param filters: Optional list of filters
    :type filters: None|list
    :returns: volumes collection
    :rtype: boto3.resources.collection.ec2.volumesCollection
    """
    # Set an empty filter set if none provided
    if filters is None:
        filters = []

    # Append the filter for finding only volumes that are in the 'available'
    # state.
    # Ref: http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVolumes.html
    filters.append({
        'Name': 'status',
        'Values': ['available'],
    })
    return ec2.volumes.filter(
        Filters=filters
    )