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


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

かわいいこのはちゃんさんと様のおかげで今年もここに寄稿させてもらえてとてもうれしく思います。ときに僕この夏10数年ぶりにマカーからシンクパッダーになったんすよ。特にスポンサーのLenovo様におかれましてはなんかください。草の生やし過ぎでWキーがさっそく壊れたのでそれがいいです。ポッチもパンタも折れましたwww

ところで

ConoHa WING、使ってますか?皆さんご存知の国内最速を誇るNo.1レンタルサーバーですが、WINGパックの長期契約を使うと国内最速をかなりお安く体感することができます。

一番下のベーシックプランだと月額720円でSSDが250GB、GB単価でいったら3円以下ですね。

……アレ?VPSで追加ディスク付けるといくらでしたっけ?

アレアレ?

というわけで本題

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

な~んにも考えていなくて思いつきでドライヴしているので、 sshfs でなんとかなるんじゃね?くらいしかプランがありません。最終的に使えなかったらゴメン。実用性なかったらゴメン。グローバル経由なので転送量とか気をつけてね。酔っ払いの戯言なのでなーんにも保証しません、てへっ。とりあえずWINGとVPSを立てましょう。

立ちました。ギンギンです。危うくナントカきっぷとかナントカパックに引きずり込まれるところでしたが。

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

何ができるの?

試してないので妄想ですが、

  • 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 [email protected]:/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
[email protected]:/home/c0000000/share  8.0T  117G  7.8T   2% /mnt/wing

30GBのVMに8.0TBアタッチされると流石に壮観!quotaかかってるので使えるのは250GBですけど(十分多い)。

OS起動時マウント設定

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

/bin/sshfs#[email protected]:/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で使うお話でした。排他制御がないから共有ストレージには向かないかな。

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