0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

dockerでgoofys環境を作ってS3をマウントしてみた

Posted at

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

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ディレクトリなどは使えません。

以上です。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?