ConoHa オブジェクトストレージを使う方法をご紹介します。
目次
条件
- サーバー:Ubuntu 18.04
- クライアント:Windows 10 64 bit
- Cyberduck
ConoHa オブジェクトストレージとは?
オブジェクトストレージの特徴
- データを個別のオブジェクトとして保存します。
- フォルダ階層のない単一のフラットな構造で保存されます。
- データ(保存する画像、動画など)は固有のID(URI)を持ちます。
- データへのアクセスはRESTful API(HTTPによる通信)で行うことが出来ます。
ConoHa オブジェクトストレージの利点
- データ転送量が無料です。
- 上限なしで容量を増やすことが出来ます。
- 料金が安いです。(100GBあたり月額450円)
オブジェクトストレージ設定
Conohaにログインして、左メニューの「オブジェクトストレージ」を選択します。
右側にある、設定のアイコンをクリックします。
ディスク容量を指定する画面が表示されるので、容量を選択して「はい」を押します。
選択肢は、100GB/200GB/300GB/1000GB/2000GB です。
オブジェクトストレージを追加すると、画面でリソース(ディスク容量、リクエスト数)を確認できるようになります。
Cyberduckを使用してオブジェクトストレージを操作
クライアントソフトウェアのCyberduckを使用することで、コマンド操作をせずにオブジェクトストレージのファイルの管理が簡単にできます。(出典:オブジェクトストレージを使う(Cyberduck編))
事前準備
APIユーザー追加
ConoHaのコントロールパネルにて、左メニューのAPIを選択します。
APIユーザーが存在しないので、右下の「+ユーザー」をクリックします。
パスワードを入力して、保存ボタンを押します。
APIユーザーが作成されます。
Cyberduckのインストール
以下のサイトからインストーラをダウンロードしてインストールを実行します。
https://cyberduck.io/download/
Cyberduckによる接続
Cyberduckを起動して、メニューのブックマーク > 新規ブックマークを選択します。
API情報を参照しながら、以下のように入力します。
- リスト選択:OpenStack Swift (keystone 2.0)
- ニックネーム:任意の文字列
- サーバー:エンドポイントのIdentity Service
- Tenant ID:Access Key:テナント情報のテナント名:APIのユーザー名
入力後、右上の×ボタンを押して画面を閉じます。
新規ブックマークの入力画面を閉じると、以下のように表示されます。
ブックマークをダブルクリックすると、ログイン画面が表示されます。
Secret Keyに、APIユーザーのパスワードを入力して、Loginボタンを押します。
ログインに成功すると、コンテナが表示されます。
一番初めは何もない状態です。
コンテナの作成
アクション > 新規フォルダを選択します。
新規フォルダ名を入力して、作成ボタンを押します。
作成したフォルダが表示されるようになります。
フォルダ名をダブルクリックすると、フォルダの中に移動します。
アップロード
アクション > アップロードを選択します。
ファイルを開く画面が開くので、任意のファイルを選択します。
転送画面が開き、アップロードが行われます。
ダウンロード/削除
対象ファイルを選択状態で、アクション or 右クリックメニューから、ダウンロード/削除を行うことが出来ます。
オブジェクトストレージをVPSにマウント
オブジェクトストレージをVPSにマウントすることも出来ます。
svfsのインストール
マウントを行うためのソフト「svfs」をインストールします。
- fuseとrubyをインストールします。(svfsのインストールに必要なため)
- ⇒不要かもしれないです。(svfsインストール時に必要なソフトもインストールされるため)
- svfsのdebを取得します。
- svfsをインストールします。
$ sudo apt update $ sudo apt install fuse ruby -y $ sudo wget https://github.com/ovh/svfs/releases/download/v0.9.1/svfs_0.9.1_amd64.deb $ sudo apt install ./svfs_0.9.1_amd64.deb
マウント
以下のコマンドを実行します。
- 「device_name」は任意のデバイス名を指定します。
- 「/mnt」には実際にマウントしたいパスを指定します。
$ sudo mount -t svfs device_name /mnt -o auth_url="Identity ServiceのURL",username="ユーザー名",password="パスワード",tenant="テナント名"
今回は以下のようなコマンドを実行しました。
$ sudo mount -t svfs storage /mnt -o auth_url="https://identity.tyo2.conoha.io/v2.0",username="gncuXXXXXXX",password="XXXXXXXXX",tenant="gnctXXXXXX"
マウント確認
一番下に、Filesystem「storage」が「/mnt」という名前で、Size 8.0Eとして表示されています。
(オブジェクトストレージは容量が無制限の為、8.0Eと表示されます。)
$ sudo df -h Filesystem Size Used Avail Use% Mounted on udev 463M 0 463M 0% /dev tmpfs 99M 13M 86M 13% /run /dev/vda2 50G 6.3G 41G 14% / tmpfs 493M 0 493M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 493M 0 493M 0% /sys/fs/cgroup tmpfs 99M 0 99M 0% /run/user/1000 /dev/loop1 89M 89M 0 100% /snap/core/7270 /dev/loop2 89M 89M 0 100% /snap/core/7396 storage 8.0E 20K 8.0E 1% /mnt
アンマウント
以下のコマンドを使ってアンマウントを行います。
$ sudo fusermount -u /mnt
アンマウント確認
Filesystem「storage」の「/mnt」が表示されなくなります。
$ sudo df -h Filesystem Size Used Avail Use% Mounted on udev 463M 0 463M 0% /dev tmpfs 99M 13M 86M 13% /run /dev/vda2 50G 6.3G 41G 14% / tmpfs 493M 0 493M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 493M 0 493M 0% /sys/fs/cgroup tmpfs 99M 0 99M 0% /run/user/1000 /dev/loop1 89M 89M 0 100% /snap/core/7270 /dev/loop2 89M 89M 0 100% /snap/core/7396 $
マウント状態での操作
cdやlsコマンドによって、階層やオブジェクトを確認することが出来ます。(root権限で実行する必要があります。)
# cd mnt # ls sample1 /mnt# cd sample1/ /mnt/sample1# ls -ltr total 20 -rwx------ 1 root root 21596 Aug 29 13:40 1.jpg /mnt/sample1#
コンテナのディレクトリ(ここではsample1)には、ファイルを作成(保存)することが出来ます。
/mnt# cd sample1/ /mnt/sample1# touch test.txt touch: setting times of 'test.txt': Operation not supported /mnt/sample1# ls 1.jpg test.txt
Cyberduckで確認すると、作成した「test.txt」が表示されることがわかります。
参考
ConoHa:オブジェクトストレージを使う(Cyberduck編)
https://support.conoha.jp/v/objectstoragecyberduck/
Cyberduck:インストーラダウンロード
https://cyberduck.io/download/