'Could not load credentials from any providers' error

0

Hello,

I'm using sdk v3 for dynamodb on node.js. When I try to dynamodb multiple times in short time, it occurs error 'CredentialsProviderError: Could not load credentials from any providers'.

I make dynamodb instance everytime if I need to access to dynamodb, like const client = new DynamoDB({ region: 'ap-northeast-2' });

I applied role to ec2, so it works well for simple access.

After I chunked the accessing dynamodb, this error disappears. So, I just can guess exchanging credentials fast makes this problem.

Could you explain about this problem?

Thanks

1 回答
1
已接受的回答

This looks like its caused by EC2's Instance Metadata Service (IMDS) throttling.

We throttle queries to the IMDS on a per-instance basis, and we place limits on the number of simultaneous connections from an instance to the IMDS.

If you're using the IMDS to retrieve AWS security credentials, avoid querying for credentials during every transaction or concurrently from a high number of threads or processes, as this might lead to throttling. Instead, we recommend that you cache the credentials until they start approaching their expiry time.

While caching would be a good workaround, I much prefer to re-use my service clients, avoid creating them for every API call as it leads to higher latencies and unexpected issues such as IMDS throttling and increased KMS calls (if you use KMS CMK).

Ref

profile pictureAWS
专家
已回答 1 年前
  • I thought that credentials cache manager works behind creating new aws resource.

    then I must check credentials's expiry time to use aws resourse

    thanks!

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则