在 Amazon EC2 上掛載 AWS S3 Bucket
使用情境
- 資料備份與封存:有效率地從 S3 儲存與取回資料,用於可靠備份與長期封存。
- 大數據與分析:直接存取 S3 中的大型資料集,進行順暢的資料處理與分析。
- 網站代管與內容分發:使用 S3 提供靜態內容,以高效率地託管網站與媒體檔案。
- 日誌收集與分析:集中將日誌存放在 S3,方便分析與監控。
- 檔案分享與協作:多台 EC2 透過 S3 作為共享資料庫來分享與協作。
先決條件
- 一台執行 Linux 的 Amazon EC2 執行個體(Amazon Linux、Ubuntu、CentOS 等)。
- 已附加具備存取 S3 Bucket 權限的 IAM 角色。
sudo apt-get update -y
sudo apt-get install awscli -y
sudo apt-get install s3fs -y
# 建立 S3 bucket 的掛載點目錄
sudo mkdir /mnt/s3-bucket
# 同步本機目錄與 S3 bucket 以檢查存取
cd /mnt/s3-bucket ;touch test1.txt test2.txt
aws s3 sync /mnt/s3-bucket s3://<your-s3-bucket-name>
# 將 S3 bucket 掛載成檔案系統
sudo s3fs <your-s3-bucket-name> /mnt/s3-bucket -o iam_role=<iam-role-name> -o use_cache=/tmp -o allow_other -o uid=1001 -o mp_umask=002 -o multireq_max=5 -o use_path_request_style -o url=https://s3-{{aws_region}}.amazonaws.com
除錯問題
需要除錯時,可加上:
$ sudo s3fs <your-s3-bucket-name> /mnt/s3-bucket -o iam_role=<iam-role-name> -o use_cache=/tmp -o allow_other -o uid=1001 -o mp_umask=002 -o multireq_max=5 -o use_path_request_style -o url=https://s3-{{aws_region}}.amazonaws.com -o dbglevel=info -f -o curldbg
確認掛載狀態
df -h | grep s3fs
讓 S3 bucket 在重新開機後仍可持續掛載
/etc/fstab
s3fs#<your-s3-bucket-name> /mnt/s3-bucket fuse _netdev,iam_role=<iam-role-name>,allow_other 0 0
