Đồng bộ dữ liệu lên Bizfly S3

Bài viết này sẽ hướng dẫn khách hàng sử dụng các công cụ phổ biến hiện nay để đồng bộ dữ liệu tới S3 của Bizfly Cloud. Một số tiến trình đồng bộ thường gặp sẽ được giới thiệu trong bài viết này như sau:

  • Đồng bộ từ local lên S3 và ngược lại
  • Đồng bộ giữa S3 và S3
  • Đồng bộ từ FTP lên S3

1. Đồng bộ từ local lên S3 và ngược lại

s3sync là công cụ giúp upload file từ local (server, máy tính bàn) lên dịch vụ lưu trữ đám mấy theo chuẩn S3. Công cụ này giúp upload file, download, hoặc sync từ bucket này sang bucket khác của nhiều dịch vụ lưu trữ đám mấy khác nhau theo chuẩn S3.

Xem thêm tại https://github.com/larrabee/s3sync

Bài viết này hướng dẫn cách thiết lập việc replicate data/migrate data từ local sang Bizfly Simple Storage, download file về server.

Cài đặt s3sync

Các phiên bản của s3sync có thể được tìm thấy ở đây : https://github.com/larrabee/s3sync/releases. S3sync hỗ trợ nhiều hệ điều hành như FreeBSD, Linux, OpenBSD, MacOS.

s3sync là tool chạy trực tiếp nên chỉ cần download về là có thể chạy được. Ví dụ download với server linux

wget https://github.com/larrabee/s3sync/releases/download/2.30/s3sync_2.30_Linux_x86_64.tar.gz
tar -xvzf s3sync_2.30_Linux_x86_64.tar.gz 
chmod +x s3sync

Lấy thông tin xác thực của dịch vụ Bizfly Simple Storage

Vào phần Quản lý User -> Bảo mật -> Simple Storage Access Keys

Thông tin cần lấy: Access keySecret key

Thực hiện các câu lệnh sync dữ liệu

s3sync sẽ cần truyền tham số cho source và target, source là nơi chứa dữ liệu cần được sync và target là nơi sẽ được sync dữ liệu đến.

Các tham số cơ bản

sk : access-key của source
ss : secret-key của source
te : endpoint của source

tk : access-key của target
ts : secret-key của target
te : endpoint của target

w : số lượng worker để thực hiện việc sync
sync-progress : show quá trình thực hiện sync
s3-acl : quyền của file khi upload , danh sách các quyền  private, public-read, public-read-write, authenticated-read, mặc định là private

disable-http2 : disable mode http2 của client

Upload dữ liệu từ local lên s3

./s3sync --tk <access-key> --ts <secret-key> --te "https://hn.ss.bfcplatform.vn" -w 64 fs://<source-local> s3://<s3-bucket-target>  --sync-progress --s3-acl public-read

Download dữ liệu từ Simple Storage về local

./s3sync --sk <access-key> --ss <secret-key> --se "https://hn.ss.bfcplatform.vn" -w 64 s3://<s3-bucket-target> fs://<source-local>   --sync-progress --disable-http2

Một số tham số hữu ích trong quá trình sử dụng

-d : mode debug để có thêm thông tin khi bị lỗi
--sync-log : show log của quá trình sync
--ratelimit-objects : limit số lượng object được thực sync trong 1 giây
--ratelimit-bandwidth : limit số lượng băng thông trong quá trình sync, các đơn vị hỗ trợ K, M, G tương ứng với KB, MB, và GB
Ngoài ra còn có các tham số khác có thể tham khảo ở link sau: https://github.com/larrabee/s3sync

2. Đồng bộ giữa S3 và S3

Công cụ s3sync cũng cho phép sync giữa các bucket trong S3 hay giữa các nhà cung cấp S3 khác nhau cả trong và ngoài nước.

Cài đặt s3sync

Các phiên bản của s3sync có thể được tìm thấy ở đây : https://github.com/larrabee/s3sync/releases. S3sync hỗ trợ nhiều hệ điều hành như FreeBSD, Linux, OpenBSD, MacOS.

s3sync là tool chạy trực tiếp nên chỉ cần download về là có thể chạy được. Ví dụ download với server linux

wget https://github.com/larrabee/s3sync/releases/download/2.30/s3sync_2.30_Linux_x86_64.tar.gz
tar -xvzf s3sync_2.30_Linux_x86_64.tar.gz 
chmod +x s3sync

Cách lấy thông tin xác thực của các nhà cung cấp dịch vụ S3

Lấy thông tin xác thực của Bizfly S3

Trên Bizfly Simple Storage

Vào dịch vụ Bizfly Simple Storage => Quản lý Access Key

Thông tin cần lấy: Access keySecret key

Có thể sử dụng các key có sẵn hoặc tạo access key và secret key mới.
Xem thêm [Hướng dẫn cách tạo Access Key](https://docs.bizflycloud.vn/ simple_storage/howtos/access_secret_key/).

Quay lại danh sách bucket, lấy thông tin tên bucket dùng để nhận dữ liệu từ GCS, hoặc tạo môt bucket mới.
Xem thêm [Hướng dẫn cách tạo bucket mới](https://docs.bizflycloud.vn/ simple_storage/howtos/create_bucket/).

Lấy thông tin xác thực của AWS S3

Trên AWS Portal

Vào portal AWS, click vào account, chọn My Security Credentials.

Chọn Continue to Security Credentials => Access keys (access key ID and secret access key)

Tại đây, có danh sách các access key, nếu chưa có thì chọn Create New Access Key để tạo key mới, hoặc nếu đã có key, thì có thể dùng key cũ.

Cần lấy thông tin: AWSAccessKeyId và AWSSecretKey.

Lấy thông tin xác thực của GCS

Trên Google Cloud Storage

Chọn project chứa bucket cần được migrate, ở phần menu, chọn Settings => chọn tab INTEROPERABILITY.

Tiếp tục kéo xuống dưới, ở mục User account HMAC => chọn Set as default project (Nếu không nút này tức là bạn đã chọn trước đây và không cần làm nữa)

Trong mục User account HMAC có danh sách các access key, nếu chưa có thì chọn CREATE A KEYđể tạo key mới, hoặc nếu đã có key, thì có thể dùng key cũ.

Cần lấy thông tin: Access keySecret key

Các câu lệnh sync dữ liệu

Sau khi đã có được các key pair để xác thực với S3, có thể tham khảo các lệnh sau để thực hiện đồng bộ dữ liệu giữa S3 và S3.

Copy dữ liệu từ bucket này sang bucket khác trong S3 của Bizfly Cloud:

./s3sync --sk <access-key-source> --ss <secret-key-source> --se "https://hn.ss.bfcplatform.vn" --tk <access-key-target> --ts <secret-key-target> --te "https://hn.ss.bfcplatform.vn" -w 64 s3://<s3-bucket-source> s3://<s3-bucket-target> --sync-progress --s3-acl public-read --disable-http2

Copy dữ liệu từ Amazon S3 về S3 của Bizfly Cloud:

./s3sync --sk <access-key-amazon> --ss <secret-key-amazon> --tk <access-key-bizfly-simple-storage> --ts <secret-key-bizfly-simple-storage> --te "https://hn.ss.bfcplatform.vn" -w 64 s3://<s3-bucket-amazon> s3://<s3-bucket-bizfly-simple-storage> --sync-progress --s3-acl public-read --disable-http2

3. Đồng bộ từ FTP lên S3

Rclone là công cụ giúp đồng bộ hoá dữ liệu và directory hỗ trợ đa dạng loại nhiều dịch vụ lưu trữ cloud khác nhau, bao gồm AWS S3, Bizfly Simple Storage, Google Drive, v.v… hay các giao thức truyền file qua mạng như FTP, SMB…

Xem thêm tại : https://rclone.org/

Cài đặt rclone

$ curl https://rclone.org/install.sh | sudo bash

Lấy thông tin xác thực của dịch vụ Bizfly Simple Storage

Vào phần Quản lý User -> Bảo mật -> Simple Storage Access Keys

Thông tin cần lấy: Access keySecret key

Cấu hình rclone

Tạo file cấu hình rclone trên máy

$ vi ~/.config/rclone/rclone.conf

[ftp]
type = ftp
host = <your.ftp.domain>
user = <ftp-user>
pass = <ftp-password>

[s3]
type = s3
provider = Other
access_key_id = <access-key>
secret_access_key = <secret-key>
endpoint = https://hn.ss.bfcplatform.vn
acl = private

Các câu lệnh sync dữ liệu

Sau khi đã cấu hình xong các profile FTP và S3, ta đã có thể thực hiện tiến trình đồng bộ:

rclone -v sync ftp:/home/ftpuser/ftp/files s3:/bucket_name/