AWS, Băng thông và phân phối nội dung


31

Câu hỏi của tôi là về Máy ảo và phân phối nội dung của chúng qua kết nối máy chủ với internet.

Tôi có một phiên bản cửa sổ Ec2 và kết nối mạng của nó có vẻ là 100mbps

Nếu tôi được phân phối nội dung từ ví dụ EC2 đó, đó có phải là nút cổ chai tiềm năng của tôi không?

Làm thế nào để s3 khác nhau, tôi đoán họ không có nút cổ chai bên ngoài tiềm năng thực sự với s3?

Lưu ý: Tôi biết s3 và CDN của họ sẽ tốt hơn cho nội dung tĩnh, tuy nhiên tôi cần khám phá tình huống này ngay bây giờ. Các trang HTML của chúng tôi cần truy cập vào trang bên máy chủ thông qua AJAX và vì không có công việc chống bom nào cho vấn đề này tại thời điểm này, nội dung của chúng tôi và máy chủ của chúng tôi cần phải ở trên cùng một tên miền, do đó, quy tắc này sử dụng S3.

Băng thông cần thiết: Tôi không chắc chắn, chúng tôi có thể có tới 100 người dùng tải xuống video bất cứ lúc nào, có thể không còn nữa. Video có thể lên tới 5mb mỗi video, nhưng họ sẽ xem tới 20.


"Chúng tôi cần HTML của chúng tôi để truy cập proxy thông qua JS" ... Điều đó có nghĩa là gì?
Eric Hammond

Bạn cần bao nhiêu băng thông để sử dụng lúc cao điểm?
Eric Hammond

@EricHammond Tôi đã cập nhật câu hỏi của mình với một số thông tin khác
Keeno

Tôi không có vẻ như bạn có bất kỳ lý do cụ thể nào để siêu tập trung vào bất kỳ tắc nghẽn tiềm năng cụ thể nào vào thời điểm này. Xây dựng dịch vụ của bạn bằng cách sử dụng các thực tiễn tốt nhất phổ biến cho khả năng mở rộng và sau đó điều tra và giải quyết các vấn đề về hiệu suất khi chúng phát sinh. Phục vụ video thông qua CDN.
Eric Hammond

1
Keeno: Tôi quen thuộc với chính sách xuất xứ tương tự trong JS, nhưng vẫn không hiểu tại sao điều đó sẽ ngăn bạn phục vụ nội dung video với một tên miền khác (CDN). Đây là thực tế phổ biến.
Eric Hammond

Câu trả lời:


60

Tôi không thể nói cho các phiên bản Windows, nhưng tôi sẽ cho rằng các đặc điểm cơ bản của chúng khá giống với các phiên bản Linux.

Ước tính của bạn cho việc sử dụng băng thông là 100 lượt tải video đồng thời (Tôi không chắc bạn có nghĩa là tải xuống tệp hoặc truyền phát video hay không - tôi sẽ giả sử sau). Nếu chúng tôi có tốc độ truyền phát 512kb / giây, bạn cần khoảng 51Mbit / s hoặc 6,5MB / s.

Các phiên bản EC2 khác nhau về hiệu suất I / O của chúng (bao gồm cả băng thông). Có 3 mức hiệu suất I / O: thấp, trung bình và cao. Tuy nhiên, hãy nhớ rằng I / O của đĩa đó (tức là từ các khối EBS) cũng phụ thuộc vào băng thông. Bạn chỉ có thể thực sự xem xét băng thông trong mạng EC2 (vì nó sẽ hoàn toàn thay đổi qua Internet).

Một số số điển hình để định lượng 'thấp', 'trung bình' và 'cao' (các nguồn khác nhau trích dẫn các số khác nhau cho các giá trị lý thuyết, vì vậy chúng có thể không hoàn toàn chính xác).

Cao: Lý thuyết: 1Gbps = 125MB / s; Thực tế ( nguồn ): 750Mbps = 95MB / s

Trung bình: Lý thuyết: 250Mbps; Thực tế ( nguồn, p57 ): 80Mbps = 10MB / s

Thấp: Lý thuyết: 100Mbps; Thực tế (từ các thử nghiệm của riêng tôi): 10-15Mbps = 1-2MB / s

(Thực tế cũng có mức 'rất cao' (lý thuyết 10Gbps) nhưng chỉ áp dụng cho các trường hợp tính toán cụm).

Một điểm nữa được đề cập là mức độ biến đổi. Trong các trường hợp nhỏ hơn, hiệu suất sẽ thay đổi nhiều hơn do các thành phần vật lý được chia sẻ giữa nhiều máy ảo hơn. Bất kể, bạn có thể mong đợi khoảng +/- 20% hiệu suất của bạn (nguồn: 1 , 2 , 3 ). Trong trường hợp của bạn (theo các giả định / tính toán ở trên cùng), bạn có thể cần băng thông tối đa 13MB / s (gấp đôi 6,5 MBps, vì I / O của đĩa cũng bị giới hạn mạng). Nếu bạn đang chuyển nội dung băng thông thấp hơn, bạn sẽ có thể sử dụng một thể hiện với hiệu suất I / O 'vừa phải (xem trang loại thể hiện), nếu tính toán của bạn dẫn đến yêu cầu băng thông cao hơn, bạn sẽ cần một phiên bản có hiệu suất I / O 'cao'. Việc truyền dữ liệu đơn giản không nên bị ràng buộc CPU hoặc bộ nhớ, nhưng duy trì 100 kết nối đồng thời có thể sẽ yêu cầu ít nhất một thể hiện có kích thước trung bình - và nếu băng thông là mối quan tâm, dựa trên các trường hợp trên, một ví dụ lớn sẽ là một đặt cược an toàn hơn).

Tôi sẽ khuyên bạn nên điểm chuẩn các máy chủ bạn khởi chạy để xem chúng có đáp ứng nhu cầu (được tính toán) của bạn không. Khởi chạy hai phiên bản (cùng loại) và chạy iperftrên mỗi phiên bản bằng cách sử dụng địa chỉ IP riêng của cá thể - bạn sẽ cần mở cổng 5001 trong nhóm bảo mật của mình nếu bạn chạy nó với cài đặt mặc định). Ngoài ra, hầu hết các thử nghiệm bên ngoài mạng EC2 cho thấy kết quả trong khoảng 80-130Mbps (trường hợp lớn) - mặc dù những con số như vậy không nhất thiết có ý nghĩa.

Một CDN sẽ phù hợp hơn với nhu cầu của bạn, nếu thiết lập của bạn cho phép nó. S3 dường như có giới hạn khoảng 50 MB / giây cho băng thông (ít nhất là từ một ví dụ) theo bài viết này , nhưng cao hơn mức bạn cần (S3 không hỗ trợ phát trực tuyến). Cloudfront sẽ phù hợp hơn với nhiệm vụ của bạn (vì nó được thiết kế dưới dạng CDN) và hỗ trợ 1000Mbps = 125MB / s theo mặc định ( nguồn ) với băng thông cao hơn có sẵn theo yêu cầu và cũng có thể truyền phát nội dung)


Nơi nào bạn nhận được giá trị Mbps "lý thuyết" của bạn? Tôi không thể tìm thấy bất kỳ nguồn tài liệu chính thức hoặc không chính thức cho những con số này.
dtheodor

4
Những con số đó bây giờ có vẻ khá khác nhau (và dường như tôi không thể theo dõi các nguồn cho chúng vào lúc này). Rất nhiều thứ đã thay đổi sau 4 năm. Được biết, EC2 có các kết nối 10Gbps trong các nhóm cụm. AWS được sử dụng để (trong năm 2007) trích dẫn một con số băng thông cục bộ 250Mbps. Hiện tại, băng thông mạng được chia sẻ giữa các phiên bản, với mức độ ưu tiên được phân bổ dựa trên loại thể hiện (và có thể là các yếu tố như tối ưu hóa EBS). Ít nhất là một phần, kích thước cá thể xác định có bao nhiêu trường hợp khác mà bạn chia sẻ tài nguyên. Nếu mạng không được sử dụng, cá thể của bạn sẽ được chia sẻ lớn hơn.
cyberx86

Xin lỗi, đây không phải chủ đề, nhưng tôi không biết làm cách nào khác để liên hệ với @ cyberx86 nhưng chỉ cho bạn biết rằng chứng nhận ssl cho trang web của bạn đã hết hạn một tuần trước. Xin lỗi vì đã bình luận ở đây, nhưng không thể tìm thấy địa chỉ email cho bạn.
Kevin Lyda

1
@KevinLyda Cảm ơn. Mặc dù tôi biết rằng chứng chỉ đã hết hạn, nhưng trang web đó đã không được cập nhật một thời gian - vì vậy đây là cơ hội tốt để chuyển sang gia hạn tự động với LetsEncrypt.
cyberx86

Đúng, đã được sử dụng bản thân mình. Rất dễ dàng để kịch bản (đặc biệt là với các khách hàng không chính thức) và làm việc trong nền.
Kevin Lyda

0

Các con số dường như thay đổi theo thời gian và khi số lượng các loại thể hiện khác nhau sinh sôi nảy nở. Nhưng một số người đăng điểm chuẩn. Tôi đã có một số may mắn bằng cách googling [instance category] ec2 network benchmark.

Ví dụ, tôi muốn biết băng thông của một m4.xlargethể hiện, vì vậy tôi đã tìm kiếm ec2 m4 network benchmark. Tôi tìm thấy kết quả kiểm tra này từ blog kỹ thuật của Washington Post:

Type       Cost    Bandwidth Bandwidth Cost (1Gb/s) Bandwidth Cost EBS optimized
...
m4.xlarge  $0.252  791Mb/s   $0.320                 $0.320
...
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.