有時候為了方便,我們想要在 AWS 的 EC2 上掛載 S3 的 Bucket 來快速的存取檔案,
或是想讓自己的 EC2 來個大容量的外接硬碟!
該怎麼做呢?
我們可以使用 s3fs-fuse
https://github.com/s3fs-fuse/s3fs-fuse
但請注意,雖然 AWS 官方說在同一個 Region(區域) 中, EC2 和 S3 互相存取是免費的,
可是使用 s3fs-fuse 是一樣照常收費的唷!
編譯與安裝
測試環境:Ubuntu 14.04 LTS x64
首先安裝編譯 s3fs-fuse 時必要的套件
1 2 | $ sudo apt install automake autotools-dev fuse g++ git libcurl4-gnutls-dev libfuse-dev \ libssl-dev libxml2-dev make pkg-config |
再來下載一份 s3fs-fuse 檔案下來編譯,可以照以下指令進行編譯
1 2 3 4 5 6 | $ git clone https: //github .com /s3fs-fuse/s3fs-fuse .git $ cd s3fs-fuse $ . /autogen .sh $ . /configure $ make $ sudo make install |
如何使用
首先必須在 AWS 的 IAM(Identity and Access Management) 服務申請 開發者 ID 與 KEY
並把它存在檔案中 `/path/to/passwd`, 最後設定 唯owner 權限 (owner-only permission)
1 2 | $ sudo echo MYIDENTITY:MYCREDENTIAL > /path/to/passwd $ sudo chmod 600 /path/to/passwd |
掛載
執行 s3fs 進行掛載 (假設 bucket 名是 `my bucket`, 要掛載的目錄是 `/path/to/mountpoint`):
一般掛載
1 | $ sudo s3fs mybucket /path/to/mountpoint -o passwd_file= /path/to/passwd |
如要卸載
1 | $ sudo umount s3fs |
參考資料
https://github.com/s3fs-fuse/s3fs-fuse
https://coderwall.com/p/c8ssvg/aws-s3-aws-ec2-instance
https://aws.amazon.com/cn/blogs/china/s3fs-amazon-ec2-linux/