Amazon Cognito の開始方法

使用を開始するためのドキュメントとリソース

Amazon Cognito ユーザープール – すべてのユーザーのためのディレクトリ

Amazon Cognito ユーザープールを使用して、独自のディレクトリをすばやく作成し、ユーザーにサインアップおよびサインインしたり、ユーザープロファイルを保存したりできます。ユーザープールには、アプリケーションに合わせてカスタマイズできるユーザーインターフェイスが用意されています。また、ユーザープールでは、Facebook、Google、Amazon などのソーシャル ID プロバイダーや、SAML による Microsoft Active Directory などのエンタープライズ ID プロバイダーとの統合も容易になります。

Amazon Cognito アイデンティティプール-リソースのアクセスコントロール

アプリケーションのユーザーが適切なアクセス権のみを取得するように、Amazon Cognito を使用してバックエンドの AWS リソースおよび API へのアクセスを制御することができます。ユーザーをさまざまなロールと権限にマップして、Amazon S3、Amazon DynamoDB、Amazon API Gateway、AWS Lambda などの AWS のサービスにアクセスするための一時的な AWS 認証情報を取得することができます。

オンライン動画

Amazon Cognitoのユーザープールを作成する方法 (7:37)
Amazon Cognitovユーザープールの高度なセキュリティ機能の使い方 (12:00)
Amazon Cognito アイデンティティプールを作成する方法 (7:25)

よくある質問への回答

  • Q: Amazon Cognito とは何ですか?
    Amazon Cognito では、モバイルアプリケーションやウェブアプリケーションにユーザーのサインアップと認証機能を簡単に追加できます。Amazon Cognito を使用すると、外部 ID プロバイダーを介してユーザーを認証したり、AWS 内のアプリケーションのバックエンドリソースまたは Amazon API Gateway で保護されているサービスにアクセスするための一時的なセキュリティ認証情報を付与したりもできます。Amazon Cognito は SAML または OpenID Connect、ソーシャル ID プロバイダー (Facebook、Twitter、Amazon など) をサポートする外部 ID プロバイダーと併用し、独自の ID プロバイダーを統合することもできます。

    また、Amazon Cognito を使用すると、データをユーザーのデバイス間で同期することができるため、ユーザーがデバイスを切り替えたり、新しいデバイスにアップグレードしても、一貫性のあるアプリケーション体験を継続的に提供できます。データをユーザーのデバイスにローカルに保存できるため、デバイスがオフラインの場合でもアプリケーションを使用でき、オンラインになった時にデータを自動的に同期することができます。

    Amazon Cognito を使用すれば、ユーザー管理、認証、およびプラットフォームやデバイス間の同期を処理するソリューションの構築、セキュリティの確保、スケーリングに手間をかけることなく、優れたアプリケーション体験を生み出すことに集中できます。

    Q: Amazon Cognito を使用できるのは誰ですか?

    Amazon Cognito は、開発者がモバイルアプリケーションおよびウェブアプリケーションにユーザー管理を追加したり、機能を同期したりできるように、設計されています。開発者は Cognito ID を使用してアプリケーションにサインアップおよびサインイン機能を追加することができます。また、ユーザーがアプリケーションのリソースに安全にアクセスできるようにすることも可能です。さらに、Cognito を使用すると、開発者は複数のデバイス、プラットフォーム、アプリケーション間でデータを同期できます。

    Q: Amazon Cognito の使用はどのように開始できますか?
    AWS コンソールにアクセスすると、簡単に使用を開始できます。アマゾン ウェブ サービスのアカウントを持っていない場合、コンソールにサインインするときにアカウントを作成できます。ユーザー管理のためのユーザープールか、フェデレーティッドアイデンティティまたは同期オペレーションのための ID プールを作成すると、AWS Mobile SDK をダウンロードしてアプリケーションと統合できます。SDK を使用する代わりに、Cognito のサーバー側の API を直接呼び出すこともできます。詳細については、開発者ガイドをご覧ください。

    Q: Amazon Cognito ではサーバー側の API を公開していますか?
    はい。Cognito ではサーバー側の API を公開しています。サーバー側の API を直接呼び出して、Cognito の独自のカスタムインターフェイスを作成できます。サーバー側の API については、デベロッパーガイドをご覧ください。

    Q: Amazon Cognito ではどのプラットフォームがサポートされていますか?
    オプションの AWS Mobile SDK を使うと、iOS、Android、Unity、Kindle Fire での Cognito の使用がサポートされます。Cognito は AWS SDK for JavaScript でも使用できます。Cognito ユーザープールは現在、AWS Mobile SDKs for iOS、AWS Mobile SDKs for Android、JavaScript AWS SDK for Cognito でサポートされています。SDK をダウンロードするには、リソースページをご覧ください。

    Q: AWS Mobile SDK は必ず使用しなければなりませんか?
    いいえ。Cognito では、コントロール API とデータ API をウェブサービスとして公開しています。サーバー側の API を直接呼び出して独自のクライアントライブラリを実装することが可能です。

  • Q: 自分の ID プロバイダーを使用して、ユーザーのサインアップとサインインをサポートできますか?

    はい。Cognito ID を使用すると、サインアップ機能とサインイン機能をアプリケーションに簡単かつ安全に追加できます。ユーザーは、E メール、電話番号、またはユーザー名を使用してサインアップおよびサインインできます。また、E メールの検証、電話番号の検証、および多要素認証などの拡張セキュリティ機能を実装できます。さらに、Cognito ID を使用すると AWS Lambda による不正検出とユーザー検証のためのユーザー登録にアプリケーション固有のロジックを追加するなどして、ワークフローをカスタマイズすることができます。詳細については、ドキュメントを参照してください。

    Amazon Cognito ユーザープールを作成するとは何ですか?

    ユーザープールは、ウェブアプリケーションやモバイルアプリケーションに対して構成できるユーザーのディレクトリです。ユーザープールではユーザーのプロファイル属性が安全に保存されます。AWS コンソール、AWS CLI、または AWS SDK を使用して、ユーザープールを作成および管理できます。

    Q: Cognito ID ではどのようなユーザープロファイル情報がサポートされていますか?

    開発者は標準的な OpenID Connect ベースのユーザープロファイル属性 (ユーザー名、電話番号、住所、タイムゾーン等) を使用するか、またはアプリケーション固有のユーザー属性を追加してカスタマイズできます。

    Q: アプリケーションのユーザーが、E メールアドレスまたは電話番号で、サインアップまたはサインインできるようにすることは可能ですか?

    はい。エイリアシング機能を使用すると、E メールアドレスとパスワード、または電話番号とパスワードで、サインアップまたはサインインすることが可能です。詳細については、ドキュメントを参照してください。

    Q: パスワードポリシーを設定することはできますか?

    はい。ユーザープールを設定または構成する時に、パスワードの強度と文字タイプの要件などのパスワードポリシーを設定できます。

    Q: 自分のアプリケーションのユーザーの E メールアドレスと電話番号を検証することはできますか?

    はい。Amazon Cognito では、お客様のアプリケーションへのアクセスを付与する前にユーザーの E メールアドレスや電話番号の検証を義務付けることができます。サインアップ時に、認証コードがユーザーの電話番号または E メールアドレス宛に送信されます。サインアップを完了し、確認済みの状態にするためには、その認証コードを入力する必要があります。

    Q: Amazon Cognito では、SMS ベースの多要素認証 (MFA) がサポートされていますか?

    はい。アプリケーションのエンドユーザーは SMS ベースの MFA でサインインできます。SMS ベースの MFA を有効にすると、ユーザーはパスワード (第 1 の要素、つまりユーザーが知っているもの) と SMS を介して携帯電話でのみ受信することができるセキュリティコード (第 2 の要素、つまりユーザーが持っているもの) の入力を求められます。

    Q: ユーザーのサインアップとサインインのワークフローをカスタマイズすることはできますか?

    はい。AWS Lambda を使用するとユーザーのサインアップフローおよびサインインフローにアプリケーション固有のロジックを追加することにより、サインアップおよびサインインをカスタマイズできます。例えば、AWS Lambda 関数を作成して、不正を識別することや、ユーザーデータの検証を追加することができます。開発者が供給する Lambda 関数を、登録前、確認後、認証前、チャレンジをカスタマイズする認証時、および認証後にトリガーできます。また、Lambda 関数を使用して、E メールまたは電話番号の検証、および多要素認証の一部として送信されるメッセージをカスタマイズできます。

    Q: Cognito ユーザープールで、アプリケーションのユーザーが使っているデバイスを覚えておくことができますか?

    はい。ユーザーがアプリケーションにアクセスするときに使用したデバイスを記憶するように選択でき、Cognito ユーザープールでそのデバイスをアプリケーションのユーザーに関連付けることができます。また、多要素認証をセットアップするとき、記憶しているデバイスを使用してユーザーの第 2 要素のチャレンジを抑制することも選択できます。

    Q: 既存のアプリケーションユーザーを Amazon Cognito ユーザープールに移行するにはどうすればよいですか?

    アプリケーションの既存のユーザーディレクトリまたはデータベースからユーザープールにユーザーを移行するには、2 つの方法があります。

    Amazon Cognito では、組み込みの AWS Lambda トリガーを使用してアプリケーションにサインインする際に、ユーザーをリアルタイムで移行することができます。組み込みの Lambda トリガーを使用すると、パスワードを強制的にリセットしてなくてもユーザーを移行することができます。

    また、すべてのアプリケーションユーザーのプロファイルデータが含まれている CSV ファイルをアップロードすることで、ユーザーを一括して移行することもできます。この CSV ファイルは、Amazon Cognito コンソール、API、または AWS CLI を使用してアップロードできます。ユーザーが初めてログインするときには、自分のアカウントを確認し、自分のメールアドレスまたは電話番号に送信された認証コードを使用して、新しいパスワードを作成する必要があります。

    詳細については、ユーザープールにユーザーをインポートするを参照してください。

  • Q: Cognito ID を使用して、ID フェデレーションを行ったり、AWS リソースに安全にアクセスしたりすることはできますか?
    はい、Cognito ID を使用すると、外部 ID プロバイダーを介してユーザーを認証したり、AWS 内のアプリケーションのバックエンドリソースまたは Amazon API Gateway で保護されているサービスにアクセスするための一時的なセキュリティ認証情報を付与することもできます。Amazon Cognito は SAML または OpenID Connect、ソーシャル ID プロバイダー (Facebook、Twitter、Amazon など) をサポートする外部 ID プロバイダーと併用し、独自の ID プロバイダーを統合することもできます。


    Q: Amazon Cognito ID では、どのパブリック ID プロバイダを使用できますか?
    Amazon、Facebook、Twitter、Digits、Google、その他の OpenID Connect 対応 ID プロバイダを使用できます。

    Q: ID プールとは何ですか?
    ID プールとは、アプリケーションのフェデレーティッドアイデンティティを継続的に整理するために Cognito ID で使用されるコンテナです。ID プールでは、ソーシャル ID プロバイダのフェデレーティッドアイデンティティが一意のユーザー固有の識別子に関連付けられます。ID プールでは、ユーザープロファイルは保存されません。ID プールは、1 つのアプリケーションに関連付けることも、複数のアプリケーションに関連付けることもできます。2 つのアプリケーションに対してそれぞれ異なる ID プールを使用している場合、同じエンドユーザーが各 ID プールで異なる一意の識別子を持つことになります。

    Q: パブリック ID プロバイダを使用したログインの流れはどのようなものですか?
    モバイルアプリケーションでは、ID プロバイダ (IdP) の SDK を使用して認証が行われます。エンドユーザーが IdP で認証されると、IdP から返される OAuth や OpenID Connect のトークン、または SAML アサーションが、アプリケーションを通して Cognito ID に渡されます。その後、ユーザーの新しい Cognito ID と、権限の制限された一時的な AWS 認証情報一式が、Amazon Cognito から返されます。

    Q: 自分自身のユーザーを登録して認証することはできますか?
    Cognito ID は既存の認証システムと統合できます。簡単な API 呼び出しで、お客様がユーザーに割り当てた一意の識別子に基づくエンドユーザー向けの Cognito ID を取得できます。Cognito ID が提供する Cognito ID と OpenID Token を取得すると、Cognito ID クライアントの SDK を使用して AWS リソースにアクセスし、ユーザーデータを同期させることができます。Cognito ID は完全マネージド型 ID プロバイダであり、モバイルアプリケーションやウェブアプリケーションにユーザーのサインアップやサインイン機能をより簡単に実装できます。

    Q: Cognito ID は権限を制御し、AWS サービスに安全にアクセスするためにどのように役立ちますか?
    Cognito ID では、AWS リソースにアクセスするための、権限の制限された一時的な認証情報一式が、ユーザーに割り当てられるため、AWS アカウントの認証情報を使用する必要がありません。各ユーザーの権限は、お客様が作成する AWS IAM ロールを通して制御されます。各ユーザーの IAM ロールを選択するルールを定義できます。または、Cognito ユーザープールにあるグループを使用している場合は、グループに基づいて IAM ロールを割り当てることができます。Cognito ID を使用すると、認証されていないゲストユーザーに権限が制限されている個別の IAM ロールを定義することもできます。また、特定のリソースへのアクセスを制御するユーザーに対して Cognito で生成する一意の識別子を使用できます。例えば、S3 バケットに対して、各ユーザーがバケット内の自分のフォルダーのみにアクセスできるようにするポリシーを作成できます。

     

    Q: パブリック ID プロバイダを使用する場合は、Amazon Cognito ID ストアではユーザーの認証情報が保存されますか?

    いいえ。お客様のアプリケーションにより、サポートされているパブリック ID プロバイダ (Amazon、Facebook、Twitter、Digits、Google、または Open ID Connect に準拠しているプロバイダ) と直接通信が行われ、ユーザーが認証されます。Cognito ID でユーザーの認証情報を取得または保存することはありません。Cognito ID では、ID プロバイダから発行されたトークンを使用してユーザーの一意の識別子を取得した後、一方向のハッシュを使用してその識別子をハッシュします。このため、実際のユーザー識別子を保存しなくても、今後、同じユーザーを再度認識できます。

    Q: Cognito ID では、ユーザーに関する機密情報を ID プロバイダから受信することや、それを保存することはありますか?
    いいえ。Cognito ID が機密情報 (E メールアドレス、友達リストなど) を ID プロバイダから取得することはありません。

    Q: Cognito ID を使用していても、独自のバックエンドの認証システムは必要ですか?
    いいえ。Cognito ID では、Amazon、Facebook、Twitter、Digits、Google からのログインがサポートされており、認証されていないユーザーに対するサポートも提供されています。Cognito ID を使用すると、バックエンドコードを記述することなく、フェデレーティッド認証、プロファイルデータ同期ストア、AWS アクセストークンのディストリビューションをサポートできます。

    Q: ユーザーにログインを強制したくない場合は、どうすればよいですか?
    Cognito ID では、承認済みのユーザーに加えて認証されていないユーザーの作成処理とトークン自動交付処理を行うことができます。これにより、アプリケーションで別のログイン画面が表示されて抵抗感を与えるということがなくなりますが、権限の制限された一時的な認証情報を使用できるため、AWS リソースにアクセスすることができます。

    Q: 認証されていないユーザーとは何ですか?
    認証されていないユーザーは、どの ID プロバイダーでも認証を行っていないものの、ゲストとしてアプリケーションにアクセスするユーザーのことです。このようなユーザーには、バックエンドリソースにアクセスするための制限された権限を付与する個別の IAM ロールを定義することができます。

    Q: 同じデバイスで異なるユーザーがアプリケーションを使用する場合、Cognito ID では個別のアイデンティティをサポートしますか?

    はい。Cognito ID では、家族で 1 台の iPad を使用する場合など、1 つのデバイスでの個別のアイデンティティの使用をサポートしています。各アイデンティティは個別に扱われ、ユーザーがアプリケーションにログイン/ログアウトする方法や、ローカルやリモートでアプリケーションデータが保存される方法を、完全に制御できます。

    Q: Cognito ID に関連付けられたデータは、どのように保存しますか?
    Cognito ID に関連付けられたデータセットをプログラムで作成し、キー/値のペアの形式でデータの保存を開始できます。データはローカルのデバイスと Cognito 同期ストアの両方に保存されます。また、Cognito ではエンドユーザーのすべてのデバイス間でこのデータを同期することもできます。

    Q: Cognito ID コンソールに表示されたアイデンティティの数は、自分のアプリケーションを使用しているユーザーの数を示していますか?
    Cognito ID コンソールに表示されたアイデンティティの数は、Cognito Identity API で作成されたアイデンティティの数を示します。認証されたアイデンティティ (Facebook や OpenID Connect プロバイダーといったログインプロバイダーを使ってログインするアイデンティティ) の場合、Cognito ID の GetId API が呼び出されるたびに作成される各ユーザーのアイデンティティは 1 つのみです。ただし、未認証のアイデンティティの場合は、アプリケーションのクライアントから GetId API が呼び出されるたびに、新しいアイデンティティが生成されます。したがって、1 人のユーザーの認証されていないアイデンティティに対してアプリケーションから GetId が複数回呼び出された場合、1 人のユーザーに複数のアイデンティティがあるように表示されます。このため、認証されていないアイデンティティを使用する場合は、GetId からの応答をキャッシュして、1 人のユーザーに対して GetId を複数回呼び出さないようにすることが重要です。

    Cognito ID を自動的にキャッシュするロジックは Mobile SDK により提供されます。この処理について心配する必要はありません。固有ユーザーの追跡機能を含め、アプリケーションの完全な分析ソリューションをお探しのお客様は、Amazon Mobile Analytics をご覧ください。

  • Q: Amazon Cognito 同期ストアとは何ですか?
    Amazon Cognito 同期ストアとは、Amazon Cognito のアイデンティティに連結された、キーと値のペアのストアです。ID プールと同期ストアで作成できるアイデンティティの数に制限はありません。Amazon Cognito 同期ストア内の各アイデンティティには、独自のユーザー情報ストアがあります。

    Q: データは直接 Amazon Cognito 同期ストアに保存されるのですか?
    いいえ。オプションの AWS Mobile SDK を使用すると、データがローカルデバイスの SQLite データベースに保存されます。この方法で、アプリケーションから常にデータにアクセスできます。synchronize() メソッドを呼び出すことで、データが Amazon Cognito 同期ストアにプッシュされます。プッシュ同期が有効になっている場合は、同期ストアのデータが変更されると、アイデンティティに関連付けられたその他すべてのデバイスに Amazon SNS を通じて通知が送信されます。

    Q: Amazon Cognito 同期ストアに保存されるデータはどのようなものですか?
    Amazon Cognito のアイデンティティと関連付けられたデータは、キーと値のペアとして整理されます。一つのキーは“MusicVolume” などといったラベルと、“11” などの値からなります。キー/値のペアは、データセットを使用してグループ化また分類されます。データセットとはキー/値のペアの論理パーティションで、Amazon Cognito による同期オペレーションの実行に使用される最も詳細なエンティティです。

    Q: Amazon Cognito 同期ストア内のユーザー情報ストアの最大サイズはいくつですか?
    各ユーザー情報ストアの最大サイズは 20 MB です。ユーザー情報ストア内の各データセットには、最大 1 MB のデータを保存できます。データセット内に保存できるキーの最大数は 1,024 個です。

    Q: データセットにはどのような種類のデータを保存できますか?
    データセット内のキーと値は両方とも英数字の文字列です。データセット内の値の合計量が 1 MB を超えなければ、文字列の長さに制限はありません。バイナリデータの値は、1 MB の制限を超えなければ、base64 でエンコードした文字列として保存できます。

    Q: データセットが 1 MB に制限されるのはなぜですか?
    データセットのサイズを 1 MB に制限することによって、帯域幅が限られている場合でも、何度も再試行してバッテリーの寿命とデータプランを消費することなく、同期タスクが成功する確率が上がります。 

    Q: ユーザーアイデンティティとユーザー情報ストアは開発者間で共有されますか?
    いいえ、ユーザーアイデンティティとユーザー情報ストアは特定の AWS アカウントに関連付けられています。Amazon Cognito を使用する特定のデバイスに異なる発行者から発行された複数のアプリケーションがある場合、各アプリケーションではその発行者が作成した情報ストアが使用されます。

    Q: Cognito 同期ストア内のデータをどのように分析し、クエリを発行することができますか?
    Cognito ストリームを使用して、AWS アカウントの Kinesis ストリームへ同期ストアのデータをプッシュできます。このストリームを消費して、Amazon Redshift データベース、お持ちの RDS インスタンス、または S3 ファイルなどの、お客様にとって便利な方法でデータを保存できます。Amazon Redshift に更新データを保存する方法を示す、サンプル Kinesis コンシューマアプリケーションを公開しています。

    Q: なぜデータベースエクスポートではなく、Kinesis ストリームを使用する必要があるのですか?
    Kinesis へデータをストリーミングすることによって、データセットに加えられた変更のすべての履歴をリアルタイムで受信できます。つまり、エンドユーザーがデータセットに加えたすべての変更を受信でき、お好みのツール内にこのデータを保存するための柔軟性を手に入れられます。

    Q: すでに Cognito へデータを保存している場合はどうなりますか?
    Kinesis ストリーム機能を有効にすると、一括発行を始めることができます。そうすることで、現在 Cognito 同期ストアに保存されているすべてのデータを選択した Kinesis ストリームへ非同期的に送信します。

    Q: この機能の利用料金はいくらですか?
    Cognito はお持ちの Kinesis ストリームへデータをプッシュします。この機能が有効にされた場合、Cognito の同期ごとの料金と同じ料金です。シャードに対して標準の Kinesis 料金が請求されます。

    Q: データを保存する前に検証できますか?
    Amazon Cognito イベントを使用すると、開発者は、Cognito で発生した重要なイベントに応じた AWS Lambda 関数を実行できます。Sync Trigger イベントとは、データセットが同期されたときに発生するイベントです。開発者は、同期イベントをインターセプトする AWS Lambda 関数を作成できます。この AWS Lambda 関数は下層のデータセットに対する変更を評価し、データを操作してからクラウドに保存して、ユーザーの他のデバイスと再同期します。この AWS Lambda 関数は、同期オペレーションに失敗することもあります。その場合、データはユーザーの他のデバイスと同期されません。

    Q: データはどのように Amazon Cognito と同期されますか?
    AWS Mobile SDK で synchronize() メソッドを使用するなら、クライアントデバイスと Amazon Cognito 同期ストアの間のデータセットの同期をプログラムによってトリガーできます。synchronize() メソッドが実行されると、Amazon Cognito 同期ストアで取得できる最新のデータが読み込まれ、それがローカルにキャッシュされたコピーと比較されます。比較により必要であると判断された場合、synchronize() メソッドにより、ローカルのデータストアと Amazon Cognito 同期ストアに最新の更新が書き込まれます。Amazon Cognito のデフォルト設定では、データの最新の書き込みが維持されます。この動作はプログラムで上書きして、データ競合の解決方法を変更できます。さらに、プッシュ同期を使うと、Amazon Cognito からアイデンティティに関連付けられたすべてのデバイスに、新しいデータが利用可能になったことを知らせるサイレントプッシュ通知を送信できます。

    Q: サイレントプッシュ通知とは何ですか?
    Amazon Cognito は、Amazon Simple Notification Service (SNS) を使って、各デバイスにサイレントプッシュ通知を送信します。サイレントプッシュ通知は、ユーザーデバイスのアプリケーションが受信するプッシュメッセージで、ユーザーには表示されません。

    Q: プッシュ同期はどのように使用しますか?
    プッシュ同期を有効にするには、AWS マネジメントコンソールの Amazon SNS ページでプラットフォームアプリケーションを宣言する必要があります。その後、AWS マネジメントコンソールの Amazon Cognito ページの ID プールページで、SNS プラットフォームアプリケーションを Cognito ID プールにリンクできます。Amazon Cognito が自動的に SNS プラットフォームアプリケーションを使用して、デバイスに変更を通知します。

    Q: 同期処理の競合は、どのように処理されますか?
    Amazon Cognito のデフォルト設定では、データの最新の書き込みが維持されます。競合する 2 つのデータが含まれる AWS Mobile SDK からのコールバックに応答するよう選択して、この動作を上書きできます。その後、アプリケーションにより、どちらのバージョンのデータ (ローカルのデータまたは Amazon Cognito 同期ストアに保存されているデータ) を保持するかが判断され、それが Amazon Cognito 同期ストアに保存されます。

  • Q: Amazon Cognito ユーザープールの料金はどれくらいですか?

    Amazon Cognito ユーザープールの料金については、Amazon Cognito の料金表ページの「」を参照してください。

    Q: Amazon Cognito の料金はどれくらいですか?

    Amazon Cognito Sync の料金については、Amazon Cognito の料金表ページをご覧ください。

    Q: 同期オペレーションとは何ですか?

    AWS Mobile SDK を使用して synchronize() メソッドを呼び出すと、同期オペレーションとしてカウントされます。サーバー API を直接呼び出している場合、同期セッションの新しいトークンが出力されたときに同期オペレーションが開始し、書き込みが成功するかセッションのトークンがタイムアウトになったときに同期オペレーションが完了します。SDK の synchronize() メソッドを使用しても、サーバーの API を直接呼び出しても、同期オペレーションには同じ料金が課金されます。

    Q:月間アクティブユーザー (MAU) とは?
    課金月にユーザーに関連する操作 (サインイン、トークンの更新、サインアップ、またはパスワードの変更など) がある場合、そのユーザーはアクティブと見なされ、1 MAU としてカウントされます。そのため、課金月中のその後の操作または非アクティブなユーザーに関しては課金されません。通常、ユーザーの総数と操作数は、MAU の総数を大幅に上回ります。

    Q:Cognito で SMS メッセージを使う場合、どのような費用がかかりますか?
    SMS メッセージングを使って電話番号を検証し、パスワードを忘れた人やリセットしたい人のために、または多要素認証のためにコードを送信するには、別途料金がかかります。詳細については、ワールドワイド SMS 料金ページを参照してください。

    Q: Amazon Cognito は AWS 無料利用枠の一部ですか?
    はい。AWS 無料利用枠の一部として、Cognito では、使用開始から最大 12 か月間、1 か月につき 10 GB の同期ストア容量と 100 万回の同期オペレーションをご利用いただけます。Cognito ID のユーザープールの場合、最初の 50,000 MAU は無料です。50,000 MAU を超えると、ボリュームに応じた利用枠をご利用いただけます。Cognito ID では、ユーザーの認証および一意の識別子を取得するためのフェデレーティッドアイデンティティ機能への課金が発生することは一切ありません。

    Q: アプリケーションからの毎回の読み書きが同期オペレーションとしてカウントされますか?
    いいえ。synchronize() メソッドを呼び出すタイミングを設定できます。デバイスからの毎回の読み書きはローカルの SQLite ストアに対して実行されます。これにより、コストを完全に制御できます。

    Q: プッシュ同期の料金はどれくらいですか?
    Cognito は Amazon SNS を使用してサイレントプッシュ通知を送信します。Cognito でプッシュ同期を使用するための追加料金はかかりませんが、デバイスへの通知送信には通常の Amazon SNS 料金がかかります。

    Q: Lambda と Amazon Cognito イベントを組み合わせて使用する場合の料金を教えてください。
    Cognito イベントを使用して Lambda 関数をトリガーするのに追加料金は発生しません。ただし、Lambda 関数の実行中は、AWS Lambda およびその他の AWS サービスの通常の使用料が発生します。詳細については、AWS Lambda の料金ページをご覧ください。