1. 程式人生 > 實用技巧 >利用S3fs在Amazon EC2 Linux例項上掛載S3儲存桶

利用S3fs在Amazon EC2 Linux例項上掛載S3儲存桶

一、準備!!!

1、使用擁有足夠許可權的IAM賬號登入AWS控制檯

2、建立S3儲存桶,給儲存桶命名如“my-bucket”(如果使用已有儲存桶,本步驟可略過)

3、有該S3儲存桶訪問許可權的 IAM 使用者,併為該IAM使用者建立訪問金鑰

4、建立並啟動Amazon EC2 Linux例項

二、安裝s3fs-fuce工具

1、安裝epel源

[root@ip-172-31-23-148 ~]#amazon-linux-extras install epel

2、安裝s3fs-fuce工具

[root@ip-172-31-23-148 ~]#yum install s3fs-fuse

3、檢測是否安裝s3fs

[root@ip-172-31-23-148 ~]#which s3fs
/usr/local/bin/s3fs

三、建立IAM使用者訪問金鑰檔案

1、建立IAM使用者訪問金鑰檔案

  • IAM使用者訪問金鑰內容可以寫入當前使用者預設金鑰檔案比如“/home/ec2-user/.password”或者使用者自己建立的檔案(也可以不是隱藏檔案)
  • 命令格式:echo [IAM使用者訪問金鑰ID]:[IAM使用者訪問金鑰] >[金鑰檔名]
  • 命令舉例:下面的例子將在當前使用者預設路徑建立金鑰檔案:
    • echo AKIAIOEO4E2VOHLxxxxx:2LXBboddEpRLmWl48i3+b4ziwPL3bJ4vxxxxxxxx > /home/ec2-user/.password

2、設定金鑰檔案只能夠被當前使用者訪問

  • 命令格式:chmod 600 [金鑰檔名]
  • 命令舉例:下面的例子將設定金鑰檔案只能被當前使用者訪問(也可以是root使用者,但是一般用普通使用者)
    • chmod 600 /home/ec2-user/.password

3、如果是在root使用者下建立的password檔案,那麼該檔案的所屬是root使用者,手動掛載就無法使用普通使用者去掛載,所以需改變屬主屬組

  • 命令格式:chown ec2-user.ec2-user [祕鑰檔名]
  • 命令舉例:chown ec2-user.ec2-user /home/ec2-user/.password

四、手動掛載s3儲存桶

1、掛載儲存桶使用的命令是s3fs

2、s3fs的命令格式是:

  • s3fs [S3儲存桶名] [本地目錄名] [OPTION]
  • option是可選項,格式是 –o <option_name>=<option_value>,常用的options有:
    • passwd_file= :指定掛載的金鑰檔案
    • url= :設定訪問s3的url http://s3.amazonaws.com
    • endpoint :設定s3儲存桶的endpoint us-east-1
    • allow_other :設定allow_other允許所有使用者訪問掛載點目錄,設定這個選項需要在 /etc/fuse.conf 檔案新增user_allow_other選項

3、手手動掛載AWS中國寧夏區域S3儲存桶

  • 命令格式:s3fs [S3儲存桶名] [本地目錄名] -o passwd_file=[金鑰檔名] -o url=http://s3.cn-northwest-1.amazonaws.com.cn -o endpoint=cn-northwest-1
    • 北京區域:-o url=http://s3.cn-north-1.amazonaws.com.cn -o endpoint=cn-north-1
    • 寧夏區域:-o url=http://s3.cn-northwest-1.amazonaws.com.cn -o endpoint=cn-northwest-1
  • 命令舉例:下面的例子將名為“my-bucket”的寧夏區域S3儲存桶掛載到本地目錄“/home/ec2-user/s3mnt”
    • s3fs my-bucket /home/ec2-user/s3mnt -o passwd_file=/home/ec2-user/.password -o url=http://s3.cn-northwest-1.amazonaws.com.cn -o endpoint=cn-northwest-1

4、手動掛載AWS海外區域S3儲存桶

  • 命令格式:s3fs [S3儲存桶名] [本地目錄名] -o passwd_file=[金鑰檔名] -o endpoint=[區域名]
  • 命令舉例:下面的例子將名為“my-bucket”的新加坡區域S3儲存桶掛載到指定的本地目錄“/home/ec2-user/s3mnt”
    • s3fs my-bucket /home/ec2-user/s3mnt -o passwd_file=/home/ec2-user/.password -o endpoint=ap-northeast-1

5、檢視掛載結果

[root@ip-172-31-23-148 ~]# df -h

檔案系統        容量  已用  可用 已用% 掛載點

devtmpfs        488M   56K  488M    1% /dev

tmpfs           498M     0  498M    0% /dev/shm

/dev/xvda1      7.8G  1.2G  6.6G   15% /

s3fs            256T     0  256T    0% /home/ec2-user/s3mnt

6、解除安裝掛載的s3儲存桶

[root@ip-172-31-23-148 ~]# umount /home/ec2-user/s3mnt
[root@ip-172-31-23-148 ~]# df -h
檔案系統        容量  已用  可用 已用% 掛載點

devtmpfs        488M   56K  488M    1% /dev

tmpfs           498M     0  498M    0% /dev/shm

/dev/xvda1      7.8G  1.2G  6.6G   15% /

7、如果想要設定開機自動掛載,請參見:https://amazonaws-china.com/cn/blogs/china/s3fs-amazon-ec2-linux/