52
1 分分分分分分 分分分分分分分分 VPS https://www.conoha.jp/unity1025 Unity 分分分分分分分分 ConoHa 分分分分分分分分分分分 分分分 2014/10/25 Unity 分分分分分分分分分分分分分GMO Yours @hironobu_s

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

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: UnityのバックエンドにConoHaオブジェクトストレージ を使う

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

Page 2: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

自己紹介• 斉藤弘信 (@hironobu_s)

• 所属 :GMO インターネット ホスティング事業部

• Web 開発とインフラエンジニアの中間

• 8 月頃から ConoHa の人になりました

• 緑陣営 Lv7

Page 3: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

みなさん、この人達を知ってますか?

Page 4: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

美雲このは• 中学一年生 ( 栃木県出身 )• 150cm 〜• 好き : 那須地域牧場の牛乳• 嫌い : 栃木の風土食「しもつかれ」

Page 5: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

美雲あんず• 中学一年生 ( 青森県出身 )• 148cm• 好き : アップルパイ大好き。• 趣味 : 料理

Page 6: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

ConoHa VPS

• VPS ホスティングサービス

• 古い言い方だとレンタルサーバ

• 仮想サーバを 930 円から

• さまざまな OS に対応

Page 7: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

(ConoHa デモ )

Page 8: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

ConoHa クーポン• ConoHa のサービスを 3,000 円分使え

ます

• VPS でもオブジェクトストレージでも

• 新規アカウント登録すると、さらに 1,500 円分追加されます

• あわせて 4,500 円• 一番安いプランで 4 ヶ月分

Page 9: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

クーポンの意味

• とにかく使ってもらいたい

• 性能、使い勝手は使わないとわからない

• 事業者側の立場としてはスケールメリットを生かしたい

Page 10: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

宣伝乙w

Page 11: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

本題

Page 12: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

アジェンダ• ConoHa オブジェクトストレージの紹介

• Unity アプリのバックエンドストレージとして

• サンプルアプリケーションのデモ

• REST API と HTTP の基礎

• メタデータ

• Unity アプリから使う

Page 13: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

サンプルコードとデモアプリ

Page 14: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

ConoHaオブジェクトストレージ

Page 15: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

ConoHa オブジェクトストレージ

• 今年 9 月からの新オプションサービス

• インターネット経由で使えるストレージ

• 450 円 /100GB 〜

• 容量無制限、転送量課金なし

Page 16: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

Unity アプリのバックエンドとして• ネットワーク経由 (https) で簡単にデータを操作

• Unity の WWW モジュールが便利

• データの種類は問わない ( 画像、動画、ログ、その他 )

• メタデータで情報を付加できる (DB いらず )

• Asset などアプリの外部ストレージの候補として

Page 17: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

今回はサンプルアプリケーションを用意しました

Page 18: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

サンプルアプリケーションの紹介

• Unity から REST API を操作

• オブジェクトストレージからテクスチャ (png) を読み込む

• 同時にメタデータからプロフィール情報を取得

• ぐるぐる回す

Page 19: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

( デモ )

Page 20: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

オブジェクトストレージ解説

今日はがっつりインフラの話をします

Page 21: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

特徴• REST API を通じてアクセスする

• すべてのデータをオブジェクトとして扱う

• オブジェクトにはメタデータを付加できる

• フォルダなどの概念がないフラットな構造

• 冗長化による高い信頼性

• 基盤は OpenStack Swift

Page 22: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

OpenStack• オープンソースのクラウド基盤構築ソフトウェア

• IaaS の基盤である、仮想マシン、ストレージ、ネットワークなどを統合管理する

• http://www.openstack.org/

Page 23: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

コントロールパネルと統合ブラウザからちょっとした管理ができます

Page 24: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

Page 25: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

REST API

メタデータ

2 つのポイント

Page 26: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

REST API ?

Page 27: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

HTTP のおさらい• Web サイトを表示したりするときに使う

• HTTP クライアントと HTTP サーバがある

• プロトコルは PlainText

• リクエストには「メソッド」を指定する

• リクエスト、レスポンス共にヘッダーと Body がある

その前に

Page 28: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

Page 29: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

REST

• オブジェクトストレージ API のモデル

• リソースを URI で定義し標準的な HTTP メソッドで操作をします

• メソッドは GET POST PUT DELETE HEAD など

• 概念や設計を知りたい人は Wikipediaへ

Page 30: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

URI 構造• URI はオブジェクトを一意に特定できる

• URI に対して GET, POST などのメソッドを使って操作する

/v1/{ アカウント名 }/{ コンテナ名 }/{ オブジェクトID}

https://objectstore-r1nd1001.cnode.jp/v1/470710ce0ae240608/images/sample.png

例 )

Page 31: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

Page 32: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

メタデータ ?

Page 33: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

メタデータ• オブジェクトストレージの特徴の一つ

• オブジェクトに様々な情報を付加できる

• コンテナにも付加できる

• 例 ) 画像データに撮影者、撮影場所を付加

• 例 ) ログデータにサーバ名、アプリケーション名

Page 34: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

• HTTPヘッダを用います

• X-Object-Meta-* という名前を付けます

• X-Object-Meta-Name, X-Object-Meta-Age など

• 詳細はデモアプリケーションの解説で

メタデータの扱い方

Page 35: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

Page 36: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

ConoHa技術ブログ

• オブジェクトストレージの使い方

• VPS全般で使える技術情報

• 脆弱性情報 (bash, OpenSSL)

• 楽しいマンガ

https://www.conoha.jp/blog/

Page 37: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

Unity アプリとの連携

Page 38: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

Unity からオブジェクトストレージ

• Unity の WWW モジュールを使う

• WWW モジュールは、いわゆる HTTP クライアント

• オブジェクトストレージに直接接続できる

• メタデータ (HTTPヘッダ ) も扱えるサンプルアプリ

Page 39: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

• Cube, Directional Light, Material, Script を追加

• Material, Script を Cube に Add Component する

• UnityScript(US) を書く

• WWW モジュールを使ってオブジェクトストレージから画像データを取得

• Cube のテクスチャに貼り付け

WWW モジュールの動作を確認する

Page 40: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

(WWW モジュールのデモ )

Page 41: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

さらに活用する

• 今のデモは普通の Web サーバでもできる

• オブジェクトストレージ固有の機能を活用します

Page 42: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

サンプルアプリ• オブジェクトストレージからオブジェクトの一覧を

取得する

• 上記の JSON データをパースする

• そのリストを元にキャラを切り替えるボタンを設置

• さらに画像のメタデータをプロフィールとして表示する

Page 43: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

JSON を扱う• JSON とは JavaScript 構文のデータフォーマット

• オブジェクトストレージが JSON のデータを返す

• Unity で扱うにはいろいろ外部ライブラリがある

• 今回は単一スクリプトで手軽だった MiniJSON.csを使ってみた。

Page 44: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

メタデータ

• 画像データを取得する際にメタデータも取得できる

• 通常の実装では、画像はファイル、プロフィールは DB に保存したりする

• オブジェクトストレージでは画像とプロフィール情報が一度に取得できる

Page 45: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

( コードの解説をする )

Page 46: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

ちょっとした注意

Page 47: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

CORS• WebPlayer向けにビルドした場合の話

• Cross-Origin Resource Sharing

• 異なるドメイン間でリソースの共有ができない

• オブジェクトストレージにアクセスできなくなる

• 詳細はぐぐってください

Page 48: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

PolicyError!!!

Page 49: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

回避策• オブジェクトストレージに CNAME を割り当てる

• 同オリジンになるリバースプロクシを作る

• アプリをオブジェクトストレージにホストする(非現実的 )

Page 50: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

まとめ

Page 51: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

オブジェクトストレージをUnity アプリのバックエンドに

• WWW モジュールなどで簡単にデータを取得

• メタデータという仕組みがあるため、メディアデータをテキストデータを一度に扱える

• 今回は紹介しなかったが、オブジェクトの保存も同じように HTTP で行えるので実装が楽

• 容量無制限、転送量課金無し

Page 52: UnityのバックエンドにConoHaオブジェクトストレージ を使う

1 分ではじめる、クラウドのような VPS

https://www.conoha.jp/unity1025

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