EFS

Amazon Elastic File System (EFS) là một dịch vụ lưu trữ tệp (file storage) được cung cấp bởi AWS, được thiết kế để cung cấp hệ thống tệp chia sẻ, có thể mở rộng và dễ dàng truy cập cho nhiều phiên bản EC2 hoặc các dịch vụ AWS khác. Dưới đây là hướng dẫn chi tiết về EFS, bao gồm các đặc điểm, cách sử dụng, chi phí, và so sánh với các dịch vụ khác như EBS.


1. EFS là gì?

  • EFS là một hệ thống tệp mạng (Network File System - NFS) được quản lý hoàn toàn, cho phép nhiều phiên bản EC2, container, hoặc các dịch vụ AWS khác truy cập đồng thời vào cùng một hệ thống tệp.

  • Nó cung cấp khả năng lưu trữ chia sẻ, dễ dàng mở rộng dung lượng mà không cần quản lý thủ công.

  • EFS phù hợp cho các ứng dụng yêu cầu hệ thống tệp chung, như ứng dụng web, CMS (Content Management Systems), hoặc các workload phân tích dữ liệu.


2. Các đặc điểm chính của EFS

  • Khả năng chia sẻ: Hỗ trợ hàng nghìn kết nối đồng thời từ các EC2 instances, Lambda functions, hoặc container trong cùng hoặc khác vùng (VPC).

  • Tự động mở rộng: Dung lượng EFS tự động tăng hoặc giảm theo nhu cầu, không cần cấu hình trước.

  • Hiệu suất linh hoạt: Cung cấp hai chế độ hiệu suất (General Purpose và Max I/O) để phù hợp với các workload khác nhau.

  • Tính bền vững: Dữ liệu được sao chép trên nhiều Availability Zones (AZs) trong một Region, đảm bảo độ bền 99.999999999% (11 số 9).

  • Mã hóa: Hỗ trợ mã hóa dữ liệu tại rest và trong quá trình truyền tải với AWS KMS.

  • Tích hợp với AWS: Hoạt động tốt với EC2, ECS, EKS, Lambda, và AWS Backup.


3. Các chế độ hiệu suất của EFS

EFS cung cấp hai chế độ hiệu suất và hai chế độ throughput để tối ưu hóa cho các workload khác nhau:

Chế độ hiệu suất (Performance Mode):

  • General Purpose (mục đích chung): Phù hợp cho các ứng dụng nhạy cảm với độ trễ, như ứng dụng web, CMS, hoặc DevOps pipeline. Đây là chế độ mặc định.

  • Max I/O: Tối ưu cho các workload yêu cầu thông lượng cao nhưng không nhạy cảm với độ trễ, như xử lý dữ liệu lớn hoặc media processing.

Chế độ thông lượng (Throughput Mode):

  • Bursting: Thông lượng tăng theo dung lượng lưu trữ (mặc định, phù hợp với hầu hết các workload).

  • Provisioned: Cho phép chỉ định thông lượng cố định (MB/s), phù hợp với các ứng dụng yêu cầu thông lượng cao và ổn định.

Lưu ý:

  • General Purpose có giới hạn về số lượng thao tác tệp mỗi giây, trong khi Max I/O không có giới hạn này nhưng độ trễ cao hơn.

  • Thông lượng tối đa có thể đạt hàng GB/s, tùy thuộc vào cấu hình.


4. Các tính năng quan trọng của EFS

  • Hệ thống tệp đa AZ: Dữ liệu được lưu trữ trên nhiều AZ, đảm bảo tính sẵn sàng cao (99.99%).

  • Access Points: Cho phép giới hạn quyền truy cập vào các thư mục cụ thể trong hệ thống tệp, tăng cường bảo mật.

  • Lifecycle Management: Tự động chuyển dữ liệu ít truy cập sang lớp lưu trữ chi phí thấp (Infrequent Access - IA) để tiết kiệm chi phí.

  • Backup: Tích hợp với AWS Backup để sao lưu và khôi phục hệ thống tệp.

  • Cross-Region Access: Có thể truy cập EFS từ các Region khác hoặc on-premises thông qua AWS Direct Connect/VPN.

  • File System Policies: Hỗ trợ quản lý quyền truy cập bằng IAM policies.


5. Cách sử dụng EFS

Dưới đây là các bước cơ bản để tạo và sử dụng EFS:

  1. Tạo File System:

    • Truy cập AWS Management Console > EFS > Create File System.

    • Chọn VPC, cấu hình Availability Zones, và chọn chế độ hiệu suất (General Purpose hoặc Max I/O).

    • (Tùy chọn) Bật mã hóa hoặc cấu hình Lifecycle Management.

  2. Cấu hình Mount Targets:

    • EFS yêu cầu tạo mount targets trong mỗi AZ của VPC để EC2 có thể kết nối.

    • Gán security groups để kiểm soát truy cập.

  3. Gắn EFS vào EC2:

    • SSH vào EC2 instance.

    • Cài đặt client NFS (ví dụ: amazon-efs-utils trên Amazon Linux).

    • Gắn EFS bằng lệnh mount (ví dụ: mount -t efs fs-12345678:/ /mnt/efs).

    • Thêm vào /etc/fstab để tự động gắn khi khởi động.

  4. Sử dụng với các dịch vụ khác:

    • ECS/EKS: Gắn EFS vào container thông qua volume definitions.

    • Lambda: Truy cập EFS thông qua VPC configuration.

  5. Sao lưu và quản lý:

    • Sử dụng AWS Backup để tạo lịch sao lưu.

    • Quản lý lifecycle để chuyển dữ liệu sang lớp Infrequent Access.


6. Chi phí EFS

  • Chi phí phụ thuộc vào:

    • Dung lượng lưu trữ: Tính theo GB/tháng.

    • Lớp lưu trữ: Standard (truy cập thường xuyên) hoặc Infrequent Access (IA, chi phí thấp hơn).

    • Thông lượng Provisioned: Nếu sử dụng chế độ Provisioned Throughput.

    • Yêu cầu dữ liệu: Chi phí cho dữ liệu đọc/ghi.

  • Ví dụ giá (tham khảo, khu vực us-east-1, 2023):

    • Standard: $0.30/GB/tháng.

    • Infrequent Access (IA): $0.025/GB/tháng.

    • Provisioned Throughput: $6.00/MB/s/tháng.

  • Mẹo tiết kiệm chi phí:

    • Bật Lifecycle Management để chuyển dữ liệu ít sử dụng sang IA.

    • Sử dụng Bursting Throughput thay vì Provisioned nếu workload không yêu cầu thông lượng cố định.

    • Theo dõi sử dụng bằng AWS Cost Explorer.


7. Trường hợp sử dụng phổ biến

  • Ứng dụng web: Lưu trữ tệp tĩnh (hình ảnh, video) cho các ứng dụng web chia sẻ trên nhiều EC2.

  • CMS: WordPress, Drupal sử dụng EFS để lưu trữ nội dung chia sẻ.

  • DevOps: Lưu trữ mã nguồn, pipeline CI/CD, hoặc artifact cho Jenkins, GitLab.

  • Big Data: Hệ thống tệp chia sẻ cho Hadoop, Spark, hoặc các công cụ phân tích.

  • Container/Orchestration: Lưu trữ dữ liệu cho ECS, EKS, hoặc Kubernetes.

  • Sao lưu và khôi phục: Lưu trữ dữ liệu lâu dài với AWS Backup.


8. Hạn chế và lưu ý

  • Hạn chế:

    • EFS có độ trễ cao hơn EBS, không phù hợp cho các ứng dụng yêu cầu IOPS cao (như cơ sở dữ liệu).

    • Chi phí cao hơn EBS hoặc S3 cho một số workload.

    • Chỉ hỗ trợ giao thức NFSv4, không tương thích với SMB (Windows File Sharing).

  • Lưu ý:

    • Cấu hình security groups cẩn thận để giới hạn truy cập.

    • Theo dõi hiệu suất với CloudWatch để đảm bảo đáp ứng nhu cầu workload.

    • Sử dụng Access Points để quản lý quyền truy cập chi tiết.


9. So sánh EFS với EBS và các dịch vụ khác

Dịch vụ

Loại lưu trữ

Đặc điểm

Ứng dụng

EFS

File Storage

Hệ thống tệp chia sẻ, đa AZ, tự động mở rộng.

Ứng dụng web, CMS, DevOps, Big Data.

EBS

Block Storage

Ổ đĩa gắn vào một EC2, hiệu suất cao, giới hạn một AZ.

Cơ sở dữ liệu, hệ thống tệp đơn lẻ.

S3

Object Storage

Lưu trữ đối tượng, chi phí thấp, không phải hệ thống tệp.

Backup, dữ liệu tĩnh, archive.

FSx

File Storage

Hệ thống tệp chuyên dụng (Windows File Server, Lustre).

Ứng dụng Windows, HPC.

So sánh EFS và EBS chi tiết:

  • EFS: Chia sẻ giữa nhiều EC2, tự động mở rộng, đa AZ, chi phí cao hơn.

  • EBS: Chỉ gắn vào một EC2 (trừ Multi-Attach), hiệu suất cao hơn, giới hạn một AZ, chi phí thấp hơn cho workload nhỏ.


10. Tài liệu và công cụ hỗ trợ

  • Tài liệu chính thức: AWS EFS Documentation

  • Công cụ quản lý:

    • AWS Management Console: Quản lý file system và mount targets.

    • AWS CLI/SDK: Tự động hóa thao tác EFS.

    • CloudWatch: Theo dõi hiệu suất và thông lượng.

  • Học thêm:

    • AWS Free Tier: EFS không nằm trong Free Tier, nhưng bạn có thể thử với chi phí thấp.

    • AWS Training: Các khóa học về EFS trên AWS Skill Builder.


Last updated