code: func (c *instanceCache) describeAllInstancesUncached() (*allInstancesSnapshot, error) {
  	now := time.Now()
  
  	klog.V(4).Infof("EC2 DescribeInstances - fetching all instances")
  
  	filters := []*ec2.Filter{}
  	instances, err := c.cloud.describeInstances(filters)
  	if err != nil {
  		return nil, err
  	}
  
  	m := make(map[InstanceID]*ec2.Instance)
  	for _, i := range instances {
  		id := InstanceID(aws.StringValue(i.InstanceId))
  		m[id] = i
  	}
  
  	snapshot := &allInstancesSnapshot{now, m}
  
  	c.mutex.Lock()
  	defer c.mutex.Unlock()
  
  	if c.snapshot != nil && snapshot.olderThan(c.snapshot) {
  		// If this happens a lot, we could run this function in a mutex and only return one result
  		klog.Infof("Not caching concurrent AWS DescribeInstances results")
  	} else {
  		c.snapshot = snapshot
  	}
  
  	return snapshot, nil
  }
docs: // Gets the full information about these instance from the EC2 API