搭配使用 Amazon S3 與 Amazon EC2 - Amazon Elastic Compute Cloud

搭配使用 Amazon S3 與 Amazon EC2

Amazon S3 是網際網路資料的儲存庫。Amazon S3 提供對可靠、快速且價廉之資料儲存體基礎設施的存取。其設計可以簡化 Web 規模運算,讓您存放和擷取任意數量的資料,且隨時可從 Amazon EC2 或 Web 上的任意位置執行。Amazon S3 以備援方式將資料物件存放在多項設施的多部裝置,且允許多個獨立用戶端或應用程式執行緒同時讀取或寫入存取這些資料物件。假如發生執行個體或應用程式故障,您還能用 Amazon S3 中存放的備援資料快速可靠完成恢復。

Amazon EC2 使用 Amazon S3 存放 Amazon Machine Images (AMI)。您可用 AMI 啟動 EC2 執行個體。假如發生執行個體故障,您可立即用存放的 AMI 啟動其他執行個體,以供快速恢復及保持商業持續性。

Amazon EC2 亦使用 Amazon S3 存放資料磁碟區的快照 (備份複本)。假如發生應用程式或系統故障,您可用快照快速可靠恢復資料。您也可用快照做為基準,用來建立多個新的資料磁碟區、擴展現有資料磁碟區的大小,或在多個可用區域之間移動資料磁碟區,讓您的資料使用量維持高擴展性。如需使用資料磁碟區和快照的詳細資訊,請參閱「Amazon Elastic Block Store」。

物件是存放在 Amazon S3 中的基本實體。Amazon S3 中存放的每個物件都包含在儲存貯體中。儲存貯體在最高層級組織 Amazon S3 命名空間,並識別負責該儲存體的帳戶。Amazon S3 儲存貯體與網際網路網域名稱類似。儲存貯體內存放的物件都有一個唯一的金鑰值,可用 URL 擷取。例如,含有 /photos/mygarden.jpg 金鑰值的物件存放在 DOC-EXAMPLE-BUCKET1 儲存貯體中,則可以使用 URL https://DOC-EXAMPLE-BUCKET1.s3.amazonaws.com/photos/mygarden.jpg 定址。

如需 Amazon S3 功能的詳細資訊,請參閱 Amazon S3 產品頁面

使用範例

既然 Amazon S3 有儲存上的優勢,您可能會決定用這項服務來存放檔案和資料集,以供 EC2 執行個體使用。有幾種方法可在 Amazon S3 與執行個體之間移動資料。除了底下討論的範例之外,您也能從電腦或執行個體使用其他人所編寫的多種工具來存取 Amazon S3 中的資料。其中一些常見工具的討論請參閱 AWS 論壇。

如果您有許可,您可用下列其中一種方式在 Amazon S3 和執行個體之間複製檔案。

AWS Tools for Windows PowerShell

Windows 執行個體的優點為使用圖形瀏覽器,可讓您用來直接存取 Amazon S3 主控台;不過,在編寫指令碼時,Windows 使用者也可使用 AWS Tools for Windows PowerShell 在 Amazon S3 之間移動物件。

請用下列命令將 Amazon S3 物件複製至 Windows 執行個體。

PS C:\> Copy-S3Object -BucketName my_bucket -Key path-to-file -LocalFile my_copied_file.ext

AWS Command Line Interface

AWS Command Line Interface (AWS CLI) 是管理 AWS 服務的統一工具。AWS CLI 可讓使用者進行自我身分驗證,以及從 Amazon S3 下載受限制的項目,還有上傳項目。如需詳細資訊,包括如何安裝與設定工具,請參閱 AWS Command Line Interface 詳細資訊頁面

aws s3 cp 命令結果類似以下命令:Unix cp。可讓您從 Amazon S3 複製檔案到執行個體,從執行個體複製檔案到 Amazon S3,以及從某一 Amazon S3 位置複製檔案到其他位置。

請用下列命令從 Amazon S3 將物件複製至執行個體。

aws s3 cp s3://my_bucket/my_folder/my_file.ext my_copied_file.ext

請用下列命令從執行個體將物件複製回 Amazon S3。

aws s3 cp my_copied_file.ext s3://my_bucket/my_folder/my_file.ext

aws s3 sync 命令可將整個 Amazon S3 儲存貯體同步至本機目錄位置。此功能在下載資料集,以及讓本機複本與遠端資料集保持同步時很有幫助。如果您擁有 Amazon S3 儲存貯體的適當許可,還能將命令中的來源與目的地位置對調,於完成後將本機目錄備份推送至雲端。

請用下列命令將整個 Amazon S3 儲存貯體下載至執行個體上的本機目錄。

aws s3 sync s3://remote_S3_bucket local_directory

Amazon S3 API

如果您是開發人員,可以使用 API 存取 Amazon S3 中的資料。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南。您可使用此 API 和其範例來協助開發應用程式,並將其整合至其他的 API 和軟體開發套件,例如 boto Python 介面。