Linodeとは
Linode (https://www.linode.com/) は Akamaiが提供するIaaS (Infrastructure as a Service) プラットフォームプロバイダーのサービスです。リノードと発音します。
Akamaiは2022年2月にLinode社の買収を発表しました。
https://www.akamai.com/ja/newsroom/press-release/akamai-to-acquire-linode
クラウドコンピューティングをよりシンプルに、手頃な価格で、誰もが利用できるようにすることで、イノベーションを加速することができます。
https://www.linode.com/ja/alternative-cloud-provider/
Linode Object Storage とは
Linode Object Storageは様々なリージョンで利用可能なS3互換の低価格なAkamai Cloud Computing Serviceのストレージソリューションです。
ストレージはNVMe SSDにて動作しており、HDDに比べて高いパフォーマンスと低レイテンシーなアクセスを実現することができます。
データ量は250GBから100TB(※1)まで拡張することができ、オブジェクトはリージョン内でレプリケートされており冗長性が担保されています。
インバウンド転送無料、アウトバウンド1TBまでの転送が標準の価格に含まれており、追加の転送料金は1GBあたり0.005ドルとかなり低コストなのが特徴です(※1)。
今後のアップデートではデータ量が最大1PB、オブジェクト数は最大10億に対応する予定があります。
- Linode Object Storage
- Enhancing Object Storage Performance
- Akamai Cloud Computing Services(Linode)とは何かをわかりやすく解説
※1 リージョンによって制限や価格が異なります、詳しくはこちらを参照ください。
goofysとは
goofys では s3fs と同じく、クラウドオブジェクトストレージをファイルシステムとして扱えるオープンソースのツールとなります。
パフォーマンスを優先し、ディスク上のデータキャッシュ(checkout catfs)を持たない特徴があります。
GitHub: https://github.com/kahing/goofys
goofysでLinode Object StorageをLinuxサーバにマウントする
Linode Object StorageはS3互換のAPIを備えているため、goofysを利用することができます。
今回はgoofysを利用してサーバーにObject Storageをマウントする手順を紹介します。
サーバーOSに関してはUbuntuを利用します。
インストール
goofysが利用するFilesystem in Userspace (FUSE)をインストールします。
FUSEはUnix系コンピュータオペレーティングシステム用のソフトウェアインタフェースです。
apt update
apt install fuse
goofysのインストール
最新版のgoofysをダウンロードし、ファイルを配置します。
記事を記載している時点の最新版はv0.24.0です。
最新版はGithubから確認してください。
https://github.com/kahing/goofys
curl -L https://github.com/kahing/goofys/releases/download/v0.24.0/goofys -o /usr/local/bin/goofys
chmod 755 /usr/local/bin/goofys
goofys --version
アクセスキーの準備
Linode Object Storageのアクセスキーをファイルに記載します。
mkdir /root/.aws/
vim /root/.aws/credentials
[default]
aws_access_key_id = <YourAccessKey>
aws_secret_access_key = <YourSecretKey>
region = <Region-id>
各リージョンのRegion IDはこちらから確認できます。
Linode Object Storageのアクセスキーは以下から発行が可能です。
ディレクトリの作成
Linode Object Storageをマウントするディレクトリを作成します。
mkdir -p /goofys
fstabの記載
サーバー起動時に自動的にマウントを行うため、fstabにgoofysの記載を行います。
vim /etc/fstab
/usr/local/bin/goofys#[bucket_name] /goofys fuse _netdev,allow_other,--file-mode=0666,--dir-mode=0777,--endpoint=https://[region-id].linodeobjects.com 0 0
[bucket_name] : Linode Object Storageで作成したバケット名
[region-id]:Linode Object Storageを作成したregion-id
ディスクをマウント
fstabを記載した後に、Linode Object Storageのマウントを行う。
mount -a
dfコマンドでマウントが行われているか確認します。
df -Th
Filesystem Type Size Used Avail Use% Mounted on
goofys-ap-south-1 fuse 1.0P 0 1.0P 0% /goofys
動作検証
参考までに、Linode Object Storageをマウントした際のファイル作成、閲覧の時間を確認します。
今回の検証では、シンガポールリージョンにサーバーを立て、同じリージョンにObject Storageを作成し、s3fsでマウントを行っています。
500個のファイルを作成した際の時間
1分かかりました。
root@localhost:/goofys# i=1; time while [ $i -le 500 ]
> do
> touch test_$i > /dev/null 2>&1
> i=$((i+1))
> done
real 1m0.351s
user 0m0.423s
sys 0m0.210s
500個のファイルを一覧化する時間
0.03秒かかりました。
root@localhost:/goofys# time ls -laR /goofys > /dev/null
real 0m0.036s
user 0m0.000s
sys 0m0.007s
まとめ
Linode Object Storageをサーバーにマウントすることで、共有ディスクのような利用方法も検討することができます。
通常のディスクと比べて速度が格段に遅いため、利用用途が適しているか慎重に確認する必要があります。
尚、Linodeがgoofysのツールに関してサポートしているわけではありませんのでご注意ください。
関連記事
アカマイ・テクノロジーズ合同会社のQiitaではLinode関連など開発者向けの記事を記載しております。