LoginSignup
0
2

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