fbpx Amazon EBS (Elastic Block Store) là gì? Mô hình kiến trúc: EC2 + EBS Skip to main content
aws

Amazon EBS (Elastic Block Store) là gì? Mô hình kiến trúc: EC2 + EBS

💾 Amazon EBS (Elastic Block Store) là gì?

Amazon EBS (Elastic Block Store) là dịch vụ lưu trữ block-level (từng khối dữ liệu) dùng cho EC2 instance. Nó hoạt động giống như ổ cứng ảo (virtual hard disk) được gắn vào EC2 và dùng để:

  • Lưu trữ hệ điều hành (volume root)

  • Lưu dữ liệu ứng dụng (CSDL, file, log...)

  • Lưu snapshot để backup/restore


🧠 Đặc điểm chính của EBS

Tính năng Mô tả
Block-level Hoạt động giống ổ cứng vật lý; khác với S3 (object storage)
Gắn vào EC2 Volume được attach/detach với EC2 instance
Tồn tại độc lập Volume vẫn tồn tại sau khi EC2 bị dừng hoặc terminate (nếu không chọn xóa)
Snapshot backup Có thể tạo snapshot sang S3 để backup/clone
I/O hiệu suất cao Có loại volume tối ưu IOPS (io1/io2), throughput (gp3)
Encrypted at rest Tự động mã hoá bằng KMS

📦 Phân loại volume EBS

Loại Volume Đặc điểm chính Dùng cho
gp3 SSD, hiệu suất cao, cost thấp Web servers, dev/test workloads
io1/io2 SSD, tùy chỉnh IOPS CSDL cần IOPS cao (MySQL, Oracle)
st1 HDD, throughput cao Big data, log processing
sc1 HDD, chi phí thấp Archive hoặc workload ít truy cập

🛠 Use Case điển hình

  • EC2 boot volume: nơi chứa hệ điều hành

  • Cài đặt database như PostgreSQL, MySQL

  • Thêm volume lưu log hoặc lưu dữ liệu lớn

  • Sao lưu dữ liệu bằng Snapshot


🔄 So sánh nhanh EBS vs S3

Tiêu chí EBS S3
Mức lưu trữ Block (ổ cứng) Object (file, key-value)
Gắn vào EC2 Có (mount như ổ đĩa) Không
Hiệu suất Thấp trễ, cao IOPS Thích hợp phân phối file
Use Case HĐH, DB, log, file tạm thời Backup, ảnh, video, tệp lớn

Bạn muốn mình minh họa kiến trúc EC2 + EBS hoặc viết script gắn EBS tự động khi tạo EC2 không?


🏗️ Mô hình kiến trúc: EC2 + EBS

         +---------------------------------------+
         |               AWS EC2                 |
         |         Instance (Ubuntu/Linux)       |
         |  - Cài ứng dụng web, DB, logs...      |
         +----------------+----------------------+
                          |
           +--------------v--------------+
           |        EBS Volume 1         |  (Root volume – hệ điều hành)
           |   /dev/xvda                 |  (gp3 – SSD 8GB~30GB)
           +-----------------------------+
                          |
           +--------------v--------------+
           |        EBS Volume 2         |  (Data volume – lưu app/data/logs)
           |   /dev/xvdf                 |  (io1 – IOPS cao hoặc st1 – HDD)
           +-----------------------------+

🔑 Các thành phần chính

Thành phần Mô tả
EC2 Instance Máy chủ ảo, có thể cài web server, app, DB
EBS Volume 1 Volume chính, thường dùng để chứa OS (Ubuntu, Amazon Linux...)
EBS Volume 2 Volume phụ, dùng để lưu trữ dữ liệu tách biệt với hệ điều hành
Mount Point Volume được mount vào thư mục (ví dụ: /data, /var/log, /mnt/storage)

💡 Ưu điểm kiến trúc EC2 + EBS

  • Tách biệt dữ liệu ứng dụng và hệ điều hành → dễ backup / scale

  • Volume có thể snapshot → phục hồi nhanh khi hỏng hóc

  • Có thể attach/detach EBS từ instance này sang instance khác


🛠 Thực tế triển khai

  1. Tạo EC2 instance với root volume (EBS)

  2. Tạo thêm EBS Volume → attach vào EC2

  3. Trên EC2:

    sudo mkfs -t ext4 /dev/xvdf
    sudo mkdir /data
    sudo mount /dev/xvdf /data
    
  4. Sử dụng /data cho ứng dụng, DB, logs


Dưới đây là minh họa kiến trúc EC2 kết hợp với Amazon EBS, mô tả cách các volume EBS hoạt động và liên kết với instance EC2:


🏗️ Mô hình kiến trúc: EC2 + EBS

         +---------------------------------------+
         |               AWS EC2                 |
         |         Instance (Ubuntu/Linux)       |
         |  - Cài ứng dụng web, DB, logs...      |
         +----------------+----------------------+
                          |
           +--------------v--------------+
           |        EBS Volume 1         |  (Root volume – hệ điều hành)
           |   /dev/xvda                 |  (gp3 – SSD 8GB~30GB)
           +-----------------------------+
                          |
           +--------------v--------------+
           |        EBS Volume 2         |  (Data volume – lưu app/data/logs)
           |   /dev/xvdf                 |  (io1 – IOPS cao hoặc st1 – HDD)
           +-----------------------------+

🔑 Các thành phần chính

Thành phần Mô tả
EC2 Instance Máy chủ ảo, có thể cài web server, app, DB
EBS Volume 1 Volume chính, thường dùng để chứa OS (Ubuntu, Amazon Linux...)
EBS Volume 2 Volume phụ, dùng để lưu trữ dữ liệu tách biệt với hệ điều hành
Mount Point Volume được mount vào thư mục (ví dụ: /data, /var/log, /mnt/storage)

💡 Ưu điểm kiến trúc EC2 + EBS

  • Tách biệt dữ liệu ứng dụng và hệ điều hành → dễ backup / scale

  • Volume có thể snapshot → phục hồi nhanh khi hỏng hóc

  • Có thể attach/detach EBS từ instance này sang instance khác


🛠 Thực tế triển khai

  1. Tạo EC2 instance với root volume (EBS)

  2. Tạo thêm EBS Volume → attach vào EC2

  3. Trên EC2:

    sudo mkfs -t ext4 /dev/xvdf
    sudo mkdir /data
    sudo mount /dev/xvdf /data
    
  4. Sử dụng /data cho ứng dụng, DB, logs


Đây là sơ đồ kiến trúc trực quan thể hiện cách EC2 instance kết nối với hai EBS volumes:

  • Một volume chứa hệ điều hành (Root volume – /dev/xvda)

  • Một volume lưu dữ liệu ứng dụng, logs hoặc database (/dev/xvdf)

AWSTemplateFormatVersion: "2010-09-09"
Description: EC2 with attached EBS volume and Apache installation

Parameters:
  KeyName:
    Description: EC2 KeyPair name
    Type: AWS::EC2::KeyPair::KeyName

Resources:

  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: t2.micro
      KeyName: !Ref KeyName
      ImageId: ami-0c55b159cbfafe1f0  # Ubuntu 22.04 (us-east-1)
      SecurityGroupIds:
        - !Ref InstanceSecurityGroup
      AvailabilityZone: !Select [ 0, !GetAZs '' ]
      UserData: 
        Fn::Base64: !Sub |
          #!/bin/bash
          apt update -y
          apt install apache2 -y
          systemctl start apache2
          systemctl enable apache2
          mkfs -t ext4 /dev/xvdf
          mkdir /data
          mount /dev/xvdf /data
          echo "/dev/xvdf /data ext4 defaults,nofail 0 2" >> /etc/fstab

  EBSVolume:
    Type: AWS::EC2::Volume
    Properties:
      Size: 8
      AvailabilityZone: !GetAtt MyInstance.AvailabilityZone
      VolumeType: gp3
      Tags:
        - Key: Name
          Value: SecondaryVolume

  VolumeAttachment:
    Type: AWS::EC2::VolumeAttachment
    Properties:
      InstanceId: !Ref MyInstance
      VolumeId: !Ref EBSVolume
      Device: /dev/sdf

  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Allow HTTP & SSH
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0

Outputs:
  InstancePublicIP:
    Description: Public IP of the EC2 instance
    Value: !GetAtt MyInstance.PublicIp
 

About

Công ty thiết kế web app chuyên thiết kế web và các dịch vụ maketing digital, seo, google adword...