nkmtの日記

日常のことをつらつら書きます

Goofysを使ってwordpressの画像置き場に使う

AWSインフラ

2019年8月25日

goofysとは

goofysとは外部のS3のような外部オブジェクトストレージをマウントするためのシステムです。
具体的にはAWSのEC2インスタンスにS3をマウントするような場合に利用します。
S3をマウントするので理論上はほぼ容量無制限のストレージをマウントすることになります。
ちなみにgoofysとは名前の通りgolangでできております。

goofysの設定

goofysのレポジトリは下記になります。
goofysのレポジトリ
今回は自身のEC2インスタンスで行います。
まずはgolang自体入ってなかったのでインストールします。

sudo yum -y install golang fuse

bash_profileに下記を追加してgolangへのPATHを追加します。

PATH=$PATH:$HOME/.local/bin:$HOME/bin
export GOPATH=$HOME/go
PATH=${PATH}:${GOPATH}/bin
source .bash_profile

次にgoofysのレポジトリを持ってきます。

go get github.com/kahing/goofys

AWSの設定

インスタンスからAWSのS3バケットにアクセスできるようにします。
もしもアクセス権のあるユーザーを作ってなかったりkeyを生成してなかったらAWSの管理画面から作成しておきましょう。

aws configure
↓ 適宜入力
AWS Access Key ID : 
AWS Secret Access Key : 
Default region name : ap-northeast-1 ← 東京ならコレ
Default output format : json ← なんでもいいと思います。

ディレクトをgoofysでマウント

ちなみにここでなぜかメモリエラー出てインスタンスの再起動しました。
ここまでできたらマウントするためのディレクトリとパーミッションの設定をします。

mkdir ディレクトリ
chmod 755 ディレクトリ
chown ユーザー名:ユーザー名
id ディレクトリへのアクセスさせるユーザー名

最後にマウントします。

/home/ユーザー名/go/bin/goofys -o nonempty -o allow_other --uid=idで出てきたユーザーid --gid=idで出てきたグループid --dir-mode=0777 --file-mode=0777 s3のバケット名 作成したディレクトリのパス

マウントできてるか確認します。

df -h
Filesystem      Size  Used Avail Use% Mounted on
バケット名         1.0P     0  1.0P   0% マウントしたディレクトリ名

Pと言うことはペタバイトまで置けるという意味ですかね。。。。
実質無制限ですね。

wordpressの画像置き場の変更

最後にwordpressの画像置き場の変更を行いますがコレは、管理画面から行います。

http://ドメイン/wp-admin/options.php

上記にアクセスしupload_pathにディレクトリを設定をすれば完了です。
ちなみにgoofysでマウントしたディレクトリをwordpressのディレクトリの上にある場合は相対パスで../../などで指定してあげればいけます。