conohaオブジェクトストレージ 利用ケース
TRANSCRIPT
ConoHaオブジェクトストレージ利用例
v1.0
ConoHaオブジェクトストレージについて
• VPS契約(最安で930円メモリ1G)があれば追加450円で(100G)のクラウドストレージが利用可能。(100Gごとに450円)
• ConoHa VPSからだけでなく様々なサーバーから利用可能(もちろんPCからも利用可能)
• 実装はOpenStack Swift
OpenStack Swift
• OpenStackコンポーネントのうち対Amazon S3に相当するもの
• 実装はPythonのWSGI
• REST APIでファイルをアップロード、ダウンロードする。
• WEB公開機能を使えばファイルはWEBページとして公開される
• オープンソース(github)なのでクライアントコード実装でつまっ
た時にソースを調べることが可能(変なエラーが返ってきた(;><)→ソース見よう・・ができる。)
OpenStackのリファレンスは神のごとく詳細に書かれている
• http://docs.openstack.org/api/openstack-object-
storage/1.0/content/index.html
• 分からないことは全部かいてある、業務製品並のしっかりしたリファレンス。
Amazon S3
ConoHaオブジェクトストレージのメリット
• 転送量が無料!
• リクエスト数が無料!
• オープンソースなのでサーバー側の挙動もある程度把握できる。
Swift用語集
• コンテナ—> ディレクトリ
• オブジェクト—> ファイル
ConoHaコントロールパネルのコンテナリスト
ConoHaコントロールパネル-オブジェクトストレージの利用履歴
ConoHaオブジェクトストレージサーバーとの通信に必要な情報
• テナントID
• テナント名
• ユーザー名
• API Auth URL = トークンの取得
• オブジェクトストレージエンドポイント = ファイルの格納先のルートパス
利用ケース1
家PCからファイルをConoHaオブジェクトストレージにアップロードする
• Cyberduck(AmazonS3やOpenStack Swift対応)を使う(Windows or OSXのアプリ)
https://cyberduck.io/
• いわゆるDropboxなどの個人用プライベートファイル置き場な使い方。
• ConoHaオブジェクトストレージを個人向けクラウド・ストレージとして考えた場合、月450円で100Gはかなりお得(VPS料金を考えなければ)
利用ケース2
サーバーで生成したファイルの置き場
• TwitterのStreamingAPIで取得したツイートデータcsvの格納(さくらサーバー→
ConoHaオブジェクトストレージ)
• Twitter Streaming APIで取得したデータから画像URLを抽出してダウンロードしたものをzip化して格納 (お名前クラウド→ ConoHaオブジェクトストレージ)
ソース: https://github.com/AKB428/Nico
ソース: https://github.com/AKB428/maki
利用ケース3
静的ページのサイト• https://objectstore-
r1nd1001.cnode.jp/v1/93a6500c0a1e4c68b976e5e46527145c/bgi_sample/in
dex.html
静的ページとはいえJSなどは動かせるためAjax
通信などを利用した半動的なページも構築可能
• https://github.com/AKB428/Bootstrap-Image-Gallery-Sample1
• コンテナをWEB公開する場合、CyberduckでもConoHaコントロールパネルでもコンテナのWEB
公開機能のON/OFFは制御できないため、Swiftに対して自前でREST APIを叩く必要がある。
• 通常は各種言語のバインディングライブラリを使用してコンテナに対してWEB公開をONにする。
• Rubyでの実装はつくってみました。
• https://github.com/AKB428/Chino
ConoHaオブジェクトストレージのURLが長くなる問題を解決するためNginxでリバースプロキシを構築
http://qiita.com/AKB428/items/8e2dd9d746d541e9336e
オブジェクト(ファイル)に暗号化した削除キーをメタデータにひもづけることで、データベースなしでのユーザーアクセスコントロール(ファイルをアップ
ロードした人しか削除させない)が可能
ConoHaオブジェクトストレージを使った画像アップロダーのメリット
• 一度上げたファイルはAPサーバー側では保存する必要がないためAPサーバーのディスクは少なくて済むこと。
• 画像へのリクエストはConoHaオブジェクトストレージサーバーが受け持つため実質、GETリクエストの負荷はほぼなくなる。
利用ケース5
スマートフォンアプリのデータ置き場
• 共通のアセットデータの格納、配布場所としての利用
• ゲームユーザーのセーブデータとしての利用(ConoHaオブジェクトストレージがどれだけのアクセスに耐えられるかは不明だが、ゲーム以外のアクセス負荷の多くないアプリなどでは使えそう。)
以上