unityのバックエンドにconohaオブジェクトストレージ を使う

Post on 24-Jun-2015

1.818 Views

Category:

Internet

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

2014年10月25日の「Unityプログラミング生放送勉強会@GMO Yours #マスコットアプリ文化祭」で発表したスライドです。

TRANSCRIPT

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

ご清聴ありがとうございました

top related