Các nguyên tắc cơ bản về bảo vệ dữ liệu: Cách sao lưu một bucket Amazon S3

Amazon S3 là dịch vụ lưu trữ đám mây đáng tin cậy do Amazon Web Services (AWS) cung cấp. Các tệp được lưu trữ dưới dạng các đối tượng (objects) trong các bucket Amazon S3. Dịch vụ lưu trữ này được sử dụng rộng rãi để lưu trữ bản sao lưu dữ liệu nhờ độ tin cậy cao của Amazon S3. Khác với Amazon Elastic Block Storage (EBS), nơi dữ liệu dự phòng được lưu trữ trong một vùng sẵn sàng (availability zone), trong Amazon S3, dữ liệu dự phòng được phân tán trên nhiều vùng sẵn sàng.

Nếu một trung tâm dữ liệu trong một vùng không khả dụng, bạn vẫn có thể truy cập dữ liệu ở vùng khác. Trong một số trường hợp, bạn có thể cần sao lưu dữ liệu được lưu trữ trong các bucket Amazon S3 để tránh mất dữ liệu do lỗi của con người hoặc sự cố phần mềm. Dữ liệu có thể bị xóa hoặc hỏng nếu người dùng có quyền truy cập vào bucket S3 xóa dữ liệu hoặc làm hỏng dữ liệu bằng cách ghi các thay đổi không mong muốn. Sự cố phần mềm cũng có thể gây ra hậu quả tương tự.

Sao lưu trực tiếp lên AWS S3 | NAKIVO

Sao lưu trực tiếp lên AWS S3 | NAKIVO

Tránh tình trạng “điểm lỗi duy nhất” nhờ tích hợp Amazon S3 đơn giản và các tùy chọn bất biến chống ransomware. Tính năng phân tầng sao lưu tự động và khôi phục tức thì.

Phiên bản Amazon S3

Quản lý phiên bản đối tượng là một tính năng hiệu quả trong Amazon S3 bảo vệ dữ liệu trong một bucket khỏi hư hỏng, ghi chép thay đổi không mong muốn và xóa dữ liệu. Khi có sự thay đổi với một tệp (được lưu dưới dạng đối tượng trong S3), thì một phiên bản mới của đối tượng được tạo ra. Nhiều phiên bản của cùng một đối tượng được lưu trữ trong một bucket. Bạn có thể truy cập và khôi phục các phiên bản trước của đối tượng. Nếu đối tượng bị xóa, thì ‘dấu xác nhận xóa’ được áp dụng cho đối tượng, nhưng bạn có thể hoàn tác hành động này và mở phiên bản trước của đối tượng trước khi xóa. Quản lý phiên bản của Amazon S3 có thể được sử dụng mà không cần phần mềm sao lưu S3 bổ sung.

Bạn có thể sử dụng chính sách vòng đời để xác định thời gian các phiên bản nên được lưu trữ trong một bucket S3 để có một dạng sao lưu Amazon S3. Chi phí bổ sung cho việc lưu trữ thêm các phiên bản không đáng kể nếu bạn cấu hình chính sách vòng đời một cách hợp lý, và các phiên bản mới sẽ thay thế các phiên bản cũ nhất. Các phiên bản cũ có thể được xóa hoặc di chuyển đến nơi lưu trữ chi phí thấp hơn (ví dụ, lưu trữ lạnh) để tối ưu chi phí.

Cách kích hoạt quản lý phiên bản AWS S3

Đăng nhập vào AWS Management Console bằng tài khoản có đủ quyền hạn. Nhấp vào Services và sau đó chọn S3 trong danh mục Lưu trữ .

Backup to Amazon S3 – opening the S3 storage page in AWS Management Console

Trong ngăn điều hướng, nhấn Buckets và chọn bucket S3 cần kích hoạt quản lý phiên bản. Trong ví dụ này, tôi chọn bucket với tên blog-bucket01 . Nhấp vào tên bucket để mở chi tiết bucket.

Backup to Amazon S3 – selecting a bucket

Mở tab Properties cho bucket đã chọn.

Trong phần Quản lý Phiên bản Bucket , nhấn vào Edit.

How to enable AWS S3 versioning

Quản lý phiên bản của bucket được vô hiệu hóa mặc định.

Nhấn Enable để bật quản lý phiên bản bucket.

Nhấn Save Changes.

Một mẹo được hiển thị rằng bạn có thể cần phải cập nhật quy tắc vòng đời của mình. Đây là bước tiếp theo.

Editing Amazon S3 versioning settings

Thông báo được hiển thị ở đầu trang nếu các thay đổi cấu hình đã được áp dụng: Đã sửa đổi quản lý phiên bản bucket thành công .

Quy tắc vòng đời

Để cấu hình quy tắc vòng đời cho quản lý phiên bản Amazon S3, hãy đi đến tab Management trên trang của bucket đã chọn. Trong phần Quy tắc vòng đời , nhấn Create lifecycle rule.

How to create a lifecycle rule for a bucket when AWS S3 versioning is enabled

Trang Tạo Quy tắc Vòng đời được mở.

Lifecycle Rule configuration. Nhập tên quy tắc vòng đời, ví dụ: Vòng đời Blog 01 .

Chọn phạm vi quy tắc. Bạn có thể áp dụng các bộ lọc để áp dụng quy tắc vòng đời cho các đối tượng cụ thể hoặc áp dụng quy tắc cho tất cả các đối tượng trong bucket. Xác định các thẻ đối tượng để chỉ định các đối tượng cần áp dụng các hành động trong vòng đời. Nhập khóa và giá trị vào các trường tương ứng, sau đó nhấp vào nút “ Add tag ” để thêm thẻ hoặc nút “ Remove ” để xóa thẻ.

Configuring a lifecycle rule to meet the AWS backup strategy

Lifecycle rule actions. Chọn các hành động mà quy tắc này sẽ thực hiện:

  • Chuyển đổi các phiên bản hiện tại của đối tượng giữa các lớp lưu trữ
  • Chuyển đổi các phiên bản trước đó của đối tượng giữa các lớp lưu trữ
  • Hết hạn các phiên bản hiện tại của đối tượng
  • Xóa vĩnh viễn các phiên bản trước đó của đối tượng
  • Xóa các dấu hiệu xóa đã hết hạn hoặc các tệp tải lên nhiều phần chưa hoàn tất

Using Amazon S3 for backup – configuring lifecycle rule actions

Transition noncurrent versions of objects between storage classes.

Chọn các chuyển đổi lớp lưu trữ và số ngày sau đó các đối tượng sẽ trở thành không còn hiện tại.

Trong ví dụ của tôi, các đối tượng được chuyển từ lớp lưu trữ S3 hiện tại sang Standard-IA sau 35 ngày.

Permanently delete previous versions of objects.

Nhập số ngày sau đó các phiên bản trước phải bị xóa. Giá trị này phải lớn hơn số ngày sau đó các đối tượng trở thành không còn hiện hành. Trong ví dụ của tôi, các đối tượng sẽ bị xóa vĩnh viễn sau 40 ngày.

Nhấp vào Create Rule để tạo quy tắc vòng đời.

AWS S3 backup – configuring options for a lifecycle rule

Sao chép thùng chứa

Thay vì sử dụng tính năng sao lưu tự động của Amazon S3, bạn có thể sao chép thùng chứa sang các vùng khác. Bạn cần tạo một thùng chứa thứ hai làm thùng chứa đích ở một vùng khác và tạo quy tắc sao chép. Sau khi tạo quy tắc sao chép, tất cả các thay đổi được thực hiện trong thùng chứa nguồn sẽ tự động được phản ánh trong thùng chứa đích.

Tìm phần Replication rules trong tab Quản lý của thùng chứa nguồn tại và nhấp vào Create replication rule.

S3 bucket replication is an alternative to Amazon S3 backup

Trang Tạo quy tắc sao chép sẽ mở ra.

Nhập tên quy tắc sao chép, ví dụ: Sao chép bucket S3 blog .

Xác định trạng thái của quy tắc khi quy tắc được tạo (enabled hoặc disabled).

Configuring a replication rule for an S3 bucket

Bucket nguồn. Bucket nguồn đã được chọn sẵn ( blog-bucket01 ).

Chọn phạm vi áp dụng của quy tắc. Bạn có thể áp dụng quy tắc sao chép cho tất cả các đối tượng trong bucket hoặc cấu hình bộ lọc và áp dụng quy tắc cho các đối tượng tùy chỉnh.

Đích đến. Nhập tên bucket đích hoặc nhấp vào Browse S3 và chọn một bucket từ danh sách. Bạn có thể chọn một bucket trong tài khoản này hoặc trong một tài khoản khác. Nếu tính năng phiên bản AWS S3 được bật cho bucket nguồn, thì tính năng phiên bản đối tượng cũng phải được bật cho bucket đích. Vùng đích sẽ được hiển thị cho bucket đích đã chọn. Amazon S3 bucket replication – selecting a bucket

Cấu hình vai trò quản lý danh tính và truy cập (IAM), sau đó chọn lớp lưu trữ và các tùy chọn sao chép bổ sung. Nhấn vào Save để lưu cấu hình và tạo quy tắc sao chép cho bucket.

Configuring options for Amazon S3 bucket replication

Sao lưu AWS S3 trong CLI

AWS CLI là giao diện dòng lệnh mạnh mẽ để làm việc với các dịch vụ khác nhau của Amazon, bao gồm Amazon S3. Có lệnh đồng bộ hữu ích cho phép bạn sao lưu các bucket Amazon S3 vào máy Linux bằng cách sao chép các tệp từ bucket vào thư mục địa phương trong Linux chạy trên một instance EC2.

Một tính năng của lệnh đồng bộ trong AWS CLI là các tệp trong hệ thống tệp địa phương (điểm đến sao lưu Amazon S3) không bị xóa nếu các tệp này không có trong bucket S3 nguồn và ngược lại. Điều này quan trọng cho sao lưu AWS S3 vì nếu một số tệp vô tình bị xóa trong bucket S3, các tệp còn lại không bị xóa trong thư mục địa phương của máy Linux sau khi đồng bộ hóa.

Lợi ích:

  • Hỗ trợ các bucket S3 lớn và khả năng mở rộng
  • Hỗ trợ nhiều luồng trong quá trình đồng bộ hóa
  • Khả năng đồng bộ hóa chỉ các tệp mới và đã cập nhật
  • Tốc độ đồng bộ hóa cao nhờ thuật toán thông minh

Nhược điểm:

  • Linux chạy trên instance EC2 tiêu thụ không gian lưu trữ của các volume EBS. Chi phí lưu trữ cho các volume EBS cao hơn so với các bucket S3.

Các lệnh cho máy chủ Ubuntu được sử dụng trong hướng dẫn này.

Trước tiên, bạn cần cài đặt AWS CLI.

Cập nhật cây kho lưu trữ:

sudo apt-get update

Cài đặt AWS CLI:

sudo apt install awscli

hoặc

Cài đặt unzip:

sudo apt install unzip

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

unzip awscli-exe-linux-x86_64.zip

sudo ./aws/install

Kiểm tra thông tin xác thực của AWS trong Linux chạy trên instance EC2 của bạn.

aws configure list

Thêm thông tin xác thực để truy cập AWS với AWS CLI từ instance Linux nếu thông tin xác thực chưa được thiết lập:

aws configure

Nhập các thông số sau:

ID Khoá Truy Cập AWS

Khoá Truy Cập Bí Mật AWS

Tên khu vực mặc định

Định dạng đầu ra mặc định

Tạo thư mục để lưu trữ sao lưu Amazon S3 của bạn. Trong ví dụ của tôi, tôi tạo thư mục ~/s3/ để lưu trữ sao lưu S3 và một thư mục con với tên giống với tên bucket. Các tệp được lưu trữ trong bucket S3 cần được sao chép vào thư mục địa phương này trên máy Linux. ~ là thư mục cá nhân của người dùng, trong trường hợp của tôi là /home/ubuntu .

mkdir -p ~/s3/your_bucket_name

Thay thế your_bucket_name bằng tên bucket của bạn ( blog-bucket01 trong ví dụ của chúng tôi). mkdir -p ~/s3/blog-bucket01

Đồng bộ hóa nội dung của bucket với thư mục cục bộ trên máy chủ EC2 chạy hệ điều hành Linux:

aws s3 sync s3:// blog-bucket01 /home/ubuntu/s3/ blog-bucket01/

Nếu cấu hình thông tin đăng nhập, tên bucket và đường dẫn đích chính xác, dữ liệu sẽ bắt đầu được tải xuống từ bucket S3. Thời gian cần thiết để hoàn tất thao tác này phụ thuộc vào kích thước của các tệp trong bucket và tốc độ kết nối Internet của bạn.

Sao lưu tự động Amazon S3

Bạn có thể cấu hình các tác vụ sao lưu tự động Amazon S3 bằng lệnh sync của AWS CLI. Tạo tệp kịch bản sync.sh để chạy sao lưu AWS S3 (đồng bộ hóa tệp từ bucket S3 sang thư mục cục bộ trên máy chủ Linux của bạn) và sau đó chạy kịch bản này theo lịch trình.

nano /home/ubuntu/s3/sync.sh

#!/bin/sh

# Display the current date and time

echo '-----------------------------'

date

echo '-----------------------------'

echo ''

# Display the script initialization message

echo 'Syncing remote S3 bucket...'

# Running the sync command

/usr/bin/aws s3 sync s3://{BUCKET_NAME} /home/ubuntu/s3/{BUCKET_NAME}/

# Echo "Script execution is completed"

echo 'Sync complete'

Thay thế {BUCKET_NAME} bằng tên bucket S3 mà bạn muốn sao lưu.

Đường dẫn đầy đủ đến aws (tệp nhị phân AWS CLI) được định nghĩa để crontab thực thi ứng dụng aws một cách chính xác trong môi trường shell mà crontab sử dụng.

Đặt quyền thực thi cho tập lệnh:

sudo chmod +x /home/ubuntu/s3/sync.sh

Chạy tập lệnh để kiểm tra xem tập lệnh có hoạt động không:

/home/ubuntu/s3/sync.sh

Chỉnh sửa crontab (trình lập lịch trong Linux) của người dùng hiện tại để lên lịch thực thi tập lệnh sao lưu Amazon S3.

crontab -e

Bạn có thể cần chọn một trình soạn thảo văn bản để chỉnh sửa cấu hình crontab.

Định dạng của crontab để lên lịch tác vụ như sau:

m h dom mon dow command

Trong đó: m – phút; h – giờ; dom – ngày trong tháng; dow – ngày trong tuần.

Hãy thêm một dòng cấu hình để tác vụ chạy đồng bộ hóa mỗi giờ và lưu kết quả sao lưu AWS S3 vào tệp nhật ký. Thêm dòng này vào cuối tệp cấu hình crontab.

0 * * * * /home/ubuntu/s3/sync.sh > /home/ubuntu/s3/sync.log

Sao lưu tự động Amazon S3 đã được cấu hình. Tệp nhật ký có thể được sử dụng để kiểm tra việc thực thi các tác vụ đồng bộ hóa.

Kết luận

Có nhiều phương pháp để thực hiện sao lưu Amazon S3 và hai trong số đó đã được đề cập trong bài viết này. Bạn có thể bật tính năng phiên bản đối tượng (object versioning) cho một bucket để lưu giữ các phiên bản trước của đối tượng, điều này cho phép bạn khôi phục tệp nếu có những thay đổi không mong muốn được ghi vào tệp. Sao chép Amazon S3 (Amazon S3 replication) là một công cụ tích hợp sẵn khác để tạo bản sao của các tệp được lưu trữ trong một bucket Amazon S3 dưới dạng đối tượng. Trong trường hợp này, các đối tượng sẽ được sao chép từ bucket này sang bucket khác. Bạn cũng có thể tạo bản sao lưu của một bucket Amazon S3 bằng cách sử dụng công cụ đồng bộ hóa trong AWS CLI, cho phép bạn đồng bộ hóa các tệp trong bucket với một thư mục cục bộ trên máy Linux đang chạy trên một instance EC2. Có thể lên lịch sao lưu tự động Amazon S3 bằng cách sử dụng tập lệnh và crontab.

Nhìn chung, dịch vụ lưu trữ đám mây Amazon S3 rất đáng tin cậy và việc sao lưu lên Amazon S3 là một phương pháp phổ biến. Nếu bạn có chiến lược bảo vệ dữ liệu mã nguồn và chiến lược sao lưu AWS, bạn nên có một bản sao lưu. Trong trường hợp này, bạn nên sao lưu dữ liệu lên Amazon S3 và một vị trí đích khác. Sử dụng NAKIVO Backup & Replication để bảo vệ dữ liệu trên máy vật lý và máy ảo. NAKIVO Backup & Replication là phần mềm sao lưu ảo hóa mạnh mẽ, có thể được sử dụng để bảo vệ máy ảo (VM), cũng như các phiên bản Amazon EC2 và máy vật lý.

Dùng thử NAKIVO Backup & Replication

Dùng thử NAKIVO Backup & Replication

Đăng ký dùng thử miễn phí để khám phá toàn bộ các tính năng bảo vệ dữ liệu của giải pháp này. 15 ngày miễn phí. Không có bất kỳ giới hạn nào về tính năng hay dung lượng. Không cần thẻ tín dụng.

Có thể bạn cũng quan tâm