Hệ thống tệp đàn hồi (EFS) gắn kết bên ngoài AWS


22

Tôi có một máy chủ nằm ngoài AWS. Tôi muốn có thể gắn một khối EFS vào nó, nhưng tôi không chắc nếu điều đó là có thể.

Có lẽ nếu bạn tạo VPC và bạn tạo đường hầm qua VPN?

Có ai biết nếu điều này là có thể?


Chắc chắn là có thể ... Tôi đã sử dụng EFS từ bên ngoài AWS qua đường hầm TLS được một lúc rồi ... nhưng có một chút "mánh khóe" mà tôi tin rằng bạn sẽ cần phải thực hiện để tạo ra nó công việc. Tôi sẽ xác nhận rằng cách tôi thực hiện là thực sự cần thiết (đã được một thời gian kể từ khi tôi thiết lập nó) hoặc liệu có thể nếu không có điều đó, và tôi sẽ đăng câu trả lời một khi tôi có thể xác nhận.
Michael - sqlbot

EFS có nghĩa là một hệ thống tệp được chia sẻ cho nhiều phiên bản EC2. Bên ngoài, bạn nên xem xét sử dụng S3 (tương tự như hệ thống tệp, thực sự là một kho lưu trữ đối tượng) hoặc có thể là một thể hiện EC2 nhỏ với một thể hiện EBS. Hoặc có thể sẽ rẻ hơn EFS - EBS trên SSD là 1/3 giá của EFS, EBS trên từ tính là 1/6 chi phí của EFS và S3 là 1/10 chi phí của EFS. Chính xác thì bạn đang cố gắng đạt được điều gì khiến EFS là lựa chọn tốt nhất?
Tim

Tôi nghĩ rằng vì nó được gọi là hệ thống tệp ELASTIC nên sẽ dễ dàng kết nối nó với bên ngoài AWS. Ngoài ra - nếu tôi muốn sao lưu các tệp ra bên ngoài AWS, sẽ rất khó nếu không thể thực hiện được từ S3. Từ EFS tôi chỉ có thể gắn nó vào một thể hiện EC2 và thực hiện sao lưu. Nhưng nếu cả hai đều yêu cầu VPN, tôi đoán nó sẽ tạo ra rất ít sự khác biệt ...
Adam

S3 có thể dễ dàng truy cập từ bên ngoài AWS, theo thiết kế, dễ dàng hơn nhiều cho việc tích hợp / sao lưu / bất cứ thứ gì thực sự - siêu linh hoạt. EFS được thiết kế như một hệ thống tệp chia sẻ giữa các phiên bản EC2, do đó có thể sẽ khó sử dụng hơn bên ngoài AWS, có thể yêu cầu một phiên bản EC2 làm proxy. Không yêu cầu VPN. Đề nghị bạn cần thảo luận về các trường hợp sử dụng của mình với người có trình độ / kinh nghiệm thay vì đưa ra các giả định và nhảy vào.
Tim

Câu trả lời:


39

Cập nhật quan trọng:

Vào tháng 10 năm 2018, AWS đã mở rộng khả năng của công nghệ mạng làm nền tảng cho EFS để giờ đây nó hoạt động trên các kết nối VPN được quản lý và tiên phong VPC xuyên khu vực, mà không cần dùng đến cách giải quyết proxy chi tiết bên dưới.

https://aws.amazon.com/about-aws/whats-new/2018/10/amazon-efs-now-supports-aws-vpn-and-inter-region-vpc-peering/

EFS đã thêm hỗ trợ cho kết nối thông qua các mạch Kết nối trực tiếp AWS vào cuối năm 2016.

https://aws.amazon.com/bloss/aws/amazon-efs-update-on-premises-access-via-direct-connect-vpc/


Nhận xét đã đưa ra một số vấn đề thú vị, vì trong lần đọc câu hỏi đầu tiên của tôi, tôi có thể đã giả sử quen thuộc hơn với EFS hơn bạn có thể có.

Vì vậy, đầu tiên, một chút nền tảng:

"Đàn hồi" trong Hệ thống tệp đàn hồi chủ yếu đề cập đến việc tự động mở rộng không gian lưu trữ và thông lượng - không phải là tính linh hoạt truy cập bên ngoài.

EFS dường như không có bất kỳ giới hạn có ý nghĩa nào về lượng dữ liệu bạn có thể lưu trữ. Kích thước tối đa được ghi lại của bất kỳ tệp nào trên một khối EFS là 52,673,613,135,872 byte (52 TiB) . Hầu hết các giới hạn khác đều hào phóng tương tự.

EFS đặc biệt "co giãn" theo cách nó được lập hóa đơn. Không giống như các hệ thống tập tin trên khối lượng EBS, không gian không được phân bổ trên EFS và bạn chỉ trả tiền cho những gì bạn lưu trữ trên cơ sở trung bình hàng giờ. Khoản phí của bạn tăng và thu hẹp (chúng là "co giãn") dựa trên số tiền bạn đã lưu trữ. Khi bạn xóa các tệp, bạn ngừng trả tiền cho không gian họ chiếm trong vòng một giờ. Nếu bạn lưu trữ 1 GB trong 750 giờ (≅1 tháng) và sau đó xóa nó hoặc nếu bạn lưu trữ 375 GB trong 2 giờ và sau đó xóa nó, hóa đơn hàng tháng của bạn sẽ giống ... 0,30 đô la. Điều này tất nhiên khá khác so với EBS, nó sẽ vui vẻ gửi hóa đơn cho bạn $ 37,50 để lưu trữ 375 GB0x00 cho các giờ còn lại trong tháng.

Mô hình định giá lưu trữ của S3 giống như EFS, vì thanh toán cho lưu trữ dừng ngay khi bạn xóa một đối tượng và chi phí bằng ~ 1/10 chi phí của EFS, nhưng như tôi và những người khác đã đề cập nhiều lần, S3 không phải là một hệ thống tập tin. Các tiện ích như s3fs-fuse cố gắng cung cấp "cầu trở kháng" nhưng có những khó khăn cố hữu trong việc cố gắng xử lý một cái gì đó không thực sự là một hệ thống tập tin như nó (sự nhất quán cuối cùng đối với việc ghi đè không phải là ít nhất trong số chúng). Vì vậy, nếu một "hệ thống tập tin" thực sự là những gì bạn cần và đối với một ứng dụng cần chia sẻ quyền truy cập hoặc không gian lưu trữ cần thiết thì khó xác định hoặc bạn muốn mở rộng theo yêu cầu, EFS có thể hữu ích.

Và, nó trông thật tuyệt khi bạn có 8.0 EiB không gian trống.

$ df -h | egrep '^Filesystem|efs'
Filesystem                                            Size  Used Avail Use% Mounted on
us-west-2a.fs-5ca1ab1e.efs.us-west-2.amazonaws.com:/  8.0E  121G  8.0E   1% /srv/efs/fs-5ca1ab1e
us-west-2a.fs-acce55ed.efs.us-west-2.amazonaws.com:/  8.0E  7.2G  8.0E   1% /srv/efs/fs-acce55ed

Nhưng tất nhiên, điều quan trọng là sử dụng dịch vụ lưu trữ phù hợp nhất với các ứng dụng của bạn. Mỗi tùy chọn có trường hợp sử dụng hợp lệ của nó. EFS có lẽ là giải pháp lưu trữ chuyên dụng nhất do AWS cung cấp, có bộ trường hợp sử dụng hẹp hơn so với EBS hoặc S3.


Nhưng bạn có thể sử dụng nó từ bên ngoài VPC không?

Câu trả lời chính thức là Không :

Việc gắn hệ thống tệp qua các cơ chế kết nối riêng của VPC như kết nối VPN, tiên phong VPC và Kết nối trực tiếp AWS không được hỗ trợ.

- http://docs.aws.amazon.com/efs/latest/ug/limits.html

EFS hiện chỉ giới hạn ở chỉ truy cập EC2 Linux. Điều đó cũng trong VPC. Nhiều tính năng sẽ được bổ sung sớm. Bạn có thể theo dõi các thông báo AWS cho các tính năng mới được đưa ra.

- https://forums.aws.amazon.com/thread.jspa?messageID=732749

Tuy nhiên, câu trả lời thực tế là Có , mặc dù đây không phải là cấu hình được hỗ trợ chính thức. Để làm cho nó hoạt động, một số bước đặc biệt được yêu cầu.

Mỗi hệ thống tệp EFS được gán địa chỉ IP điểm cuối trong VPC của bạn bằng giao diện mạng đàn hồi (ENI), thường là một địa chỉ trên mỗi vùng khả dụng và bạn muốn chắc chắn rằng bạn gắn địa chỉ trong vùng khả dụng khớp với thể hiện, không chỉ vì lý do hiệu suất, mà cũng bởi vì phí băng thông được áp dụng khi vận chuyển dữ liệu qua các ranh giới vùng khả dụng.

Điều thú vị về các ENI này là chúng dường như không sử dụng các bảng lộ trình cho các mạng con mà chúng được gắn vào. Họ dường như chỉ có thể phản hồi các trường hợp bên trong VPC, bất kể cài đặt nhóm bảo mật (mỗi hệ thống tệp EFS có nhóm bảo mật riêng để kiểm soát quyền truy cập).

Vì không có tuyến đường bên ngoài nào có thể truy cập được, tôi không thể truy cập các điểm cuối EFS trực tiếp qua VPN phần cứng của mình ... vì vậy tôi đã chuyển sang sử dụng HAProxy cũ của mình, điều thực sự (như @Tim dự đoán) là cần thiết để thực hiện công việc này. Đây là một cấu hình đơn giản, vì EFS chỉ sử dụng cổng TCP 2049.

Tôi đang sử dụng HAProxy trên t2.nano (HAProxy rất hiệu quả), với cấu hình trông giống như thế này:

listen fs-8d06f00d-us-east-1
    bind :2049
    mode tcp
    option tcplog
    timeout tunnel 300000 
    server fs-8d06f00d-us-east-1b us-east-1b.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000
    server fs-8d06f00d-us-east-1c us-east-1c.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000 backup
    server fs-8d06f00d-us-east-1d us-east-1d.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000 backup

Máy chủ này ở chế độ us-East-1b, vì vậy nó sử dụng điểm cuối us-East-1b làm chính, hai cái còn lại làm bản sao lưu nếu điểm cuối trong 1b không bao giờ kiểm tra sức khỏe.

Nếu bạn có VPN vào VPC của mình, thì bạn sẽ gắn kết âm lượng bằng địa chỉ IP của phiên bản proxy này làm mục tiêu (thay vì sử dụng trực tiếp điểm cuối EFS) và voilà bạn đã gắn hệ thống tệp EFS từ bên ngoài VPC.

Tôi đã gắn kết nó thành công trên các máy Ubuntu bên ngoài cũng như các máy chủ Solaris¹ (nơi EFS đã được chứng minh là rất tiện dụng để đẩy nhanh việc ngừng hoạt động của chúng bằng cách giúp di chuyển các dịch vụ ra khỏi chúng dễ dàng hơn).

Đối với một số trường hợp nhất định, như di chuyển dữ liệu vào AWS hoặc chạy các hệ thống đám mây và di sản song song trên dữ liệu cụ thể trong quá trình di chuyển, EFS có vẻ như là một người chiến thắng.

Tất nhiên, các hệ thống cũ, có thời gian khứ hồi cao hơn, sẽ không hoạt động tốt như các trường hợp EC2, nhưng đó là điều được mong đợi - không có ngoại lệ đối với các định luật vật lý. Mặc dù vậy, EFS và cổng HAProxy dường như là một giải pháp ổn định để làm cho nó hoạt động bên ngoài.

Nếu bạn không có VPN, thì một cặp máy HAProxy, một trong AWS và một trong trung tâm dữ liệu của bạn, cũng có thể chuyển EFS qua TLS, thiết lập kết nối TCP riêng với tải trọng được bọc trong TLS để vận chuyển từng EFS riêng lẻ kết nối trên Internet. Về mặt kỹ thuật không phải là VPN, mà là đường hầm được mã hóa của các kết nối. Điều này dường như cũng thực hiện khá tốt.


Solaris 10 (không đáng ngạc nhiên) có phần bị phá vỡ theo mặc định - ban đầu, root dường như không có đặc quyền - các tệp trên ổ EFS được tạo bởi root được sở hữu bởi root nhưng không thể được chownchuyển sang người dùng khác từ Máy Solaris ( Operation not permitted), mặc dù mọi thứ hoạt động như mong đợi từ các máy khách Ubuntu. Giải pháp, trong trường hợp này là đánh bại trình nền ánh xạ ID NFS trên máy Solaris bằng cách sử dụng svcadm disable svc:/network/nfs/mapid:default. Dừng dịch vụ này làm cho mọi thứ hoạt động như mong đợi. Ngoài ra, /usr/sbin/quotacần phải vô hiệu hóa yêu cầu trên mỗi lần đăng nhập /etc/profile. Có thể có giải pháp tốt hơn hoặc đúng hơn, nhưng đó là Solaris, vì vậy tôi không đủ tò mò để điều tra.


2
Đó là một câu trả lời tuyệt vời, nhưng tôi tin rằng bạn đã hỏi sai câu hỏi. Tôi có thể chặt cây bằng nĩa, nhưng có những công cụ tốt hơn cho công việc.
Tim

Đôi khi tôi tự hỏi liệu có ai phát hiện ra bất kỳ trong số 3 quả trứng Phục sinh nhỏ thú vị mà tôi đưa vào câu trả lời này không.
Michael - sqlbot

4
5ca1ab1e (có thể mở rộng) và acce55ed (truy cập) và 8d06f00d (dogfood)?
runamok

2
Đó là "ăn thức ăn cho chó" ... nhưng đủ gần, @runamok :)
Michael - sqlbot

2
Tôi rất thích nhìn thấy ai đó chặt cây bằng nĩa
Jam Risser

0

Kể từ ngày 20 tháng 12 năm 2016, Amazon đã công bố AWS Direct Connect có thể được sử dụng để gắn kết hệ thống tệp EFS trên các máy chủ tại chỗ. Vì vậy, về cơ bản, có một tính năng gốc cho phép bạn sử dụng AWS EFS bên ngoài VPC.

Như một điều kiện tiên quyết, bạn sẽ phải kích hoạt và thiết lập kết nối AWS Direct Connect, sau đó sử dụng nfs-utils như bạn nên sử dụng khi gắn EFS trong các phiên bản EC2.

Thông tin thêm có thể được tìm thấy tại URL theo dõi f . Tôi vừa đăng bài này, vì tôi cũng đã tìm kiếm tương lai này, để những người khác nhận thức được rằng có giải pháp riêng cho kết nối EFS bên ngoài VPC.

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.