AWS Device Farm のリモートアクセス利用時の注意事項とプロジェクト作成時のタイムアウト設定について

2021.07.15

いわさです。

AWS Device Farmを複数人(同一アカウントの複数IAMユーザーorロール)で利用するシーンの場合、誰かが操作しているリモートセッションは他の誰かへ共有される可能性があります。

例えば、デバイスAでリモートセッションを開始し、デバイスBでDeviceFarmへアクセスすると、以下のように利用中のセッション情報が表示されます。

デバイスBを操作しているユーザーは、この時どういう操作をするべきでしょうか。

作成済みセッションへアクセスした場合

デバイスBからこのセッションへ接続することが出来ます。

接続すると...

B端末でも同じ画面が表示されます。

また、どちらかのデバイスで操作を行うと

同じセッションに接続している端末にも操作内容が反映されます。
このように、同一リモートセッションの場合は全ての操作も含め共有されます。

セキュリティ上の理由から、リモートアクセスセッション中に、アカウント番号、個人用ログイン情報、その他の詳細などの機密情報を提供または入力しないことをお勧めします。

セッション共有される点もそうですが、操作内容のログがビデオキャプチャも取得されます。
操作内容については十分注意しましょう。

違うセッションで同じデバイスを選択した場合

デバイスBから、作成済みセッションへアクセスせずに、新しくセッションを作成する場合を試してみます。
ただし、デバイスタイプについては同じものを選択してみましょう。

ここでは、Apple iPhone 8を選択します。

セッションが別の場合は、デバイスAとデバイスBで別の表示となります。
操作内容もインストールアプリケーションも一切共有されません。

物理的に同じクラウドデバイスを使っているわけではないので分離されているということです。

セッションは明示的に終了しないとどうなるのか

ここでひとつ注意事項があります。

Stop sessionボタンを押さずに、メニューなどからセッション一覧など上位のページに戻った場合です。

セッション一覧では、まだ実行中となっており、再接続が可能です。

このようにリモートセッションは残り続けます。
セッションの残り時間が経過するか、明示的にセッションの終了を行う必要があります。

これは利用料金に関係していきます。
DeviceFarmの利用料金は以下となっています。

従量制料金は "デバイス分" によって計算されます。デバイス分は、使用するデバイス数と自動テストとリモートアクセスセッションの長さによって決まります。

終了しなかった場合どうなるのでしょうか、デフォルトの150分を経過するまで分単位で料金が発生してしまうのでしょうか。

セッションを作成し一晩放置してみました。

9分程度でセッションが終了していますね。

この仕様については以下に記載があります。

セッションが開始された後に、セッションを停止せずにブラウザまたはブラウザのタブを閉じる場合、またはブラウザとインターネット間の接続が失われた場合、セッションは 5 分間アクティブな状態が維持されます。その後、Device Farm はセッションを終了します。アカウントにはアイドル時間に対しても課金されます。

セッション停止をし忘れても、操作がなくなってから5分経過すると自動で停止するということです。
分単位で課金は発生しますが、停止忘れをしても安心ですね。

また、プロジェクト作成後は、プロジェクト設定にて、タイムアウトの時間を設定することが可能ですが、これはリモートアクセスセッションのタイムアウトの設定値ではないので注意しましょう。

こちらは自動テストを実行した際にタイムアウト扱いとする時間の設定値となります。

まとめ

  • リモートアクセス操作内容は共有される前提で操作内容を決めること
  • セッション停止は忘れても5分で自動停止するが、極力明示的に停止を行うほうが無駄な料金が発生しなくなる