

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# コストのモニタリングと管理
<a name="tracking-cost"></a>

他の と同様に AWS のサービス、Amazon Cognito の設定と使用状況が AWS 請求に与える影響を理解することが重要です。ユーザープールを本番環境にデプロイするための準備の一環として、アクティビティとリソースの消費のモニタリングと保護を設定します。どこを見ればよいか、またどのアクションが追加コストを発生させるかがわかれば、請求書を見て驚くことがないように予防措置を講じることができます。

Amazon Cognito は、使用量の次のディメンションに対して課金します。
+ ユーザープールの月間アクティブユーザー (MAU) — 料金は[機能プラン](cognito-sign-in-feature-plans.md)に応じて異なります
+ OIDC または SAML フェデレーションでサインインしたユーザープール MAU
+ クライアント認証情報の付与によるマシンツーマシン (M2M) 認可のリクエストボリューム
+ 一部のカテゴリのユーザープール API のデフォルトクォータ値を超える使用量の購入

さらに、E メールメッセージ、SMS メッセージ、Lambda トリガーなどのユーザープールの機能によって、依存サービスにコストが発生する可能性があります。完全な概要については、「[Amazon Cognito 料金](https://aws.amazon.com/cognito/pricing)」を参照してください。

## コストの表示と予測
<a name="tracking-cost-monitoring"></a>

製品の起動や、新しいユーザーベースへのオープンなどの大量のイベントは、MAU 数を増やし、コストに影響を与える可能性があります。新しいユーザー数を事前に見積もり、アクティビティが発生したときに監視します。クォータ値を追加購入してボリュームに対応させたり、追加のセキュリティ対策でボリュームを制御したりできます。

[AWS Billing and Cost Management コンソール](https://console.aws.amazon.com/billing/home)で AWS コストを表示およびレポートできます。Amazon Cognito の最新の請求額は、**[請求と支払い]** セクションで確認できます。**[請求書]** の **[サービス別料金]**で、`Cognito` をフィルタリングして使用状況を表示します。詳細については*AWS Billing ユーザーガイド*の[請求書の表示](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/getting-viewing-bill.html)を参照してください。

API リクエストレートをモニタリングするには、Service Quotas コンソールで **[使用状況]** メトリクスを確認します。例えば、クライアント認証情報リクエストは **[ClientAuthentication リクエストのレート]** として表示されます。請求書では、これらのリクエストは、それらを生成したアプリケーションクライアントに関連付けられています。この情報により、[マルチテナントアーキテクチャ](multi-tenant-application-best-practices.md)のテナントに公平にコストを割り当てることができます。

一定期間の M2M リクエストの数を取得するには、分析のために [AWS CloudTrail イベントを CloudWatch Logs](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/send-cloudtrail-events-to-cloudwatch-logs.html) に送信することもできます。クライアント認証情報のイベント付与を使用して `Token_POST` イベントのために CloudTrail イベントにクエリを設定します。次の CloudWatch Insights クエリはログを返します。

```
filter eventName = "Token_POST" and @message like '"grant_type":["client_credentials"]' | stats count(*)
```

## のコスト管理
<a name="tracking-cost-managing"></a>

Amazon Cognito は、ユーザー数、機能の使用状況、リクエストボリュームに基づいて請求します。Amazon Cognito のコストを管理するためのヒントを以下に紹介します。

**非アクティブなユーザーをアクティブ化しない**  
ユーザーをアクティブにする一般的なオペレーションは、サインイン、サインアップ、パスワードのリセットです。詳細なリストについては、「[月次のアクティブユーザー](quotas.md#monthly-active-users)」を参照してください。Amazon Cognito は、非アクティブなユーザーを請求にカウントしません。ユーザーをアクティブに設定するオペレーションは避けてください。ユーザーに対してクエリを行うには、[AdminGetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetUser.html) API オペレーションの代わりに、[ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) オペレーションを使用します。非アクティブなユーザーに対して、ユーザープールオペレーションの大量の管理テストを実行しないでください。

**フェデレーションユーザーのリンク**  
SAML 2.0 または OpenID Connect (OIDC) ID プロバイダーでサインインするユーザーは、[ローカルユーザー](cognito-terms.md#terms-localuser)よりもコストが高くなります。[これらのユーザーをローカルユーザープロファイルにリンク](cognito-user-pools-identity-federation-consolidate-users.md)できます。リンクされたユーザーは、フェデレーションユーザーに含まれる属性とアクセスを使用して、ローカルユーザーとしてサインインできます。SAML または OIDC IdPs のユーザーが、1 か月間、リンクされたローカルアカウントでのみサインインすると、ローカルユーザーとして課金されます。

**リクエストレートを管理する　**  
ユーザープールがクォータ値の上限に近づいている場合は、ボリュームを処理するための追加の容量の購入を検討してください。アプリケーション内のリクエストの量を減らせる場合があります。詳細については、「[クォータ制限のリクエストレートを最適化する](quotas.md#optimize-quotas)」を参照してください。

**必要な場合にのみ新しいトークンをリクエストする**  
クライアント認証情報の付与によるマシンツーマシン (M2M) 認証は、大量のトークンリクエストに達する可能性があります。新しいトークンリクエストはどれも、リクエストレートのクォータ量と請求の大きさに影響します。コストを最適化するには、アプリケーションの設計で、トークンの有効期限設定とトークン処理を含めます。
+ [アクセストークンをキャッシュ](amazon-cognito-user-pools-using-tokens-caching-tokens.md)して、アプリケーションが新しいトークンをリクエストしたときに、以前に発行されたトークンのキャッシュされたバージョンを受け取るようにします。この方法を実装すると、キャッシュプロキシは、以前に取得したトークンの有効期限を認識せずにアクセストークンをリクエストするアプリケーションに対するガードとして機能します。キャッシュトークンは、Lambda 関数や Docker コンテナなどの有効期間の短いマイクロサービスに最適です。
+ トークンの有効期限を考慮したトークン処理メカニズムをアプリケーションに実装します。以前のトークンの有効期限が切れるまで、新しいトークンをリクエストしないでください。ベストプラクティスとしては、トークンの有効期間の約 75% でトークンを更新します。このプラクティスでは、トークンの有効期間を最大化しながら、アプリケーションのユーザー継続性を確保できます。

  各アプリケーションの機密性と可用性のニーズを評価し、適切な有効期間でアクセストークンを発行するようにユーザープールアプリケーションクライアントを設定します。カスタムのトークン有効期間は、認証情報に対するリクエストの頻度を永続的に管理できる、存続期間の長い API やサーバーに最適です。

**AdminGetUser よりも ListUsers を使用する**  
ユーザープール内のユーザーの属性をクエリするには、[ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) API オペレーションおよび関連する [SDK](https://aws.amazon.com/developer/tools/) メソッドをできるだけ使用します。[AdminGetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetUser.html) を使用すると、ユーザーはその月のアクティブユーザーとしてマークされ、月間アクティブユーザー (MAU) 数に加算されて、ユーザープールの請求額の計算に使用されます。

**機能プランを管理する**  
ユーザープールで[機能プラン](cognito-sign-in-feature-plans.md)を選択すると、請求レートはユーザープール内のすべての MAU に適用されます。高レベルの機能プランに付属する機能を必要としないユーザーがいる場合は、そのユーザーを別のユーザープールに分離します。