title: Is it recommended to use AmazonS3Client as a singleton?
body: <p>When using an <code>AmazonS3Client</code> in a webapplication, is it recommended to create <strong>one instance for the whole lifetime</strong> of the application or should I <strong>create a new instance</strong> every time I'm doing an upload to S3?</p>
  
  <p>I can't find any documentation on this other than the Java client where a <a href="https://stackoverflow.com/questions/23407515/amazons3-connection-management">singleton approach is recommended</a>.</p>
  
  <p>I'm interested in this because for <code>HttpClient</code> it is known that <a href="https://stackoverflow.com/questions/24043679/how-many-httpclients-should-i-create">you should not create more than one instance</a>. </p>
  
  <p>For example, is there some kind of pooling / connection management in the <code>AmazonS3Client</code>? There is <code>AmazonS3Config.ConnectionLimit</code>, but I can't find a lot of documentation about it. How does this work when you use <code>Parallel.ForEach</code> to get maximum throughput?</p>