Amazon-Ec2
我應該在 EBS 或 S3 上保留圖像嗎?
我正在將我的 Java、Tomcat、MySQL 伺服器遷移到 AWS EC2。
我已經附加了一個用於儲存 MySQL 數據的 EBS 卷。在我的網路應用程序中,人們可能會上傳圖片,我應該堅持。
我的想法有兩種選擇:
- 將上傳的圖像保存到 EBS 卷。
- 使用 S3 服務。
以下是我的筆記,請對它們持懷疑態度,因為我的專長不是伺服器,而是軟體開發。
- EBS plus:S3 儲存更貴。(0.15 $ /Gb > 0.1 $ /GB)
- S3 plus:從 EBS 提供靜態文件可能會對我的 Web 伺服器的性能產生負面影響。這是真的?提供圖像是否會顯著影響伺服器性能?對於 S3,我的伺服器將不負責提供靜態文件。
- S3 plus:從 EBS 提供靜態文件可能會導致 I/O 成本,儘管它可能很小。
- EBS plus:人們說 EBS 更快。
- S3 plus:人們說 S3 對於持久性更安全。
- EBS plus:無需學習 API:將圖像保存到 EBS 卷很簡單。
我無法決定,正在尋求指導。
在成本方面,S3 的成本不一定高於 EBS。如果您有一個 15 GB 的 EBS 卷,那麼無論它包含 1 GB 的數據,甚至還沒有數據,您都需要為所有儲存付費。使用 S3,您只需為儲存的實際數據付費。
您的策略應該是使用 EBS 安裝卷,但始終將 EBS 備份到 S3。過去有一種方法可以將 S3 和記憶體用於掛載的捲(稱為 PersistentFS),但現在已經不存在了。所以掛載一個 EBS 卷,然後將它備份到 S3。
以下是支持該建議的一些事實以及 EBS 和 S3 的一般比較:
- EBS 只能與 EC2 實例一起使用,而 S3 也可以在 EC2 之外使用
- EBS 顯示為可掛載卷,而 S3 需要軟體來讀取和寫入數據
- EBS 可以容納的數據量比 S3 少
- EBS 一次只能被一個 EC2 實例使用,而 S3 可以被多個實例使用
- S3 通常會遇到寫入延遲,而 EBS 不會
- S3 是多餘的(我認為是 6 個副本),而 EBS 不是。 http://www-differencebetween.net/technology/internet/difference-between-amazon-s3-and-amazon-ebs/
- 在性能方面,S3 具有更高的延遲,並且延遲的變化也更大。S3 寫入延遲也可能高於讀取延遲。另一方面,EBS 具有較低的延遲和較少的變化。它還具有寫回記憶體,可實現非常低的寫入延遲。 http://www-cloudiquity.com/2009/03/differences-between-s3-and-ebs/
- EBS(具有 20 GB 修改數據)的預期年故障率為 0.1% 到 0.5%。
- 使用 EBS,您每月為卷的大小支付每 GB 0.10 美元,無論您是否在該卷上儲存了任何數據。
- 使用 S3,您每月為快照支付每 GB 0.15 美元——僅用於實際儲存的數據。
- EBS 的可靠性取決於維護最近的快照。正如 Amazon 在http://www-amazon.com/b/ref=sc_fe_c_0_201590011_1?node=689343011中所述,EBS 的可靠性取決於尚未使用快照備份到 S3 的捲上儲存的數據量。因此,要通過 EBS 實現持久性,重要的是通過頻繁拍攝快照來將捲上的數據備份到 S3。
- 您將同時支付 $ 0.10 per GB per month for the size of the EBS volume, plus $ S3 快照每月每 GB 0.15。但是多個快照是增量儲存的。如果您的設備具有 100 GB 的數據,但自上次快照以來僅更改了 5 GB 的數據,則只有 5 GB 的額外快照數據將儲存回 Amazon S3。 http://aws.amazon.com/ebs/