AWS EFS vs EBS vs S3 (sự khác biệt & khi nào nên sử dụng?)


315

Theo tiêu đề của câu hỏi này, sự khác biệt thực tế giữa AWS EFS, EBS và S3 là gì?

Sự hiểu biết của tôi về mỗi:

  • S3 là một cơ sở lưu trữ có thể truy cập bất cứ nơi nào
  • EBS là thiết bị bạn có thể gắn vào EC2
  • EFS là một hệ thống tệp bạn có thể gắn vào EC2

Vậy tại sao tôi lại sử dụng EBS qua EFS? Có vẻ như họ có cùng trường hợp sử dụng nhưng khác biệt nhỏ về ngữ nghĩa? Mặc dù EFS được nhân rộng trên các AZ trong đó EBS chỉ là một thiết bị được gắn kết. Tôi đoán sự hiểu biết của tôi về EBS là thiếu do đó tôi không thể phân biệt.

Tại sao chọn S3 trên EFS? Cả hai đều lưu trữ các tập tin, quy mô và được nhân rộng. Tôi đoán với S3, bạn phải sử dụng SDK trong đó với EFS là một hệ thống tệp, bạn có thể sử dụng các phương pháp I / O tiêu chuẩn từ ngôn ngữ lập trình bạn chọn để tạo tệp. Nhưng đó có phải là sự khác biệt thực sự duy nhất?


2
EFS giống như NFS. EBS thực chất là một SAN. S3 là kinda như WebDav. Glacier có lẽ là blueray DVD repositoryagemojo.com/2014/04/25/amazons-glacier-secret-bdxl
Neil McGuigan

Câu trả lời:


466

Trả lời một từ: TIỀN: D

1 GB để lưu trữ ở US-East-1: (Cập nhật vào 2016.dec.20)

  • Sông băng: $ 0,004 / tháng (Lưu ý: Giảm giá lớn trong năm 2016)
  • S3: 0,023 đô la / tháng
  • S3-IA (được công bố vào năm 2015,09): 0,0125 đô la / tháng (+ 0,01 đô la / phí thu hồi)
  • EBS: $ 0,045-0,1 / tháng (tùy thuộc vào tốc độ - SSD hay không) + chi phí IOPS
  • EFS: $ 0,3 / tháng

Các tùy chọn lưu trữ khác, có thể được sử dụng để lưu trữ dữ liệu tạm thời trong khi / trước khi xử lý nó:

  • SNS
  • SQS
  • Luồng Kinesis
  • Máy phát điện, SimpleDB

Các chi phí trên chỉ là mẫu. Có thể có sự khác biệt theo khu vực, và nó có thể thay đổi tại bất kỳ điểm nào. Ngoài ra còn có thêm chi phí cho việc truyền dữ liệu (ra internet). Tuy nhiên, họ cho thấy một tỷ lệ giữa giá của các dịch vụ .

Có rất nhiều sự khác biệt giữa các dịch vụ này:

EFS là:

  • Thường có sẵn (ngoài bản xem trước), nhưng có thể chưa có sẵn trong khu vực của bạn
  • Hệ thống tệp mạng (có nghĩa là nó có thể có độ trễ lớn hơn nhưng nó có thể được chia sẻ qua nhiều trường hợp; thậm chí giữa các vùng)
  • Nó đắt so với EBS (~ 10 lần) nhưng nó cung cấp thêm các tính năng.
  • Đây là một dịch vụ rất sẵn có.
  • Đó là một dịch vụ được quản lý
  • Bạn có thể đính kèm bộ lưu trữ EFS vào Trường hợp EC2
  • Có thể được truy cập bởi nhiều phiên bản EC2 cùng một lúc
  • Kể từ 2016.dec.20, có thể đính kèm bộ lưu trữ EFS của bạn trực tiếp vào các máy chủ tại chỗ thông qua Kết nối trực tiếp. ()

EBS là:

  • Một khối lưu trữ (vì vậy bạn cần định dạng nó). Điều này có nghĩa là bạn có thể chọn loại hệ thống tệp bạn muốn.
  • Vì là lưu trữ khối, bạn có thể sử dụng Raid 1 (hoặc 0 hoặc 10) với nhiều kho lưu trữ khối
  • Nó rất nhanh
  • Nó tương đối rẻ
  • Với các thông báo mới từ Amazon, bạn có thể lưu trữ tối đa 16TB dữ liệu trên mỗi bộ lưu trữ trên SSD-s.
  • Bạn có thể chụp nhanh EBS (trong khi nó vẫn đang chạy) vì lý do sao lưu
  • Nhưng nó chỉ tồn tại trong một khu vực cụ thể. Mặc dù bạn có thể di chuyển nó sang một khu vực khác, bạn không thể chỉ truy cập nó qua các khu vực (chỉ khi bạn chia sẻ nó qua EC2; nhưng điều đó có nghĩa là bạn có một máy chủ tệp)
  • Bạn cần một ví dụ EC2 để đính kèm nó vào
  • Tính năng mới (2017.Feb.15): Bây giờ bạn có thể tăng kích thước âm lượng, điều chỉnh hiệu suất hoặc thay đổi loại âm lượng trong khi âm lượng đang được sử dụng. Bạn có thể tiếp tục sử dụng ứng dụng của mình trong khi thay đổi có hiệu lực.

S3 là:

  • Một cửa hàng đối tượng (không phải là một hệ thống tập tin).
  • Bạn có thể lưu trữ tệp và "thư mục" nhưng không thể có khóa, quyền, v.v. như bạn làm với hệ thống tệp truyền thống
  • Điều này có nghĩa là, theo mặc định, bạn không thể chỉ gắn kết S3 và sử dụng nó làm máy chủ web của mình
  • Nhưng nó hoàn hảo để lưu trữ hình ảnh và video cho trang web của bạn
  • Tuyệt vời cho việc lưu trữ ngắn hạn (ví dụ một vài tuần). Nó cũng tốt cho việc lưu trữ lâu dài, nhưng Glacier hiệu quả hơn về chi phí.
  • Tuyệt vời để lưu trữ nhật ký
  • Bạn có thể truy cập dữ liệu từ mọi khu vực (có thể áp dụng thêm chi phí)
  • Có sẵn cao, dự phòng. Về cơ bản mất dữ liệu là không thể (độ bền 99.999999999%, SLA 99,9 thời gian hoạt động)
  • Rẻ hơn nhiều so với EBS.
  • Bạn có thể phân phát nội dung trực tiếp lên internet, thậm chí bạn có thể có một trang web (tĩnh) đầy đủ hoạt động trực tiếp từ S3 mà không cần phiên bản EC2

Sông băng là:

  • Lưu trữ lưu trữ dài hạn
  • Cực rẻ để lưu trữ
  • Có khả năng rất tốn kém để lấy
  • Mất tới 4 giờ để "đọc lại" dữ liệu của bạn (vì vậy chỉ lưu trữ các mục bạn biết bạn sẽ không cần truy xuất trong một thời gian dài)

Như đã đề cập trong bình luận của JDL, có một số khía cạnh thú vị về giá cả. Ví dụ: Glacier, S3, EFS phân bổ dung lượng lưu trữ cho bạn dựa trên mức độ sử dụng của bạn, trong khi tại EBS, bạn cần xác định trước dung lượng lưu trữ được phân bổ. Có nghĩa là, bạn cần phải ước tính quá mức. (Tuy nhiên, thật dễ dàng để thêm nhiều bộ nhớ hơn vào khối lượng EBS của bạn, nó đòi hỏi một số kỹ thuật, điều đó có nghĩa là bạn luôn "trả quá nhiều" bộ nhớ EBS của mình, khiến cho nó thậm chí còn đắt hơn.)

Nguồn: Cập nhật lưu trữ AWS - Tùy chọn lưu trữ S3 chi phí thấp hơn & Giảm giá băng hà


8
Glacier cực kỳ tốn kém nếu dữ liệu cần được khôi phục nhanh chóng liangzan.net/aws-glacier-calculator
Anatoly

6
Không đồng ý mà S3rẻ hơn EBS. Với S3bạn chỉ có thể có 2000 PUT và 20 000 GET miễn phí. Với EBSbạn có 2 000 000 hoạt động I / O miễn phí. Đây là stackoverflow
Green

2
2 000 000 S3 chi phí đọc ~ 0,4 đô la, 2 000 000 chi phí ghi ~ 5 đô la ... Nhưng điểm chính là, bạn cần chọn đúng bộ lưu trữ cho tác vụ. S3 là (chủ yếu) cho các tệp lớn, không quá thường xuyên thay đổi nhưng có thể truy cập rộng rãi là tốt nhất. (với rất nhiều ngoại lệ: D)
Adam Ocsvari

2
So sánh tốt. Nhưng một sự khác biệt lớn khác giữa EBS và EFS, là EBS là một lượng lưu trữ cố định. Vì vậy, có, so sánh 1 GB là khác nhau, nhưng tại sao bạn sẽ tạo phân vùng EBS 1 GB? Tối thiểu, nếu bạn định tạo phân vùng 10 GB, thì bạn đang xem $ 0,5-1,0 cho cùng 1 GB dữ liệu được lưu trữ trên 10 GB dữ liệu. Tùy thuộc vào nhu cầu lưu trữ dữ liệu của bạn sẽ tăng nhanh như thế nào và bạn muốn trả bao nhiêu dung lượng, EFS có thể là một lựa chọn tốt hơn.
JDL

3
Cũng đáng chú ý: EFS hiện chỉ hoạt động với Linux, không phải Windows.
Andrew Clark

110

Tôi tự hỏi tại sao mọi người không nêu bật lý do thuyết phục NHẤT trong việc ủng hộ EFS. EFS có thể được gắn trên nhiều phiên bản EC2 cùng một lúc, cho phép truy cập vào các tệp trên EFS cùng một lúc.

(Chỉnh sửa 2020 tháng 5, EBS cũng hỗ trợ gắn kết nhiều EC2 cùng một lúc, xem: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-multi.html )


Tôi cũng vậy. Những người hỏi câu hỏi hoặc bỏ phiếu cho câu hỏi (không phải câu trả lời) chỉ không biết có gì khác nhau giữa hệ thống UFS và NFS.
BMW

5
Tương tự, đây là một sự khác biệt giữa việc sử dụng S3 và EBS - S3 và EFS hoạt động tốt đối với dữ liệu được chia sẻ trên nhiều máy chủ, trong khi EBS thì không.
Geoffrey Wiseman

EFS cũng không thể được sử dụng làm nguồn gốc cho CDN, S3 tốt hơn cho vai trò này. Nếu bạn có nhiều tài sản cần phải có cho CDN, tốt hơn nên sử dụng S3
Moses Liao GZ

71

Sửa lỗi so sánh:

  • S3 là một cơ sở lưu trữ có thể truy cập bất cứ nơi nào
  • EBS là thiết bị bạn có thể gắn vào EC2
  • EFS là một hệ thống tệp bạn có thể gắn vào một số phiên bản EC2 cùng một lúc

Tại thời điểm này, hơi sớm để so sánh EFS và EBS - hiệu suất của EFS không được biết đến, cũng như độ tin cậy của nó không được biết đến.

Tại sao bạn nên sử dụng S3?

  • Bạn không có nhu cầu cho các tệp là 'cục bộ' đối với một hoặc nhiều phiên bản EC2.
  • (hiệu quả) năng lực vô hạn
  • phục vụ web tích hợp, xác thực

2
Gần đây tôi đã thiết lập một khối EFS vì nó hiện có sẵn ở West-2. Tôi dường như có vấn đề viết với các tập tin lớn. Ví dụ: việc tạo bộ chứa docker không thành công với "tệp quá lớn" và việc tạo db sqlite cũng không thành công. Không có vấn đề này trên tập EBS tôi đang sử dụng. Vì vậy, EFS có thể có các vấn đề về khả năng sử dụng / độ tin cậy cần "sửa chữa" tại thời điểm này.
DKebler

7

Để thêm vào so sánh: (nổ) hiệu suất đọc / ghi trên EFS phụ thuộc vào các khoản tín dụng được thu thập. Thu thập các khoản tín dụng phụ thuộc vào lượng dữ liệu bạn lưu trữ trên đó. Thêm ngày -> thêm tín dụng. Điều đó có nghĩa là khi bạn chỉ cần một vài GB dung lượng lưu trữ được đọc hoặc ghi thường xuyên, bạn sẽ hết tín dụng rất sớm và througphput giảm xuống còn khoảng 50kb / s. Cách duy nhất để khắc phục điều này (trong trường hợp của tôi) là thêm các tệp giả lớn để tăng tỷ lệ tín dụng kiếm được. Tuy nhiên lưu trữ nhiều hơn -> chi phí nhiều hơn.


2
Đó là điên chậm. Lúc đầu tôi nghĩ đây là một sai lầm của OP, nhưng sau khi kiểm tra tài liệu thì nó đã đúng (Tính đến năm 2017)
Jakobovski

7

Ngoài giá cả và tính năng, thông lượng cũng thay đổi rất nhiều (như được đề cập bởi user1677120):

EBS

Lấy từ các tài liệu EBS :

| EBS volume | Throughput |           Throughput          |
|    type    |   MiB/s    |         dependent on..        |
|------------|------------|-------------------------------|
| gp2 (SSD)  | 128-160    | volume size                   |
| io1 (SSD)  | 0.25-500   | IOPS (256Kib/s per IOPS)      |
| st1 (HDD)  | 20-500     | volume size (40Mib/s per TiB) |
| sc1 (HDD)  | 6-250      | volume size (12Mib/s per TiB) |

Lưu ý, đối với io1, st1 và sc1, bạn có thể tăng lưu lượng truy cập thông lượng lên ít nhất 125Mib / s, nhưng đến 500Mib / s, tùy thuộc vào kích thước âm lượng.

Bạn có thể tăng thêm thông lượng bằng cách triển khai các khối EBS dưới dạng RAID0

EFS

Lấy từ tài liệu EFS

| Filesystem |    Base    |   Burst    |
|    Size    | Throughput | Throughput |
|    GiB     |   MiB/s    |   MiB/s    |
|------------|------------|------------|
|         10 |        0.5 |        100 |
|        256 |       12.5 |        100 |
|        512 |       25.0 |        100 |
|       1024 |       50.0 |        100 |
|       1536 |       75.0 |        150 |
|       2048 |      100.0 |        200 |
|       3072 |      150.0 |        300 |
|       4096 |      200.0 |        400 |

Thông lượng cơ sở được đảm bảo, thông lượng liên tục sử dụng tối đa các khoản tín dụng bạn đã thu thập trong khi ở dưới mức thông lượng cơ sở (vì vậy bạn sẽ chỉ có điều này trong một thời gian giới hạn, xem tại đây để biết thêm chi tiết.

S3

S3 là một thứ hoàn toàn khác, vì vậy nó thực sự không thể so sánh với EBS và EFS. Thêm vào đó: Không có số liệu thông lượng được công bố cho S3. Bạn có thể cải thiện thông lượng bằng cách tải xuống song song (Tôi ở đâu đó đọc các trạng thái AWS về cơ bản bạn sẽ có thông lượng không giới hạn theo cách này) hoặc thêm CloudFront vào hỗn hợp


2

Nói một cách đơn giản

Amazon EBS cung cấp lưu trữ cấp khối.

Amazon EFS cung cấp lưu trữ tệp chia sẻ gắn liền với mạng.

Amazon S3 cung cấp lưu trữ đối tượng.


1

EBS rất đơn giản - lưu trữ ở cấp độ khối có thể được gắn vào một cá thể từ cùng AZ và có thể tồn tại bất kể tuổi thọ của cá thể.

Tuy nhiên, sự khác biệt thú vị là giữa EFS và S3 và để xác định các trường hợp sử dụng thích hợp cho nó.

Chi phí: EFS đắt hơn khoảng 10 lần so với S3.

Trường hợp sử dụng:

  • Bất cứ khi nào chúng tôi có hàng ngàn trường hợp cần xử lý tệp đồng thời, EFS được khuyến nghị trên S3.
  • Cũng lưu ý rằng S3 là lưu trữ dựa trên đối tượng trong khi EFS là tệp dựa trên nó ngụ ý rằng bất cứ khi nào chúng tôi yêu cầu các tệp được cập nhật liên tục (được làm mới), chúng ta nên sử dụng EFS.
  • S3 cuối cùng là nhất quán trong khi EFS là nhất quán mạnh mẽ. Trong trường hợp bạn không đủ khả năng thống nhất cuối cùng, bạn nên sử dụng EFS

0

Amazon EBS cung cấp lưu trữ cấp khối - Nó được sử dụng để tạo một hệ thống tệp trên đó và lưu trữ tệp. Amazon EFS - hệ thống lưu trữ được chia sẻ tương tự như NAS / SAN. Bạn cần phải gắn kết nó với máy chủ unix và sử dụng nó. Amazon S3 - Đây là bộ lưu trữ dựa trên đối tượng trong đó mỗi mục được lưu trữ bằng một URL http.

Một trong những khác biệt là - EBS có thể được gắn vào 1 thể hiện tại một thời điểm và EFS có thể được gắn vào nhiều trường hợp tại sao lưu trữ được chia sẻ. Lưu trữ đối tượng đồng bằng S2 không thể được gắn kết.


0

EFS & S3 có cùng mục đích, bạn có thể lưu trữ bất kỳ loại đối tượng hoặc tệp nào.

Nhưng đối với tôi, sự khác biệt duy nhất là EFS cho phép bạn có một hệ thống tệp truyền thống trong đám mây VM (EC2) với tính linh hoạt hơn như bạn có thể đính kèm vào nhiều phiên bản.

S3, mặt khác, là một máy chủ linh hoạt và đàn hồi riêng cho các đối tượng của bạn. Nó có thể được sử dụng cho các tệp tĩnh, hình ảnh, video hoặc thậm chí lưu trữ ứng dụng tĩnh (js).

EBS rõ ràng là để lưu trữ khối nơi bạn có thể cài đặt HĐH hoặc bất cứ thứ gì liên quan đến HĐH của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.