ConoHa WINGをVPSの追加ストレージとしてマウントしてみる

こんばんは、「深夜の1時間チャレンジ」のお時間です。この記事は [ConoHa Advent Calendar 2020](https://qiita.com/advent-calendar/2020/conoha) 16日目の記事です。そしてこれを書いている今は公開前日の23時です。お風呂で「夜に駆ける」を練習していたらこんな時間に……あと1時間です。やばい。

かわいい[このはちゃん](https://conoha.mikumo.com/)さんと[ス](https://azure.microsoft.com/ja-jp/developer/)[ポ](https://www.datarobot.com/jp/)[ン](https://www.lenovo.com/jp/ja/jpad/pc?cid=jp:display:z7icgl)[サ](https://developer.freee.co.jp/)[ー](https://www.udemy.com/?utm_medium=udemyads&utm_source=bene-placement&utm_type=QiitaZine&utm_campaign=adventcalendar&utm_content=top&utm_term=202012)[各](https://www.pasonatech.co.jp/)[社](https://metaps.com/ja/)様のおかげで今年もここに寄稿させてもらえてとてもうれしく思います。ときに僕この夏10数年ぶりにマカーからシンクパッダーになったんすよ。特にスポンサーの[Lenovo](https://www.lenovo.com/jp/ja/jpad/pc?cid=jp:display:z7icgl)様におかれましてはなんかください。草の生やし過ぎでWキーがさっそく壊れたのでそれがいいです。ポッチもパンタも折れましたwww
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21166/8231b69d-4871-86b6-7be2-c6f6cbc2c42a.png)

## ところで
[ConoHa WING](https://www.conoha.jp/wing/)、使ってますか？皆さんご存知の国内最速を誇るNo.1レンタルサーバーですが、[WINGパック](https://www.conoha.jp/wing/wingpack)の長期契約を使うと国内最速をかなりお安く体感することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21166/5087b899-6743-712c-99b5-0c92810fbca0.png)
一番下のベーシックプランだと月額720円でSSDが250GB、GB単価でいったら3円以下ですね。

……アレ？VPSで追加ディスク付けるといくらでしたっけ？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21166/ebbe8e45-1c5a-5b11-7d6c-02776e78360b.png)
アレアレ？

## というわけで本題
ConoHa WINGを追加ストレージとしてConoHa VPSにマウントして優勝していくことにするわ。

な～んにも考えていなくて思いつきでドライヴしているので、 sshfs でなんとかなるんじゃね？くらいしかプランがありません。最終的に使えなかったらゴメン。実用性なかったらゴメン。グローバル経由なので転送量とか気をつけてね。酔っ払いの戯言なのでなーんにも保証しません、てへっ。とりあえずWINGとVPSを立てましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21166/9d21ff56-315d-1d43-6659-d9aa54623441.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21166/31c92ed3-79c3-fe7c-7407-699709f5e329.png)
立ちました。ギンギンです。危うく[ナントカきっぷ](https://www.conoha.jp/vps/discountticket/)とか[ナントカパック](https://www.conoha.jp/wing/wingpack/)に引きずり込まれるところでしたが。

(今回は検証目的なので必要な期間だけ利用したら解約できる従量課金にしましたが、長期間利用が見込まれる場合はきっぷやパックを使うことをオススメします)

## 何ができるの？
試してないので妄想ですが、

- VPSからファイル置き場やバックアップ領域として利用する
- VPSで使うコンテンツファイルをWINGのファイルマネージャーで操作する
- 逆にWINGで公開するコンテンツをVPSからプログラムで動的に書き換えたりする
- 通常vscodeのremote sshが使えないWINGに、VPS経由でアクセスする

## スペック
### VPS
テストなので一番小さいやつで CentOS 8
### WING
過当競……いやなんでもないです。一番小さいやつでも 250GB も使える

## WING側の準備
sshが受けられればそれでOK。ConoHa WINGは鍵認証のsshもちゃーんと使えます。共有ディレクトリだけ掘っておきましょう(webに公開しないファイル置き場にするときはpublic_html以下に置かないように注意)。

```
$ mkdir ~/share
```
おわり

## VPS側の準備
### 鍵ペアの用意
まずWINGにSSHアクセスするための鍵ペアを作っておきましょう。OS起動時にマウントしたいのでパスフレーズなしの鍵を作っておきます。

```
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_nopass
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:9w/yWPNgBbD4jjxMIXCi2sfDM6ZwUNdzgssdtsUNpNM root@150-95-217-170
The key's randomart image is:
+---[RSA 3072]----+
|.................|
|.................|
|.................|
|.................|
|.................|
|.................|
|.................|
|.................|
|.................|
|.................|
+----[SHA256]-----+
```
パスフレーズを空欄にしておくのがポイントですね。

### sshfsの導入
ぱわーつーるずからサクサクっと入れていきます。

```
# dnf --enablerepo=PowerTools -y install fuse-sshfs
```
マウントポイントも掘りましょうね。

```
# mkdir /mnt/wing
```

## 公開鍵の受け渡し
先程作った鍵ペアのうちの公開鍵(id_rsa_nopass.pub)をWING側にセットします。コントロールパネルからインポートしても良いですし、CLIから直接書いても構いません。WING側の`~/.ssh/authorized_keys`に公開鍵がセットされていればOKです。鍵がセットできたら、VPS側からWING側へパスフレーズ無しでssh接続できるか確認しておきましょう。

## マウントしてみる
してみます。ちなみに今23:55です。王子様、お引き止めにならないで！

```
# sshfs -p 8022 -o IdentityFile=/root/.ssh/id_rsa_nopass,allow_other c0000000@avc2020-1216.conohawing.com:/home/c0000000/share /mnt/wing
# echo "hello world" > /mnt/wing/test
```
WING側で確認してみる

```
$ cat ~/share/test
hello world
```
やったね！
dfもしときましょう。

```
# df -h
Filesystem                                                 Size  Used Avail Use% Mounted on
devtmpfs                                                   223M     0  223M   0% /dev
tmpfs                                                      238M     0  238M   0% /dev/shm
tmpfs                                                      238M  6.4M  232M   3% /run
tmpfs                                                      238M     0  238M   0% /sys/fs/cgroup
/dev/vda2                                                   30G  4.0G   25G  15% /
tmpfs                                                       48M     0   48M   0% /run/user/0
c0000000@avc2020-1216.conohawing.com:/home/c0000000/share  8.0T  117G  7.8T   2% /mnt/wing
```
30GBのVMに8.0TBアタッチされると流石に壮観！quotaかかってるので使えるのは250GBですけど(十分多い)。

## OS起動時マウント設定
VPS起動時に自動でマウントしてほしいじゃないですか。以下の内容を/etc/fstabに追記します。

```
/bin/sshfs#c0000000@avc2020-1216.conohawing.com:/home/c0000000/share /mnt/wing fuse port=8022,IdentityFile=/root/.ssh/id_rsa_nopass,allow_other,compression=yes,transform_symlinks,idmap=user,reconnect,_netdev,ServerAliveInterval=60 0 0
```

## 一旦おわり！
以上、中の人が一生懸命チューニングしているWeb機能をガン無視してsshで使うお話でした。排他制御がないから共有ストレージには向かないかな。

セーフ！おわり！メリークリスマス！ハピバースデートゥーミー！