iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 1
0
自我挑戰組

AWS架構應用系列 第 19

Amazon Simple Storage Service (Amazon S3) - Day19

Amazon Simple Storage Service (Amazon S3) - Day19

接下來要介紹的是如何將先前的應用程式從 EC2 搬移到更輕量的 Container 裡,但在介紹 Container 之前先介紹 Amazon Simple Storage Service (Amazon S3) ,做為應用程式的儲存空間。

Amazon S3 簡介

Amazon S3 是 AWS 所推出的託管雲儲存解決方案,具有無縫擴展和提供 99.999999999% 的持久性。所謂的無縫擴展指的是當存取的流量增加時,維運人員必須要考慮如何擴展基礎建設好讓使用者可以正常的存取,而 Amazon S3 可以提供自動擴展的功能,不需維運人員的介入;99.999999999% 的持久性,通常我們簡稱為 11 個 9 的持久性,在此可能要先說明一下在使用雲端服務時,常見的三個名詞:

  1. 可靠性 (Reliability):一個系統(設備)在約定條件下完成既定功能的概率。衡量可靠性的指標有故障率 (Failure Rate, FR)、平均故障間隔 (Mean Time Between Failures, MTBF)、平均失效前時間(Mean Time to Failure, MTTF)、平均修復時間 (Mean Time to Recovery, MTTR)等。下圖說明了何謂故障間隔以及修復時間,而在發生系統無法使用之前,有些資料的寫入可能就已經損毀或失效,所以在修復時我們也需要修復這些資料,而到當機前所能修復的資料時間點,我們稱之為修復點(Recovery Point, RP), AWS 就容錯能力、可恢復性以及可擴展性這三個構面來提供高可靠度。

系統可靠性評估
圖 01、系統可靠性評估

  1. 可用性 (Availability):在軟體和硬體系統中都會使用,可用性是從可靠性推導出來的。可用性是指系統無故障運行的時間占比,計算公式:Availability = MTBF/(MTBF + MTTR)

  2. 持久性 (Durability):與可用性最大的差別是在持久性並不表示它是可用的,但是這些資料是存在的,比方說系統已經無法提供服務,這時就算是無可用姓,但是它的資料依據存在,所以持久性這部分還是有效的。這就是為何我們看到 Amazon S3 會宣稱它有 99.999999999% 持久性和 99.99% 可用性。

Amazon S3 的特色如下:

  • 儲存任意數量的物件 (Object),物件限制為 5TB ,可將物件視為檔案。
  • 儲存桶 (Bucket) 名稱在 Amazon S3 的所有現有儲存桶名稱中必須具有唯一性,所謂的所有現有儲存桶名稱包含其他帳號的儲存桶,可將儲存桶視為資料夾。
  • Amazon S3 不能用作可開機磁碟機。
  • 資料以冗餘方式存儲。
  • 通過 AWS 管理主控台、某個軟體開發套件 (SDK) 或協力廠商解決方案訪問 Amazon S3。
  • 對象上傳或刪除可以觸發通知、工作流程,甚至觸發腳本。
  • 可自動對傳輸中資料和靜態資料進行加密。

Amazon S3 操作

接下來我們操作如何將 Amazon EC2 上的檔案上傳到 Amazon S3

步驟 1: 安裝 FileZilla Client

步驟 2: 透過 FileZilla Client 連上 EC2
開啟 FileZilla Client 後,選擇左上角的開啟站台管理員,設定如下:
站台名稱: EC2
設定協定: SFTP
主機網址: Amazon EC2 的公有 IPv4 地址
登入形式: 金鑰檔案
使用者: ec2_user
金鑰檔案: ithome.ppk 的所在目錄

設定FileZilla連接 Amazon EC2
圖 02、設定FileZilla連接 Amazon EC2

順利連上網站後,接著切換 Apache 網頁的預設目錄 /var/www/html ,並下載所需要的檔案 index.php

進入遠端站台的網頁目錄
圖 03、進入遠端站台的網頁目錄

步驟 3: 新增 S3 儲存貯體
到 Amazon S3 主控台,選擇左邊選單中的 儲存貯體,並在右邊按下 建立儲存貯體,可以發現在 Amazon S3是屬於全域的,雖然在建立貯體時還是需要指定區域,但概念上是屬於全域的,主要是因為容錯機制,會讓它將物件會以冗餘方式儲存在不同可用區及區域。

建立 S3 儲存貯體
圖 04、建立 S3 儲存貯體

設定 S3 儲存貯體名稱以及所在區域

設定 S3 儲存貯體
圖 05、設定 S3 儲存貯體

設定 S3 所有公有存取權,預設為封鎖,但因為要提供 Auto Scaling Group 中的 EC2 存取,所以把權限打開,如要增加這一部分的安全性可以透過角色 (Role)來設定。

設定 S3 存取權限
圖 06、設定 S3 存取權限

步驟 4: 在 S3 儲存貯體中新增物件
到 Amazon S3 主控台,選擇左邊選單中的 儲存貯體,並在右邊按下剛剛新增的儲存貯體,選擇上傳,接下來就要新增物件,就相當於我們的上傳檔案,需要經過四個步驟:選取檔案、設定許可、設定屬性、檢閱,其中需注意的是_設定許可_時要將管理公開許可打開。

打開物件的管理公開許可
圖 07、打開物件的管理公開許可

步驟 5: 在 EC2 中下載檔案
首先先檢視檔案的物件 URL,因為這是對外的存取點。

檢視檔案的物件 URL
圖 08、檢視檔案的物件 URL

透過 Putty 連接到 EC2,並下達以下指令

# 下載物件
wget https://bucket-key.s3-regionname.amazonaws.com/object-name
#檢視物件內容
more object-name

在 EC2 中下載並檢視內容
圖 09、在 EC2 中下載並檢視內容

References


上一篇
根據流量來進行負載平衡器的運作 - Day18
下一篇
Amazon Elastic Container Service (Amazon ECS) - Day20
系列文
AWS架構應用24

尚未有邦友留言

立即登入留言