Upload
hironobu-saitoh
View
1.818
Download
0
Embed Size (px)
DESCRIPTION
2014年10月25日の「Unityプログラミング生放送勉強会@GMO Yours #マスコットアプリ文化祭」で発表したスライドです。
Citation preview
Copyright (c) 2014 GMO Internet, Inc. All Rights Reserved.
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
Unity のバックエンドにConoHa オブジェクトストレージ
を使う
2014/10/25Unity プログラミング生放送勉強会@ GMO Yours
@hironobu_s
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
自己紹介• 斉藤弘信 (@hironobu_s)
• 所属 :GMO インターネット ホスティング事業部
• Web 開発とインフラエンジニアの中間
• 8 月頃から ConoHa の人になりました
• 緑陣営 Lv7
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
みなさん、この人達を知ってますか?
1 分ではじめる、クラウドのような VPS
美雲このは• 中学一年生 ( 栃木県出身 )• 150cm 〜• 好き : 那須地域牧場の牛乳• 嫌い : 栃木の風土食「しもつかれ」
1 分ではじめる、クラウドのような VPS
美雲あんず• 中学一年生 ( 青森県出身 )• 148cm• 好き : アップルパイ大好き。• 趣味 : 料理
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
ConoHa VPS
• VPS ホスティングサービス
• 古い言い方だとレンタルサーバ
• 仮想サーバを 930 円から
• さまざまな OS に対応
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
(ConoHa デモ )
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
ConoHa クーポン• ConoHa のサービスを 3,000 円分使え
ます
• VPS でもオブジェクトストレージでも
• 新規アカウント登録すると、さらに 1,500 円分追加されます
• あわせて 4,500 円• 一番安いプランで 4 ヶ月分
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
クーポンの意味
• とにかく使ってもらいたい
• 性能、使い勝手は使わないとわからない
• 事業者側の立場としてはスケールメリットを生かしたい
1 分ではじめる、クラウドのような VPS
宣伝乙w
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
本題
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
アジェンダ• ConoHa オブジェクトストレージの紹介
• Unity アプリのバックエンドストレージとして
• サンプルアプリケーションのデモ
• REST API と HTTP の基礎
• メタデータ
• Unity アプリから使う
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
サンプルコードとデモアプリ
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
ConoHaオブジェクトストレージ
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
ConoHa オブジェクトストレージ
• 今年 9 月からの新オプションサービス
• インターネット経由で使えるストレージ
• 450 円 /100GB 〜
• 容量無制限、転送量課金なし
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
Unity アプリのバックエンドとして• ネットワーク経由 (https) で簡単にデータを操作
• Unity の WWW モジュールが便利
• データの種類は問わない ( 画像、動画、ログ、その他 )
• メタデータで情報を付加できる (DB いらず )
• Asset などアプリの外部ストレージの候補として
1 分ではじめる、クラウドのような VPS
今回はサンプルアプリケーションを用意しました
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
サンプルアプリケーションの紹介
• Unity から REST API を操作
• オブジェクトストレージからテクスチャ (png) を読み込む
• 同時にメタデータからプロフィール情報を取得
• ぐるぐる回す
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
( デモ )
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
オブジェクトストレージ解説
今日はがっつりインフラの話をします
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
特徴• REST API を通じてアクセスする
• すべてのデータをオブジェクトとして扱う
• オブジェクトにはメタデータを付加できる
• フォルダなどの概念がないフラットな構造
• 冗長化による高い信頼性
• 基盤は OpenStack Swift
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
OpenStack• オープンソースのクラウド基盤構築ソフトウェア
• IaaS の基盤である、仮想マシン、ストレージ、ネットワークなどを統合管理する
• http://www.openstack.org/
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
コントロールパネルと統合ブラウザからちょっとした管理ができます
1 分ではじめる、クラウドのような VPS
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
REST API
メタデータ
2 つのポイント
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
REST API ?
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
HTTP のおさらい• Web サイトを表示したりするときに使う
• HTTP クライアントと HTTP サーバがある
• プロトコルは PlainText
• リクエストには「メソッド」を指定する
• リクエスト、レスポンス共にヘッダーと Body がある
その前に
1 分ではじめる、クラウドのような VPS
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
REST
• オブジェクトストレージ API のモデル
• リソースを URI で定義し標準的な HTTP メソッドで操作をします
• メソッドは GET POST PUT DELETE HEAD など
• 概念や設計を知りたい人は Wikipediaへ
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
URI 構造• URI はオブジェクトを一意に特定できる
• URI に対して GET, POST などのメソッドを使って操作する
/v1/{ アカウント名 }/{ コンテナ名 }/{ オブジェクトID}
https://objectstore-r1nd1001.cnode.jp/v1/470710ce0ae240608/images/sample.png
例 )
1 分ではじめる、クラウドのような VPS
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
メタデータ ?
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
メタデータ• オブジェクトストレージの特徴の一つ
• オブジェクトに様々な情報を付加できる
• コンテナにも付加できる
• 例 ) 画像データに撮影者、撮影場所を付加
• 例 ) ログデータにサーバ名、アプリケーション名
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
• HTTPヘッダを用います
• X-Object-Meta-* という名前を付けます
• X-Object-Meta-Name, X-Object-Meta-Age など
• 詳細はデモアプリケーションの解説で
メタデータの扱い方
1 分ではじめる、クラウドのような VPS
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
ConoHa技術ブログ
• オブジェクトストレージの使い方
• VPS全般で使える技術情報
• 脆弱性情報 (bash, OpenSSL)
• 楽しいマンガ
https://www.conoha.jp/blog/
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
Unity アプリとの連携
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
Unity からオブジェクトストレージ
• Unity の WWW モジュールを使う
• WWW モジュールは、いわゆる HTTP クライアント
• オブジェクトストレージに直接接続できる
• メタデータ (HTTPヘッダ ) も扱えるサンプルアプリ
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
• Cube, Directional Light, Material, Script を追加
• Material, Script を Cube に Add Component する
• UnityScript(US) を書く
• WWW モジュールを使ってオブジェクトストレージから画像データを取得
• Cube のテクスチャに貼り付け
WWW モジュールの動作を確認する
1 分ではじめる、クラウドのような VPS
(WWW モジュールのデモ )
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
さらに活用する
• 今のデモは普通の Web サーバでもできる
• オブジェクトストレージ固有の機能を活用します
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
サンプルアプリ• オブジェクトストレージからオブジェクトの一覧を
取得する
• 上記の JSON データをパースする
• そのリストを元にキャラを切り替えるボタンを設置
• さらに画像のメタデータをプロフィールとして表示する
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
JSON を扱う• JSON とは JavaScript 構文のデータフォーマット
• オブジェクトストレージが JSON のデータを返す
• Unity で扱うにはいろいろ外部ライブラリがある
• 今回は単一スクリプトで手軽だった MiniJSON.csを使ってみた。
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
メタデータ
• 画像データを取得する際にメタデータも取得できる
• 通常の実装では、画像はファイル、プロフィールは DB に保存したりする
• オブジェクトストレージでは画像とプロフィール情報が一度に取得できる
1 分ではじめる、クラウドのような VPS
( コードの解説をする )
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
ちょっとした注意
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
CORS• WebPlayer向けにビルドした場合の話
• Cross-Origin Resource Sharing
• 異なるドメイン間でリソースの共有ができない
• オブジェクトストレージにアクセスできなくなる
• 詳細はぐぐってください
1 分ではじめる、クラウドのような VPS
PolicyError!!!
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
回避策• オブジェクトストレージに CNAME を割り当てる
• 同オリジンになるリバースプロクシを作る
• アプリをオブジェクトストレージにホストする(非現実的 )
1 分ではじめる、クラウドのような VPS
まとめ
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
オブジェクトストレージをUnity アプリのバックエンドに
• WWW モジュールなどで簡単にデータを取得
• メタデータという仕組みがあるため、メディアデータをテキストデータを一度に扱える
• 今回は紹介しなかったが、オブジェクトの保存も同じように HTTP で行えるので実装が楽
• 容量無制限、転送量課金無し
1 分ではじめる、クラウドのような VPS
https://www.conoha.jp/unity1025
ご清聴ありがとうございました