LotosLabo

プログラミング技術とか気になった情報を載せていきます

【ツール紹介】EMLauncherの導入

EMLauncherとは


KLabさんより開発されたテストアプリ配信ツールです。
スマートフォンのアプリファイル(Androidはapk,iOSipa)をアップロードすることで、
手軽に端末にインストールすることが可能になります。

www.klab.com


導入

EMLauncherは個人でも使えるそうなので、導入してみました。


<準備物>
・メールアドレス
AWSアカウント
Bashとかsshで接続できるシェル

EMLauncherのAMIサンプルからAWSインスタンス作成

AWSにログインしている状態で、以下のアドレスにアクセスします。

https://console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#Images:visibility=public-images;search=ami-9b295f9a


f:id:lo25131:20151108163333j:plain

表示されている項目を右クリックから[作成]を行います。


f:id:lo25131:20151108163449j:plain


右下の次の手順へ移ります。


f:id:lo25131:20151108163641j:plain

削除保護の有効化だけチェックを入れて、
次の手順に移ります。

ステップ4は特に変更することなく、次の手順へ移ります。


f:id:lo25131:20151108163850j:plain

ステップ5ではインスタンスのタグ付けとして、
名前を入力しておきます。
今回は「EMLauncher」とかでいいと思います。

入力したら次の手順に移ります。


f:id:lo25131:20151108164142j:plain



セキュリティの設定を行います。
ルールの追加より、
「HTTP」と「HTTPS」を追加しておけば
大丈夫だと思います。

次に確認と作成を押します。


f:id:lo25131:20151108164514j:plain


ダイアログが表示されると思いますので、
一番下の「このインスタンのブートボリューム~」を選択して、
次へを押します。


f:id:lo25131:20151108165311j:plain


確認画面が表示されるので、作成を押すと、
秘密鍵を作成しろと言われるので、「新しいキーペアの作成」を選択し、
キーペア名を入力して、ダウンロードしておきます。

最後にインスタンスの作成を押して完了となります。



その後インスタンスの一覧画面へ遷移するので、先ほど作成したEMLauncherのインスタンスの状態が
「running」となれば作成終了です。

f:id:lo25131:20151108164835j:plain


EMLauncherで使用するためのストレージを作成


AWSウェブサービスより、S3を選択します。

f:id:lo25131:20151108170638j:plain


右上のバケットを作成より、新規でバケットを作成します。
バケット名は何でも構いません。

f:id:lo25131:20151108170906j:plain


入力したら作成を押して完了となります。


EMLauncherのインスタンスのIPを固定にする

作成したインスタンスではIPアドレスでは、インスタンスを再起動した時に
IPが変化してしまうので、固定として持ち続けるように設定します。


先ほどのインスタンス画面に戻り、左のメニューより「Elastic IP」を選択します。

新しいアドレスの割当を選択し、アドレスの関連付けを行います。

f:id:lo25131:20151108171337j:plain


先ほど作成したインスタンス名を入力して関連付けます。

AWSのIAMの設定

ユーザ、グループ、アクセス権を設定します。
この項目を設定し忘れるとEMLauncherは正しく動作しないので忘れないで下さい。


AWSのサービスタブより、IAMを選択します。

f:id:lo25131:20151108172138j:plain


IAMの5つのセキュリティステータスを完了すれば設定完了となります。

f:id:lo25131:20151108172151j:plain


ルートアカウントのMFAでは、表示されたQRコードを読み取ります。
QRコードスマートフォンアプリの「Authy」というアプリを使って、
読み取り、表示された認証コードを入力します。

グループの割当では、一番上のポリシーのみ選択すれば大丈夫だと思います。

個々のIAMユーザの作成では、作成したユーザのアクセスキーとシークレットキーを
今後使う必要があるので、これをメモっておきます。


sshの接続


インスタンスの作成時に取得した秘密鍵を使用してsshでサーバにアクセスし、
一部設定を変更します。
Bashからアクセスするのですが、私の場合はGit Bashでアクセスします。


まず秘密鍵に対して、パーミッションを変更しておきます。
chmod 600 名前.pem

続いて、sshでアクセスします。
ssh -i 鍵名.pem ec2-user@インスタンスのパブリックIP

設定ファイルを開きます。
vim /home/ohoflight/emlauncher/config/emlauncher_config.php


ここでは、以下の設定の変更を行います。
Google認証設定
AWSのユーザキー指定
・ストレージ名の指定


Google認証設定

ログイン時にGoogleの認証が必要となっているため、これは特に使わないので、
使用しないように設定を変更します。

変更前
'enable_google_auth' => true
変更後
'enable_google_auth' => false


AWSのユーザキー指定

IAMの個人ユーザを作成した時のキーを入力します。

変更前
'key' => 'xxxxxxxxxxxxxxxxxxxx'
'secret' => 'xxxxxxxxxxxxxxxxxxxx'
変更後
'key' => 'キー'
'secret' => 'パスワード'


・ストレージ名の指定

S3で作成した名前を入力します。

変更前
'bucket_name' => 'emlauncher'
変更後
'bucket_name' => '作成した名前'


接続の確認


インスタンスのパブリックIPを入力し、EMLauncherにアクセスできるか確認します。

http://パプリックIP


f:id:lo25131:20151108175627j:plain


ログイン画面が表示されれば大丈夫です。

メールアドレスの登録


ログインするためにメールアドレスの登録を行います。
EMLauncherでは登録する画面がないので、テーブルに直接MySQLで叩いて、
登録します。

sshで接続した状態で、テーブルを指定してメールアドレスのみ追加します。
mysql -uroot emlauncher -e "INSERT INTO user_pass (mail) VALUES ('登録したいメールアドレス');"


メールアドレスのみテーブルに登録して、ログイン画面「forget password」より、
登録したメールアドレス先にパスワードの変更画面のアクセスURLを送り、
パスワードを登録します。

なお、確認したところ一部のメールアドレスにはメールフィルターか何かにより、
迷惑メールにもいかず、ブロックされてしまいますのでGoogleMailが良いと思われます。


パスワードを登録後、ログイン画面より、メールアドレスとパスワードを入力して、
ログインできれば完了です。

登録したアプリケーションを他のユーザと共有する


登録したアプリケーションを他のユーザと登録するには、
共有したいユーザのメールアドレスをテーブルに追加した後、そのアドレスを
「Preferences」という項目からOwnerにメールアドレスを追加することで、
他のユーザとの共有ができます。


f:id:lo25131:20151108180459j:plain

セキュリティの強化

今の状態ではインターネットに接続している他のユーザにもこのページが見られてしまうため、
アクセス制限、セキュリティ強化をしなくてはなりません。

手っ取り早いのはIPアドレスによる制限ですが、SSLより暗号化したり、
また簡易ですがベーシック認証を導入したりすることが必要です。


まとめ

スマートフォンアプリを簡易的に、他のバージョンもインストールできるようにしたい。
という時にはとても便利なツールです。スマートフォンからEMLauncherにアクセスし、
インストールボタンを押すだけで端末にインストールができるのでいちいちPCに接続して、
しなくても済むので時間の節約にもなります。
是非試してみてください。