クラウドサービス

AWS Device Farm

実機のスマートフォンやタブレット上でアプリのテストとリモート操作をクラウドで実行し、自前の端末群を抱えずに多様な機種・OS の互換性を検証できるマネージドなモバイルアプリテストサービス。

中級DVA-C02DOP-C02運用上の優秀性信頼性
最終更新: 2026-07-29公式ドキュメント
3つの要点
TL;DR
  1. アプリと試験一式を実機へ配り、機種・OSごとの差を並列に検証する。
  2. 自動試験と遠隔操作は端末を専有し、既定では最大150分で終了する。
  3. ログ・画像・動画を端末単位で比較し、本番資格情報は持ち込まない。

AWS Device Farm は、AWS が運用する実機のスマートフォンやタブレット上で、モバイルアプリや Web アプリのテストとリモート操作をクラウド上で実行できるマネージドなアプリテストサービスです。多数の機種・OS バージョンの組み合わせを自前で用意せずに、実際のデバイス上でアプリがどう動くかを検証でき、自動テストの並列実行と、ブラウザ越しに実機を直接操作する手動テストの両方に対応します。

解決する課題

モバイルアプリは、画面サイズ・OS バージョン・チップ・メーカー独自のカスタマイズなど、無数の端末バリエーションの上で動きます。エミュレーターやシミュレーターだけでは、特定機種でのみ起きるクラッシュ、実機の GPU やセンサー、ネットワーク状況に依存する不具合を見つけきれません。かといって主要機種を社内で買い揃え、OS をパッチし、充電し、保管する端末ラボの運用は、台数が増えるほど大きな負担になります。

Device Farm は、この実機の調達・維持・管理をサービスとして肩代わりします。利用者はテスト対象のアプリとテストスクリプトをアップロードするだけで、AWS が保有する実機の端末プール上でテストを実行できます。多数の機種で並列にテストを走らせて互換性を一括検証したり、特定機種の不具合を実機をリモート操作しながら再現・調査したりでき、端末ラボを持たずに実機品質の検証サイクルを回せます。

主要概念と用語

  • プロジェクト: テスト対象アプリや実行履歴をまとめる単位。アプリやチームごとにプロジェクトを分けて管理する。
  • 実行(run): アップロードしたアプリとテストを、選んだ端末群に対して一括実行する一回分の単位。端末ごとの結果が集約される。
  • デバイスプール: テストを流す対象端末の集合。機種・OS バージョン・メーカーなどの条件で動的に選ぶか、特定端末を明示的に選んで構成する。
  • テストタイプ: 実行するテストの種類。Appium などのフレームワークを用いた自動テストと、スクリプト不要で画面を自動巡回する組み込みの探索テスト(fuzz/explorer 系)がある。
  • リモートアクセス(手動テスト): ブラウザ越しに実機を専有してリアルタイムに操作するセッション。タップやスワイプ、入力を遠隔で行い不具合を手で再現する。
  • アーティファクト: テスト実行で得られる成果物。ログ、スクリーンショット、動画、パフォーマンス指標などが端末ごとに記録される。
  • プライベートデバイス: 自分のアカウント専用に確保された専有端末。一般の共有プールと分け、機種・構成を固定して継続的に使える。

仕様・制限・クォータ

  • 対応プラットフォームは Android と iOS のネイティブ/ハイブリッドアプリ、および Web アプリです。アップロードするアプリは各プラットフォームのパッケージ形式(Android はアプリパッケージ、iOS は署名済みのアプリ)で渡します。
  • 自動テストは Appium をはじめとする複数のテストフレームワークに対応し、加えてスクリプトを書かずに画面を自動巡回する組み込みの探索テストも利用できます。対応フレームワークの種類は時期によって増減します。
  • 端末プールは AWS が用意する実機で構成され、選べる機種・OS バージョンは入れ替わります。常に最新・全機種が揃うわけではないため、ターゲット機種が含まれるかは実行前に確認します。
  • 自動試験と遠隔操作は端末ごとに最大 150 分です。従量利用の既定同時実行は自動試験 5 台、遠隔操作 2 台で、保留を含む実行中ジョブはアカウント全体で 250 件です。
  • Device Farm の API とコンソールは米国西部(オレゴン、us-west-2)リージョンで利用する
  • アップロードは 1 ファイル最大 4 GB で、Android App Bundle(.aab)は現在受け付けません。対応端末・試験基盤は実行前に確認します。

内部の仕組み

横にスクロール

アプリと試験パッケージから端末プールを解決し、複数の実機へ並列配布してログ・画像・動画を端末別に回収する経路を示す図
待ち行列、端末確保、アプリ導入、試験コード、私設API接続を別の失敗点として切り分ける

テストを実行すると、Device Farm はまずアップロードされたアプリとテストパッケージを受け取り、検証して取り込みます。次に、指定されたデバイスプールの条件に従って対象端末を解決し、AWS が運用する物理端末群の中から空いている実機を確保します。共有プールの場合はテストの実行中だけ端末が割り当てられ、終了すると初期状態に戻されて次の利用者へ返されます。

確保された各端末上でアプリがインストールされ、テストタイプに応じた処理が走ります。Appium のような自動テストでは、指定したスクリプトが端末上のアプリを操作し、その間の画面・ログ・操作結果が逐次収集されます。組み込みの探索テストでは、スクリプトなしでアプリ内の画面要素を自動的にたどり、クラッシュや異常を検出します。複数端末を対象にした実行では、これらが端末ごとに並行して進むため、多機種の検証を短時間で済ませられます。

実行の進行に合わせて、各端末からはログ、スクリーンショット、操作の録画動画、CPU・メモリ・起動時間などのパフォーマンス指標といったアーティファクトが集約されます。手動のリモートアクセスでは、確保した実機がセッションの間だけ利用者に専有され、ブラウザからの操作がリアルタイムに端末へ中継されます。実行が終わると端末は解放され、結果一式が機種ごとに参照できる形で残ります。

設計パターン / ベストプラクティス

  • まず主要なターゲット機種・OS を洗い出し、利用者層に合わせたデバイスプールを設計する。市場シェアの高い機種や、過去に不具合が出た機種を優先的に含める。
  • 自動テストを CI に組み込み、ビルドのたびに代表機種のプールで回す。リリース前には機種数を広げ、日常はコストを抑えた最小プールにするなど、頻度に応じてプールを使い分ける。
  • スクリプトを書く前に組み込みの探索テストでざっと網羅し、クラッシュの多い画面を把握してから、再現性の高い箇所を Appium などの自動テストで厚く固める。
  • 特定機種でのみ起きる不具合は、リモートアクセスで実機を手元のように操作して再現・調査する。録画やログと併せて原因を切り分ける。
  • 機種・構成を固定して安定的に回したい継続テストには、専有のプライベートデバイスを用い、共有プールの端末入れ替えによる揺らぎを避ける。
探索テストで網羅し、自動テストで固める

スクリプト不要の探索テストは、まだテストコードを書いていない段階でも多機種のクラッシュを素早く洗い出せます。これでアプリ全体をざっと当たって弱い画面を見つけ、再現性の高い経路を Appium などの自動テストとして固定化すると、少ない労力で実機品質の検証を立ち上げられます。

運用・監視

実行の進行状況と結果は Device Farm のコンソールや API で確認でき、どの端末でテストが成功・失敗したか、どの機種でクラッシュが起きたかを機種横断で俯瞰できます。失敗した端末についてはログ・スクリーンショット・録画動画をたどり、特定機種・特定 OS でのみ起きる問題を切り分けられます。

継続的な品質維持の観点では、テスト実行をビルドパイプラインに組み込み、結果を通知や後続処理と連携させるのが実務的です。実行結果やパフォーマンス指標を蓄積して機種ごとの傾向を追えば、回帰の早期発見や、サポート対象機種を見直す判断材料になります。手動調査が必要な不具合はリモートアクセスのセッションで掘り下げ、自動テストとリモート操作を場面で使い分けます。

対象機種の入れ替わりを前提に運用する

共有プールの端末ラインナップは時期によって入れ替わり、特定の機種や OS バージョンが常に利用できるとは限りません。リリースで必ず検証したい機種がある場合は、実行前にプールに含まれるかを確認するか、専有のプライベートデバイスを確保して、検証対象の揺らぎを抑えてください。

コスト

公開実機の従量料金は自動試験・遠隔操作とも 1 デバイス分あたり 0.17 USD / 分で、初回 1,000 分の試用枠があります。10 台を 20 分並列実行すると経過時間は 20 分でも、課金対象は 200 デバイス分です。

無制限枠は用途・OSごとの同時実行スロット 1 個あたり月 250 USDから、専有実機は月 200 USDからです。デスクトップブラウザ試験は 1 インスタンス分 0.005 USD / 分です。日常は代表機種、リリース前は広い端末群に分け、待機や再試行を含む時間を減らします。

セキュリティ

Device Farm の操作権限は IAM で制御します。誰がプロジェクトを作成し、アプリやテストをアップロードし、実行できるかをポリシーで限定して、不用意なアップロードや実行を防ぎます。アップロードするアプリやテストデータには機微な情報が含まれ得るため、アクセスできる主体を必要な範囲に絞ることが基本の防御になります。

実機を共有プールで使う場合、テスト終了後に端末は初期化されて次の利用者へ返されますが、テスト中に端末へ書き込んだ認証情報やテストデータの扱いには注意します。本番の認証情報を埋め込んだビルドをそのままテストに使わず、テスト専用の資格情報やダミーデータを用いるのが安全です。機種・データの隔離をより厳密にしたい場合は、共有しない専有のプライベートデバイスを利用します。操作は CloudTrail に記録されるため、いつ誰が何を実行したかを監査できます。

本番の認証情報をテストビルドに埋め込まない

共有プールの実機は他の利用者と順に使い回されます。テスト終了時に端末は初期化されますが、本番の API キーや認証情報を埋め込んだビルドを共有端末で動かすのは避けてください。テストにはテスト専用の資格情報とダミーデータを用い、機微なデータの露出経路を作らないようにします。

関連サービス・比較

混同されやすいのが、ブラウザの自動テストを大規模に並列実行する AWS のサービス群との違いです。Device Farm は実機のモバイル端末上でのアプリ検証とリモート操作に主眼があり、対象は主にネイティブ/ハイブリッドのモバイルアプリです。一方、Web アプリのブラウザテストを多数のブラウザ・バージョンで並列に流すことに特化したサービスは、実機の物理端末ではなくブラウザ環境のスケールに重きを置きます。検証したい対象がモバイル実機の挙動か、Web ブラウザの互換性かで使い分けます。

観点Device Farmブラウザテストサービス
主な対象モバイル実機上のアプリと WebWeb ブラウザの互換性テスト
実行環境AWS 運用の物理端末プール多数のブラウザ・バージョン環境
手動操作実機をリモートで専有操作できるブラウザ自動テストが中心
主な成果物ログ・動画・端末別の指標ブラウザ別のテスト結果
向くケース多機種の互換性と実機不具合の調査Web の多ブラウザ互換性検証

ハンズオン / CLI例

以下は、プロジェクトを作成し、アプリとテストをアップロードして自動テストを実行する基本的な流れの例です。アップロードはまず登録 API で受け取り用 URL を発行し、その URL へ実体をアップロードしてから実行を開始します。各 ARN や端末プールは環境に合わせて置き換えてください。

# プロジェクトを作成
aws devicefarm create-project --name "MyMobileApp"

# アプリのアップロード枠を作成(返る uploadUrl へ実体を PUT する)
aws devicefarm create-upload \
  --project-arn arn:aws:devicefarm:us-west-2:123456789012:project:PROJECT-ID \
  --name app-release.apk \
  --type ANDROID_APP

# 発行された署名付き URL へアプリ本体をアップロード
curl -T app-release.apk "https://prod-upload.s3-url.example/..."

# アップロード済みアプリとテストを指定して自動テストを実行
aws devicefarm schedule-run \
  --project-arn arn:aws:devicefarm:us-west-2:123456789012:project:PROJECT-ID \
  --app-arn arn:aws:devicefarm:us-west-2:123456789012:upload:APP-UPLOAD-ID \
  --device-pool-arn arn:aws:devicefarm:us-west-2:123456789012:devicepool:POOL-ID \
  --name "smoke-run" \
  --test type=BUILTIN_FUZZ

AWS Service

AWS Device Farmを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

開発者ツール

比較で見る軸

クラウド: AWS / カテゴリ: 開発者ツール / 難易度: intermediate

導入後に効く点

自動試験と遠隔操作は端末を専有し、既定では最大150分で終了する。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
AWS
カテゴリ
開発者ツール
難易度
intermediate
関連資格
DVA-C02 / DOP-C02
設計柱
operational / reliability

判断チェックリスト

  • 自社の用途が「開発者ツール / operational」に近いか確認する。
  • 強みである「アプリと試験一式を実機へ配り、機種・OSごとの差を並列に検証する。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

開発者ツールoperationalreliabilityDVA-C02DOP-C02