conohaオブジェクトストレージ 利用ケース

20
ConoHaオブジェクト ストレージ利用例 v1.0

Upload: junichi-noda

Post on 20-Jul-2015

285 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ConoHaオブジェクトストレージ 利用ケース

ConoHaオブジェクトストレージ利用例

v1.0

Page 2: ConoHaオブジェクトストレージ 利用ケース

ConoHaオブジェクトストレージについて

• VPS契約(最安で930円メモリ1G)があれば追加450円で(100G)のクラウドストレージが利用可能。(100Gごとに450円)

• ConoHa VPSからだけでなく様々なサーバーから利用可能(もちろんPCからも利用可能)

• 実装はOpenStack Swift

Page 3: ConoHaオブジェクトストレージ 利用ケース

OpenStack Swift

• OpenStackコンポーネントのうち対Amazon S3に相当するもの

• 実装はPythonのWSGI

• REST APIでファイルをアップロード、ダウンロードする。

• WEB公開機能を使えばファイルはWEBページとして公開される

• オープンソース(github)なのでクライアントコード実装でつまっ

た時にソースを調べることが可能(変なエラーが返ってきた(;><)→ソース見よう・・ができる。)

Page 4: ConoHaオブジェクトストレージ 利用ケース

OpenStackのリファレンスは神のごとく詳細に書かれている

• http://docs.openstack.org/api/openstack-object-

storage/1.0/content/index.html

• 分からないことは全部かいてある、業務製品並のしっかりしたリファレンス。

Page 5: ConoHaオブジェクトストレージ 利用ケース

Amazon S3

Page 6: ConoHaオブジェクトストレージ 利用ケース

ConoHaオブジェクトストレージのメリット

• 転送量が無料!

• リクエスト数が無料!

• オープンソースなのでサーバー側の挙動もある程度把握できる。

Page 7: ConoHaオブジェクトストレージ 利用ケース

Swift用語集

• コンテナ—> ディレクトリ

• オブジェクト—> ファイル

Page 8: ConoHaオブジェクトストレージ 利用ケース

ConoHaコントロールパネルのコンテナリスト

Page 9: ConoHaオブジェクトストレージ 利用ケース

ConoHaコントロールパネル-オブジェクトストレージの利用履歴

Page 10: ConoHaオブジェクトストレージ 利用ケース

ConoHaオブジェクトストレージサーバーとの通信に必要な情報

• テナントID

• テナント名

• ユーザー名

• API Auth URL = トークンの取得

• オブジェクトストレージエンドポイント = ファイルの格納先のルートパス

Page 11: ConoHaオブジェクトストレージ 利用ケース

利用ケース1

家PCからファイルをConoHaオブジェクトストレージにアップロードする

• Cyberduck(AmazonS3やOpenStack Swift対応)を使う(Windows or OSXのアプリ)

https://cyberduck.io/

• いわゆるDropboxなどの個人用プライベートファイル置き場な使い方。

• ConoHaオブジェクトストレージを個人向けクラウド・ストレージとして考えた場合、月450円で100Gはかなりお得(VPS料金を考えなければ)

Page 12: ConoHaオブジェクトストレージ 利用ケース

利用ケース2

サーバーで生成したファイルの置き場

• TwitterのStreamingAPIで取得したツイートデータcsvの格納(さくらサーバー→

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

• Twitter Streaming APIで取得したデータから画像URLを抽出してダウンロードしたものをzip化して格納 (お名前クラウド→ ConoHaオブジェクトストレージ)

ソース: https://github.com/AKB428/Nico

ソース: https://github.com/AKB428/maki

Page 13: ConoHaオブジェクトストレージ 利用ケース

利用ケース3

静的ページのサイト• https://objectstore-

r1nd1001.cnode.jp/v1/93a6500c0a1e4c68b976e5e46527145c/bgi_sample/in

dex.html

Page 14: ConoHaオブジェクトストレージ 利用ケース

静的ページとはいえJSなどは動かせるためAjax

通信などを利用した半動的なページも構築可能

• https://github.com/AKB428/Bootstrap-Image-Gallery-Sample1

Page 15: ConoHaオブジェクトストレージ 利用ケース

• コンテナをWEB公開する場合、CyberduckでもConoHaコントロールパネルでもコンテナのWEB

公開機能のON/OFFは制御できないため、Swiftに対して自前でREST APIを叩く必要がある。

• 通常は各種言語のバインディングライブラリを使用してコンテナに対してWEB公開をONにする。

• Rubyでの実装はつくってみました。

• https://github.com/AKB428/Chino

Page 16: ConoHaオブジェクトストレージ 利用ケース

利用ケース4

画像アップローダー

• http://imgur.tokyo/

Page 17: ConoHaオブジェクトストレージ 利用ケース

ConoHaオブジェクトストレージのURLが長くなる問題を解決するためNginxでリバースプロキシを構築

http://qiita.com/AKB428/items/8e2dd9d746d541e9336e

オブジェクト(ファイル)に暗号化した削除キーをメタデータにひもづけることで、データベースなしでのユーザーアクセスコントロール(ファイルをアップ

ロードした人しか削除させない)が可能

Page 18: ConoHaオブジェクトストレージ 利用ケース

ConoHaオブジェクトストレージを使った画像アップロダーのメリット

• 一度上げたファイルはAPサーバー側では保存する必要がないためAPサーバーのディスクは少なくて済むこと。

• 画像へのリクエストはConoHaオブジェクトストレージサーバーが受け持つため実質、GETリクエストの負荷はほぼなくなる。

Page 19: ConoHaオブジェクトストレージ 利用ケース

利用ケース5

スマートフォンアプリのデータ置き場

• 共通のアセットデータの格納、配布場所としての利用

• ゲームユーザーのセーブデータとしての利用(ConoHaオブジェクトストレージがどれだけのアクセスに耐えられるかは不明だが、ゲーム以外のアクセス負荷の多くないアプリなどでは使えそう。)

Page 20: ConoHaオブジェクトストレージ 利用ケース

以上