今回の内容
最近一般公開された、話題のAmazon AppStreamのサンプルを動かしてみました。
Amazon AppStreamの概要と、サンプルの動かし方を記載します。
公式ドキュメントがどうにも読みにくくて結構苦労しました。
もし何か間違っていることあったらご指摘ください。
あと、サンプルを動かし終わった後は、EC2を落とすことを絶対に忘れないようにしましょう。
Amazon AppStreamとはなにか
Amazon AppStreamは、スマホなどの端末から受け取った情報を元に、サーバー側でゲームの映像などを処理して、処理した結果をストリーミングでモバイルに返すことが出来るサービスです。
サーバー側でゲーム映像のレンダリングなどの重い処理をやっておき、その結果だけを返す事により、貧弱な端末でも高度なアプリケーションを動かすことが出来ます。
構成は、大きく3つに別れ、下記のようになっています。
◯スマホなどのデバイス上で動くアプリ
デバイスのタッチや文字入力などサーバーに送信、結果をもらって表示する。
Mac、Windows、iOS、Androidなどで動作。
◯AWS上でアプリを処理するサーバー
実際にゲームなどを処理するサーバー。
デバイスのタッチや文字入力などを受け取り、映像のレンダリングなどをして、結果をアプリに返す。
これはEC2インスタンス上のWindows 2008 R2環境上で動作する。
◯AWS上で動く認証サーバー
デバイスを認証して、アプリを処理するサーバーとつなげるための認証処理を行うサーバー。
これをなくす、Stand Alone Modeというのもあるが、本番稼働の場合は推奨されていない。
サンプルは、認証サーバーを省いたStand Alone Modeで動かせるらしいので、起動までをやってみます。
サーバー側をStand Aloneモードで構成する
CloudFormationというサーバー環境設定自動化サービスによって、AppStreamのサンプルを動かす環境が作れるように用意されています。
今回はその手順にしたがっています。
参考:
http://docs.aws.amazon.com/appstream/latest/developerguide/appstream-getting-started.html
Key Pairの作成
まずは今回のサーバー用のKey Pairを作成します。
「US East (N. Virginia)」のリージョンにて、
EC2のページを開き、「Key Pairs」の項目にて
「Create Key Pair」を押下。
↓
「AppStreamKeyPair」
という名前で、作ったキーを保存しておきます。
CloudFormationでサーバー構成
サーバー側をStandAloneモードにて作成します。
「US East (N. Virginia)」のリージョンにて、CloudFormationのページに移り、「Create New Stack」を押下。
↓
「Create A New Stack」のページにて、各項目を入力
[Name]
・StreamingHost
[Source]
・Provide an S3 URL to templateをチェック
・https://s3.amazonaws.com/appstream-public/AppStreamDeveloper.template
「Next Step」を押下
↓
「Specify Parameters」のページにて、各項目を入力
[ApplicationPresignedS3Url]
・https://s3.amazonaws.com/appstream-public/XStxDirectXServerInstaller_1.3.exe (自動で入っている)
[AppStreamSDKVersion]
・1.3 (自動で入っている)
[KeyPairName]
・AppStreamKeyPair (前手順で作ったKey Pairsの名前を入れる)
[LauncherPath]
・C:\app\XStxDirectXServer\XStxDirectXServer.exe (自動で入っている)
[MicrosoftVirtualAudioDrivers]
・yes
[NvidiaGRIDdrivers]
・yes
「Next Step」を押下
↓
「Options」ページではそのまま「Next Step」
↓
「Review」ページでもそのまま「Next Step」
↓
作成途中では「CREATE_IN_PROGRESS」になっているので、これが「CREATE_COMPLETE」になるまで待つ。
↓
EC2ページに、今回ので作成したインスタンスが起動しているはずなので、
これのPublic IPをメモ。
クライアント起動
クライアントサンプル用意
クライアントのサンプルは、下記ページのSDKの中に入っています。
http://docs.aws.amazon.com/appstream/latest/developerguide/appstream-downloads.html
現時点では、下記が最新でした。これをダウンロードします。
https://s3.amazonaws.com/appstream-sdk/AppStreamSDK_1.3.0.17.zip
クライアントサンプル起動
上記でダウンロードしたファイルを解凍して、「precompiled_samples」の中身を起動します。
私の環境はMacなので、下記を使いました。
AppStreamSDK_1.3.0.17/precompiled_samples/osx/build/AppStreamSample/AppStream.app
起動後、「AppStream Stand-Alone Mode」にチェックをいれて、用意したサーバーのPublic IPかPublic DNSを入力します。
そして「Connect」押下。
動いた!
下記ページに書いてあるように、AとかDとかで動かせます。
http://docs.aws.amazon.com/appstream/latest/developerguide/appstream-build-app-sample.html
なんでしょう・・・。正直な感想をいうと・・・、ちょっとしょぼい。
そしてすぐ動かなくなって落ちる!
さらにその後サーバー再起動するまで繋げなくなる!
・・・なんでしょう。この微妙な気持ちは・・・。
とりあえず、
EC2は絶対に落とし忘れないようにしましょう。
感想
とりあえずサンプル起動までしてみましたが、非常に公式ドキュメントがわかりづらく、サンプルが残念なこともあり、まだまともに使える段階にはない気がしました。
あと、サーバー側はDirectXとかを使うみたいですが、やったこと無いのでちょっとプログラムイメージがつかなかったです。
また、個人で試すには結構金がかかるので、しばらくは様子見かなと。
サービス自体は面白いので、また後ほどチャレンジしたいです。