AWS認定資格 WEB問題集&徹底解説
ソリューションアーキテクト-プロフェッショナル
AWSサービスの一つであるAWS Device Farmはどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-プロフェッショナル(SAP)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
AWS Device Farmは、AWSがホストする実際の物理スマートフォンやタブレットで、Android、iOS、Webアプリをテストできるアプリケーションテストサービスです。 端末購入やOS更新、端末メンテナンスを自前で行わず、実機上の互換性、UI、機能、パフォーマンス、クラッシュを確認できます。
重要な試験ポイントとして、Device Farmはus-west-2(オレゴン)リージョンのみで提供されます。 使い方は、ブラウザから実機を操作するリモートアクセスと、アプリ/テストをアップロードして複数端末で並列実行する自動テストに大別されます。
2. 主な特徴と機能
2.1 実機デバイスでのテスト
エミュレーターではなく、AWSが管理する実際のAndroid/iOS端末でテストできます。 画面サイズ、OSバージョン、メーカー差異、センサー、ネットワーク挙動など、実機固有の問題を検出しやすくなります。
2.2 リモートアクセス
ブラウザから実機へリアルタイムにアクセスし、手動操作でバグ再現、表示確認、インストール/アップグレード確認ができます。 ローカルクライアントからDevice Farmの管理Appiumエンドポイントに接続し、Appiumテストを実行することもできます。
2.3 自動アプリテスト
アプリとテストパッケージをアップロードし、複数デバイスで並列に自動テストを実行できます。 Appium、Espresso、XCTestなどのフレームワークや、Device Farmの管理テスト実行環境を利用します。
2.4 レポートと成果物
テスト完了後、結果サマリー、ログ、スクリーンショット、動画、テスト成果物を含むレポートが生成されます。 CI/CDパイプラインで失敗原因を分析し、リリース判定に利用できます。
2.5 デバイスプールと並列実行
プラットフォーム、メーカー、モデル、OSなどの条件でデバイスプールを作成できます。 複数デバイスに対して並列実行することで、リグレッションテスト時間を短縮できます。
2.6 VPC接続
Device FarmのテストホストやデバイスからVPC内のプライベートエンドポイントへ安全に接続できます。 社内API、検証環境、プライベートバックエンドを使うモバイルアプリのE2Eテストに有効です。
3. アーキテクチャおよび技術要素
- Device Farmプロジェクトを作成し、対象アプリやWebテストを管理する。
- Android APK/AAB、iOS IPA、テストパッケージ、test specファイルをアップロードする。
- デバイスプールを選択し、実行するテストフレームワークと環境を指定する。
- runを開始すると、各デバイスに対してjobが作成され、suite/testが実行される。
- テスト中にログ、スクリーンショット、動画、成果物が収集される。
- reportで成功/失敗、クラッシュ、性能、各デバイスの詳細結果を確認する。
- 必要に応じてCI/CD、VPC接続、リモートアクセスでデバッグと再実行を行う。
Device Farmの用語では、project、run、job、suite、test、device pool、report、sessionを押さえると、試験問題で構造を読み取りやすくなります。
4. セキュリティと認証・認可
- IAM最小権限: プロジェクト作成、アプリ/テストアップロード、run開始、レポート閲覧、リモートアクセスの権限を分離する。
- アプリとテストデータ: 機密データや本番認証情報をテストアプリに埋め込まず、検証用データを使う。
- VPC接続: プライベートAPIへ接続する場合、到達先、セキュリティグループ、認証情報を最小化する。
- 成果物管理: スクリーンショット、動画、ログに個人情報や秘密情報が含まれないようにする。
- リージョン: us-west-2限定であるため、データ所在地やコンプライアンス要件を確認する。
- 監査: CloudTrailやCI/CDログでテスト実行、アップロード、アクセスを追跡する。
5. 料金形態
Device Farmは、デバイス利用時間、リモートアクセス、並列実行、プライベートデバイス利用、関連CI/CDサービスでコストを考えます。
- デバイス分数: 自動テストやリモートアクセスで実機を使った時間に応じて課金される。
- 並列実行: 複数デバイスで同時実行すると総デバイス分数が増えるが、テスト時間は短縮できる。
- プライベートデバイス: 専有端末が必要な場合は別料金を確認する。
- CI/CD: CodeBuild、CodePipeline、S3、CloudWatch Logsなどの利用料金も考慮する。
- 最適化: 必要なデバイスプールに絞り、短いテスト、失敗時早期終了、並列度調整でコストを抑える。
6. よくあるアーキテクチャ・設計パターン
- モバイル互換性テスト: 主要端末/OSバージョンでクラッシュやUI崩れを確認する。
- CI/CD回帰テスト: CodePipelineやJenkinsからDevice Farmを呼び出し、リリース前に自動テストを実行する。
- 手動デバッグ: 特定端末でしか再現しない問題をリモートアクセスで調査する。
- プライベートAPI E2E: VPC接続で検証環境APIにアクセスし、実機からエンドツーエンドテストを行う。
- Webブラウザテスト: SeleniumなどでWebアプリのブラウザ互換性を確認する。
- リリース判定: レポート、動画、スクリーンショット、ログを品質ゲートとして利用する。
7. 設定・デプロイ手順(ハンズオン例)
- us-west-2リージョンでDevice Farmプロジェクトを作成する。
- Android/iOSアプリ、Webテスト、テストパッケージ、test specを準備する。
- 対象端末を選び、デバイスプールを作成する。
- 自動テストrunを作成し、フレームワーク、環境変数、VPC接続、タイムアウトを設定する。
- テストを実行し、report、ログ、スクリーンショット、動画を確認する。
- 失敗端末はリモートアクセスで再現確認し、必要に応じてCI/CDへ組み込む。
8. 試験で問われやすいポイント
8.1 サービス選択
- Q: AWS Device Farmは何をするサービス?
A: Android、iOS、WebアプリをAWS上の実物理デバイスでテストするサービス。 - Q: Device Farmが提供されるリージョンは?
A: us-west-2(オレゴン)のみ。 - Q: 実機をブラウザから手動操作してバグを再現する機能は?
A: リモートアクセス。
8.2 テスト実行
- Q: 複数端末で自動テストを並列実行するには?
A: アプリとテストをアップロードし、デバイスプールを選んでrunを開始する。 - Q: Device Farmの結果で確認できる主な成果物は?
A: レポート、ログ、スクリーンショット、動画、テスト成果物。 - Q: プライベートAPIを使うアプリを実機テストするには?
A: Device FarmのVPC接続を利用する。
8.3 料金と注意点
- Q: Device Farmの主な課金要素は?
A: デバイス利用時間、リモートアクセス、並列実行、プライベートデバイス、関連CI/CDサービス。 - Q: テストログや動画で注意すべきセキュリティ観点は?
A: 個人情報、認証情報、機密データが成果物に残らないようにすること。 - Q: エミュレーターではなくDevice Farmを使う主な理由は?
A: 実機固有のOS、画面、性能、センサー、メーカー差異を検証できるため。