查看完整版本: 掛載 AWS S3 到 AWS EC2 Instance 使用教學


dyson6 2017-5-4 15:35

掛載 AWS S3 到 AWS EC2 Instance 使用教學

最近剛好需要將 AWS S3 掛載到 EC2 上,步驟有點多,記錄一下。<br><br>一般常見的做法我們會透過 AWS 提供的 API 來存取 S3 上的檔案,但這樣做並不直覺,而且要通常要將原本存取檔案的程式寫法改成用 S3 API 存取檔案的寫法,有可能會需要修改許多支程式。<br><br>所以便有人萌生了將 S3 掛載到 EC2 Instance 的想法,就跟我們買一顆大容量的硬碟裝在電腦上一樣,讓我們的網站服務能夠像在同一部機器存取檔案一樣容易。(其實概念就像我們在實體機器上使用 NFS 來掛載網路硬碟一樣)<br><br>掛載細節如下:<font color="Red">(請確認已開好 S3 bucket,且開好 IAM user 權限,且完成環境安裝)</font><br><br>第一部份: 環境安裝部份<br><br>Step 1:登入 EC2 後使用 sudo 權限<br>$ sudo su -<br><br>Step 2:先更新 apt-get<br># apt-get update<br><br>Step 3: 準備安裝 s3fs-fuse 前所需的套件<br>On Ubuntu 14.04:<br># apt-get install automake autotools-dev g++ git libcurl4-gnutls-dev libfuse-dev libssl-dev libxml2-dev make pkg-config<br><br>On CentOS 7:<br># yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel<br><br>Step 4:進入 /tmp 資料夾<br># cd /tmp<br><br>Step 5: 安裝 s3fs-fuse <br>Compile from master via the following commands:<br>[quote]<br># git clone https://github.com/s3fs-fuse/s3fs-fuse.git<br># cd s3fs-fuse<br># ./autogen.sh<br># ./configure<br># make<br># make install<br>[/quote]<br><br>完成以上步驟,就可以在 EC2 的 Ubuntu Instance 安裝好可掛載 S3 的環境,下面是掛載及卸載的部份<br><br>第二部份:<br>Step 1:新增 s3fs passwd 檔案<br><br># touch /etc/passwd-s3fs<br><br>Step 2:編輯 s3fs 檔案<br><br># vi /etc/passwd-s3fs<br><br>Step 3:填入設定 S3 bucket 時的 bucket name 及設定 IAM user 時得到的 access key id、secret access key<br><br>bucketName:accessKeyID:secretAccessKey<br><br>Step 4:更改 s3fs 檔案權限<br><br># chmod 640 /etc/passwd-s3fs<br><br>Step5:新增 S3 bucket 所要掛載的位置<br><br># mkdir /mnt/s3-drive<br><br>Step6:將 S3 bucket 掛載上去<br><br># /usr/bin/s3fs &lt;bucket-name&gt; /mnt/s3-drive -o allow_other<br><br>當完成上述步驟我們就已經將 S3 bucket 掛載到 EC2 的 /mnt/s3-drive 了<br>我們可以用 df -h 來確認:<br><br>$ df -h<br>Filesystem&nbsp; &nbsp;&nbsp; &nbsp;Size&nbsp;&nbsp;Used Avail Use% Mounted on<br>/dev/xvda1&nbsp; &nbsp;&nbsp; &nbsp;7.9G&nbsp;&nbsp;1.3G&nbsp;&nbsp;6.3G&nbsp;&nbsp;17% /<br>udev&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;288M&nbsp;&nbsp;8.0K&nbsp;&nbsp;288M&nbsp; &nbsp;1% /dev<br>tmpfs&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;119M&nbsp;&nbsp;172K&nbsp;&nbsp;118M&nbsp; &nbsp;1% /run<br>none&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;5.0M&nbsp; &nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;5.0M&nbsp; &nbsp;0% /run/lock<br>none&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;296M&nbsp; &nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;296M&nbsp; &nbsp;0% /run/shm<br>s3fs&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;256T&nbsp; &nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;256T&nbsp; &nbsp;0% /mnt/s3-drive<br><br>恭喜!EC2 Instance 多了 256T 的空間了!<br><br>若想要卸載 S3 bucket 指令如下:<br><br>$ fusermount -u /mnt/s3-drive<br><br>以上就是如何掛載 AWS S3 到 AWS EC2 Instance 的簡易筆記~<br><br><br>參考資料:<br><a href="https://coderwall.com/p/kdpssg" target="_blank">https://coderwall.com/p/kdpssg</a><br><a href="https://github.com/s3fs-fuse/s3fs-fuse" target="_blank">https://github.com/s3fs-fuse/s3fs-fuse</a>
頁: [1]
查看完整版本: 掛載 AWS S3 到 AWS EC2 Instance 使用教學