dockerでgoofys環境を作ってS3をマウントしてみた
dockerでgoofys環境を作ってハンズオン的にS3をマウントして見ました。
その手順と使ってみた感想を紹介します。
ハンズオン手順
docker-compose作成
docker-compose.yaml
version: '2.1'
services:
goofys-test:
container_name: goofys-test
devices:
- /dev/fuse
cap_add:
- mknod
- sys_admin
image: serioja90/goofys
volumes:
- "~/.aws:/root/.aws"
environment:
- REGION=ap-northeast-1
- BUCKET=bucket_name
- MOUNT_DIR=/mnt/s3
version: '2.1'
services:
goofys-test:
container_name: goofys-test
devices:
- /dev/fuse
cap_add:
- mknod
- sys_admin
image: serioja90/goofys
volumes:
- "~/.aws:/root/.aws"
environment:
- REGION=ap-northeast-1
- BUCKET=bucket_name
- MOUNT_DIR=/mnt/s3
bucket_nameをマウントしたいs3のbucket名に変えてください。
ロカールでaws configureを実行して鍵の設定をおこなってください。
実行
docker-compose up
で実行
動作確認
goofys-test | 2017/10/26 02:20:58.273812 main.INFO File system has been successfully mounted.
とでてれば起動は成功してることです。
docker exec -it `docker ps | grep goofys-test | awk '{print $1}'` sh
にてコンテナーにアクセスして
cd /mnt/s3
に移動すると指定したS3 bucketのデータがマウントされているはずです。
感想
riofs,s3fsより早くなってるとはいえ
普通のファイルシステムと比べてめっちゃ遅い。
容量46MBのディレクトリをコピーしてみたら
time cp -rp xx/ xx
real 2m 41.89s
user 0m 0.02s
sys 0m 0.44s
2分40秒もかかる。。特にコピーするのが遅い感じです。
普通のファイルシステムだと
time cp -rp xx/ xx
real 0m0.061s
user 0m0.000s
sys 0m0.056s
なので結構パフォーマンスの課題はあります。
とはいえ直接S3をマウントっぽく参照できるメリットは大きく
読み込みしか使わないとかコピーに時間がかかっても問題ないケースでは使えるかもしれないです。
ググったら、goofysのマウントが勝手に切れるという記事を見かけましたが、私の検証でそのような自称は起こりませんでした。
その他触って見てわかったこと
当たり前ですが、s3上で扱えないデータは置くことができません。
例えばシンボリックを貼ることはできません。
bucket名しか指定できないです。
bucket名/xxディレクトリ
などは使えません。
以上です。
Author And Source
この問題について(dockerでgoofys環境を作ってS3をマウントしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/negabaro/items/013bc24da74dd5dbc33f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .