Category: モバイル


AWS Device Farm のアップデート – デバイスにリモートアクセスしてインタラクティブなテストが可能に

昨年、 AWS Device Farm の記事を書いた際は、どのように実機デバイスにてモバイルアプリをテストするかについてお話しました。その時に説明したとおり、AWS Device Farm では Project を作成し Application を指定し Test を設定すれば、さまざまな iOS や Android 端末の上で Test を実行できるようになります。

デバイスにリモートアクセス

本日、新しい機能をローンチします。この機能により、デバイス(スマートフォンとタブレット)にリモートアクセスすることができるようになり、インタラクティブなテストを実施していただけます。ご希望のデバイスにて新しいセッションを開始して、デバイスが利用可能になるまで(通常は1〜2分程度)待つと、AWS Management Console 経由でデバイスをインタラクティブに操作できるようになります。

まるでそのデバイスが机のうえにあるかのように、もしくは、手のなかにあるかのように、リアルタイムにウェブブラウザ越しに、ジェスチャーして、スワイプして、インタラクティブに操作することができます。アプリケーションをインストールして実行することもできます!

こちらは簡易なデモです。[Start a new session] をクリックして開始します。

そして、希望のデバイスタイプ、OS バージョンを検索・選択し、セッションの名前を入力します。[Confirm and start session] をクリックして進めます。

そして、利用可能になるまで待ちます。(この場合は 30秒ほど)

デバイスが利用可能になると、コンソール経由でスクリーンを閲覧し操作できます。

マウスを使って Kindle Fire をインタラクティブに操作できます。言語をラテンアメリカスペイン語に設定すると、もしかすると私のアプリは期待通りに動作しないかもしれません。数クリックで Kindle Fire の設定を変更できます。

[Upload] をクリックして APK ファイルを選択すれば、 Kindle Fire に私のアプリをインストールできます。

セッションは最大 60 分まで実行できます。それ以降は自動的に停止します。

いますぐ利用可能

多くの Android スマートフォンとタブレットを選択できるようになっており、いますぐベータとして利用可能です。今年後半には iOS デバイスの追加を予定しており、さらにデバイスの設定と仮想ロケーションの管理を提供予定です。

AWS Device Farm は初回の 250 device minutes 枠を無料で利用できます。この無料枠を使いきった後は、device minute (1デバイス x 1分) ごとに 0.17 ドルが課金されます。もしくは、月額 250 ドルで 1 スロット(スロットは同時実行の単位です。スロット数内であればテストごとに機種を変更できます)を使い放題で利用できます。

Jeff (翻訳は清水が担当しました。原文:AWS Device Farm Update – Remote Access to Devices for Interactive Testing

[New] Amazon Cognito 向け User Pools

Amazon Cognito を使うことでバックエンドコードを書いたり、インフラストラクチャの管理をする必要なくモバイルや Web アプリに簡単に認証やユーザ管理とデータ同期を簡単に追加できます。ユーザごとの設定やアプリケーションの状態データをバックエンドコードを書いたり、インフラストラクチャの管理をする必要なく AWS Cloud に保存することが簡単になります。昨年、AWS CloudTrail サポートログインプロバイダとして Twitter および Digits の使用、Cognito におけるイベントに応答するAWS Lambda function の実行機能、そして Amazon Kinesis へのユーザアイデンティティデータのストリーミングといったいくつかのパワフルな新機能を Cognito に追加しました。

User Pools
モバイルと Web アプリに簡単にユーザサインアップとサインインを追加するのに Amazon Cognito を利用できるようになりました。User Pool の機能を用いて、数億ユーザまでスケールし、フルマネージドなので構築したり、セキュアにしたりアプリに対する認証をスケールしたりするのに関連する重労働について心配することなく独自のユーザディレクトリを作成できます。この機能は email による確認、電話番号による確認や多要素認証といった拡張されたセキュリティ機能も提供します。アプリ開発者として、みなさんはこういった目的のために、Federated Identity Pools と呼ぶようになった Cognito の機能を利用して、Amazon、Facebook、Google、Twitter もしくは Digits といった外部のアイデンティティプロバイダを利用するというオプションを既に持っていました。User Pool を使うことで Web とモバイルの SaaS アプリ、ゲームなどといった面でサインアップとサインインに詳細なコントロールが可能になります。あらゆるスケール(潜在的には数十や数億のユーザ)でディレクトリサービスを構築し稼働させることは簡単ではなく、ユーザ名、パスワード、email アドレスやその他のセンシティブな情報のかけらを管理するときに追加されるセキュリティの重荷とともに全くもって付加価値を生まない重労働です。User Pool を使う場合、独自のディレクトリサービスを構築し、稼働させる必要はありません。

アカウントごとの複数のUser Pool
自分の AWS アカウントに複数の User Pool を作成可能です(1プール内のアイデンティティは分離され他のプール内のものとも異なります)。各プールは名前が付けられ、各ユーザで保存したい属性(アドレス、email、電話番号、ロケールなど)に対するフルコントロールを持ちます。プールの作成後はユーザを認証し、クレデンシャルを取得するなどのために AWS Mobile SDK(iOS、AndroidとJavaScriptで利用可能)を使用できます。ユーザは SMS ベースの多要素認証(Multi-Factor Authentication、MFA)や電話や email によるアカウント確認を含む各種セキュリティ機能によりベネフィットを得ます。パスワード機能では通信上、クリアテキストなパスワードを送信しないようにSecure Remote Password (SRP)を利用します。

User Poolの作成
AWS Management Console (APIとCLIも利用可能です)から User Pool を作成するプロセスをウォークスルーしてみましょう。(仮想的な)私のアプリは PaymentApp と呼ばれますので PaymentAppUsers という名前のプールを作成します

デフォルトをレビューして受け入れるか全ての設定をすることもできます。ここでは後者のアクションを選択します。新規ユーザがサービスにサインアップする際に収集しなければいけない属性のセットを選択します。

カスタム属性をセットアップすることも可能です。私のアプリの場合、ユーザの使いたい支払い通貨を記録したいです。

それから望ましいパスワード強度を設定します。これはペイメントのアプリなので全ての選択肢をチェックします。

次に、多要素認証を有効にし、email アドレスと電話番号が確認される必要があることを示します。確認の各メソッドに関連するメッセージのカスタマイズも行います。

私のアプリはモバイルクライアントも持っているのでユニーク ID とシークレットキーを作成するようにします。

サインアップ、検証、認証そして確認のステップで Cognito に Lambda ファンクションを起動させるようにすることもできます(これはオプショナルですが、カスタム属性を確認ことによるサインアップワークフローをカスタマイズしたい場合にとても便利です)。

最後に、自身の選択をレビューしプールを作成します。

この時点でWebもしくはモバイルアプリのを開発する準備が整いました。

AsurionにおけるCognito

Asurion は2億以上の顧客にスマートフォンのような高付加価値なデバイス向けの保険契約を提供しています。Asurion は新たなデバイス保護アプリ向けのユーザディレクトリの管理のために Cognito を使う計画をしています。このアプリはデバイスに関するデータを収集し、利用料の最適化を目的としたリコメンドを行います。

Asurion は幅広いアイデンティティモデルのサポートを理由に Cognito を選択しています。アイデンティティシステムをスケールさせ、セキュアにするという重労働に対処する必要なく、彼らは自身のフルマネージドなディレクトリを保有したり、サードパーティのソーシャルアイデンティティプロバイダを通したユーザ認証を持つことができます。

Ravi Tiyyagura (Asurion’s Director of Enterprise Architecture) はこう言います。

数千万のエンドユーザに対するセキュアでシンプルなサインアップとサインイン体験を提供することはとても重要です。Amazon Cognito により、我々はバックエンドを構築し管理することに関して心配することなくそれをできます。

Ravi Tiyyagura (Asurion’s Director of Enterprise Architecture) はこう言います:

数千万のエンドユーザに対するセキュアでシンプルなサインアップとサインイン体験を提供することはとても重要です。Amazon Cognito により、我々はバックエンドを構築し管理することに関して心配することなくそれをできます。

Public Beta
We are launching user pools today as a public beta. All of the primary functionality is in place and you can use it to start building and testing your app. We expect to make it available for production use within a couple of months.

user pool を本日パブリックベータとしてローンチします。全ての主要な機能は整備されており、アプリの開発とテストを始めるために利用可能です。数ヶ月のうちにプロダクション用途で利用可能にするようにするつもりです。

— Jeff; (翻訳は西谷が担当しました。原文はこちら)