はじめに
ローカルでのAndroidエミュ重くないですか?
ストレージ食い過ぎではないですか?
あとメモリ(ry
UnityエンジニアなんてやってるとUnityだけでもSSDがパンパンなのにAndroidのエミュとか入れたくないなぁと思うのです。
AzureとかでAndroidエミュ入れられないかなーと調べていたら、AWSかGCP上でGenymotionを走らせられるそうなのでAWSで試して見ました。
本記事は
- Androidの開発環境が整っていてHalloWorldができる人
- SSH使える人
を対象にしています。
Genymotionってなに?
有料の仮想Androidです。開発時にデバッグや自動テストなどで様々なOSバージョン、画面サイズでチェックする時に便利なやつです。
ローカルPCで動く物とCloudで動作される物の2種類あります。一番安いプランは各々下記の通りです。
ローカル | 136ドル/年 |
クラウド | 0.5ドル/時 |
他にも法人向けプランやSaaSなども提供してるので詳細は公式HPをご覧ください。
はじめてのAWS EC2!
「初めての人向け」じゃなくて「書いてる人が初めて」というヤツです。
チュートリアル動画が公式であるのでこれを見ながら進めていきます。(動画とUIが多少違いますが)
**Genymotion Cloud : Android 6.0 (marshmallow)**を使用します。まずお見積もりです。
リージョンはオハイオ州のを使います。(安いので)
Genymotionの推奨はm4.xLargeですが、性能は必要ないのでt2.smallを選びます。
t2.smallを選ぶとGenymotionが1時間0.125ドルに割引きされるようです。

値段は確認したので仮想PCを追加します。
まずは管理コンソールに行きます。
そして「仮想マシンを起動する」を選択。

「Amazon Marketplace」を選択しGenymotionを検索します。
ここで再度値段チェック。

インスタンスを選びます。前述の通り最低スペックのt2.smallを選択。
「手順 3: インスタンスの詳細の設定」「手順 4: ストレージの追加」「手順 5: タグの追加」「手順 6: セキュリティグループの設定」を初期設定のまま行きます。(SSHのポートは変えた方がセキュリティ的によかったかも。)
インスタンスの起動前に公開鍵認証の設定を要求されるので、初めての場合はキーペア作成をします。SSHでログインするときに使うので「キーペアをダウンロード」を忘れないように。(ダウンロードしないと先に進めない仕様ですが)
これでインスタンスが動き始めました。
Androidの画面を出す為にパブリックDNS(もちくはIPv4)のアドレスにアクセスします。

Chromeさんに怒られますがそのまま接続をします。
ログインを求められるので
- ID:genymotion
- PASS:インスタンスID(画像だと「i-004b……」のもの)
でログインします。
そうするとAndroidのホーム画面が表示され自由に弄れるようになります。
めっちゃ簡単でした!
SSH接続
adbコマンドを弄れなければなにもできないのでSSHでadbを叩けるようにします。
$ chmod 0600 「秘密鍵」
$ ssh -i 「秘密鍵」 shell@「AWSのIPアドレス」
ここまで普通のSSHログインです。続いて下記コマンドでADBを有効にします。
$ setprop persist.sys.usb.config adb
ADBが有効になりました。5555ポートに接続するとアクセスできるのですが、認証などがないので普通にポート開放すると入り放題になってしまいます。
対策としては2種類で
- SSHポートフォワーディング
- AWSへのアクセスIP制限
が考えられます。今回は(公衆Wifi経由で実験してたので)前者のSSHポートフォワーディングでいきます。
$ ssh -i 「秘密鍵」 -NL 5555:localhost:5555 shell@「AWSのIPアドレス」
ローカルの5555番ポートに設定したら、新しいターミナルを起動してADBコマンドでデバイスとして接続させます。
adb devicesの一覧に5555番ポート上のデバイスが見られればOKです。
$ adb connect localhost:5555
connected to localhost:5555
$ adb devices
List of devices attached
localhost:5555 device
ここまで来るとWifi経由でAndroidのADB繋いでるのと変わらないのでUnityのBuild SettingsからRun Device上にGenymotion端末が現れます。
あとはBuild And Runをいつも通り押して上げればOKです。
もちろん、デバッガを刺すこともできますし、

Consoleでログを見る事もできます。Profilerも使えます。

あとがき
思った以上に簡単にAndroidのエミュレータをクラウドで走らせることができました。
使ってみた感想としては、t2.smallだとかなり重かったので素直にm4.xLargeを使った方が良いと思います。
また、x86AndroidなのでARMのDebugに使う事が出来ない点がネックですが、どうしようもないので諦めます。
最後に2時間くらい使って下記料金でした。Genymotionが初めて使う場合数日間無料なので実質EC2代だけになっています。