Bài viết Câu hỏi About RongvangIT
profile Pic
0
0

Đăng ngày:

 

Sửa ngày:

63 Lượt xem

Trải nghiệm sử dụng AWS Snowball

AWS SnowballAWS

Xin chào ae. Hôm nay chúng ta sẽ cùng tìm hiểu về AWS Snowball nhé. Cho đến nay, tôi chỉ có kinh nghiệm phát triển trên on-premise, nhưng khi hệ thống tôi đang phụ trách đối mặt với việc kết thúc vòng đời (EoL), tôi quyết định chuyển đổi lên đám mây (AWS), và đó là lúc tôi bắt đầu dùng đến AWS Snowball.

Giả thiết (Thách thức)

Hệ thống này lưu trữ hơn 1 petabyte dữ liệu (bao gồm sao chép) và có thách thức làm thế nào để chuyển dữ liệu lớn này lên đám mây trong bối cảnh hệ thống sử dụng giao diện người dùng Web, trong khi phần lưu trữ được ẩn sau đằng sau và khó để trích xuất qua mạng. Thậm chí nếu có thể truyền qua mạng, ước tính rằng nó sẽ mất 3-4 tháng.

Hướng giải quyết

Trong trường hợp như trên, tôi nghĩ rằng dịch vụ AWS Snowball có vẻ là lựa chọn tối ưu, và vì vậy, tôi quyết định thử nghiệm nó thực tế. Trong bài viết này, tôi sẽ báo cáo về các hoạt động cơ bản cho đến khi dữ liệu được chuyển.

AWS Snowball là gì

Theo trang chính thức của AWS

Dịch vụ AWS Snowball sử dụng thiết bị lưu trữ vật lý để truyền dữ liệu lớn giữa Amazon Simple Storage Service (Amazon S3) và vị trí lưu trữ dữ liệu cục bộ nhanh hơn qua internet. Bạn có thể tiết kiệm thời gian và chi phí khi sử dụng AWS Snowball.

Nói một cách đơn giản, AWS cho phép mượn một máy tính hiệu suất cao có dung lượng lớn để chứa dữ liệu (file tin) cần di chuyển, sau đó gửi lại cho AWS. AWS sau đó sẽ chuyển dữ liệu đó lên Amazon S3. Dữ liệu trong Snowball được mã hóa để đảm bảo an toàn về mặt bảo mật. Vào năm 2016, phiên bản nâng cao của Snowball, được gọi là AWS Snowball Edge, đã được phát hành, vì vậy trong trường hợp này, chúng ta sẽ thử nghiệm sử dụng Snowball Edge.

Các đặc điểm chính của Snowball Edge như sau:

  1. Khả năng lưu trữ: 100TB (terabyte)
  2. Giao diện mạng
    10GBase-T RJ45
    25GB SFP+
    40GB QSFP+
  3. Kích thước (Xem từ phía trư HxWxD)
    386x269x671mm
  4. Trọng lượng
    22.45Kg
  5. Truyền dữ liệu (giao thức)
    Giao diện file tin (NFS)
    Amazon S3 Adapter(S3)

Có hai giao thức để chuyển dữ liệu vào AWS Snowball Edge là “Giao diện file tin (NFS)” và “Bộ chuyển đổi Amazon S3 (S3)”. Về mặt tốc độ truyền dữ liệu, giao diện file tin thường có tốc độ khoảng 25-40MB/s (megabyte mỗi giây), trong khi Bộ chuyển đổi Amazon S3 có tốc độ nhanh hơn, khoảng 250-400MB/s. Lưu ý rằng, để tránh xung đột đọc/ghi, không nên sử dụng cả hai phương pháp này cùng một lúc.”

Mượn Snowball Edge từ AWS

Đầu tiên, để kiểm tra xem tôi có thể sử dụng thiết bị thực tế cho việc chuyển dữ liệu hay không, tôi đã nhanh chóng yêu cầu mượn Snowball Edge từ AWS. Bạn có thể thực hiện điều này bằng cách chọn dịch vụ “Snowball” từ bảng điều khiển quản lý AWS, tạo một job và tiến hành theo các bước cơ bản. Tôi đã tạo một jobc như sau:

Đầu mục Detail
Loại job Import vào Amazon S3
Loại thiết bị Snowball Edge Storage Optimized
(Dung lượng lưu trữ 100TB)
Tên bucket Chọn bucket S3 đích (có thể chọn nhiều)
Kích hoạt tính năng tính toán trên EC2 Không chọn
Hàm Lambda Không chọn
Quyền truy cập Sử dụng IAM role mặc định (Không thay đổi)
Mã hóa KMS Sử dụng mặc định (aws/importexport)
Thiết lập thông báo Tạo chủ đề SNS mới và chỉ định địa chỉ email.

Sau khi tạo job, màn hình hiển thị thông báo vận chuyển trong vòng 3-7 ngày là xuất hiện. Tình trạng vận chuyển có thể kiểm tra tại màn hình tình trạng job và thông qua các giai đoạn như “Đã sẵn sàng để gửi đi”, “Đã gửi đi cho khách hàng”, cho đến khi hoàn tất gửi đi. Thực tế, tôi nhận được Snowball Edge sau khoảng 1 tuần.

Aws Snowball 1.jpg

Kích thước của Snowball Edge giống như một chiếc PC tháp lớn, với các cánh cửa ở mặt trước, trên và sau. LCD hiển thị và các cổng giao diện không thể truy cập trực tiếp. Tiếp theo, tôi tiến hành thiết lập để có thể chuyển dữ liệu vào Snowball Edge.

Bật nguồn và kết nối vào mạng cục bộ

Về cáp mạng, vì đây chỉ là bài kiểm tra đơn giản, tôi đã kết nối máy tính xách tay (chạy Ubuntu 16.04 LTS) trực tiếp với cổng RJ45 ở phía sau.
Aws Snowball 2.jpg
Sau khi mở cánh cửa phía trước, nhấn nút nguồn trên màn hình LCD và chờ khoảng 10 phút cho hiển thị “Ready”. Đối với cấu hình mạng, nếu sử dụng DHCP, IP sẽ được gán tự động sau khi khởi động. Tuy nhiên, tôi chọn cấu hình thủ công. Trên màn hình LCD, nhấp vào “CONNECTION” và tiến hành cấu hình. Đối với lần test này, tôi đã cấu hình:

  • Địa chỉ IP: 172.16.1.100
  • Subnet Mask: 255.255.0.0
    Aws Snowball 3.jpg

Sau khi cấu hình xong Snowball Edge, tôi cũng cấu hình địa chỉ IP của máy tính xách tay Ubuntu giống nhau để nó thuộc cùng một mạng.

  • Địa chỉ IP: 172.16.1.1
  • Subnet Mask: 255.255.0.0

Mở terminal và kiểm tra kết nối tới Snowball Edge bằng lệnh ping.

$ ping 172.16.1.100

PING 172.16.1.100 (172.16.1.100) 56(84) bytes of data.
64 bytes from 172.16.1.100: icmp_seq=1 ttl=128 time=11.2 ms
64 bytes from 172.16.1.100: icmp_seq=2 ttl=128 time=12.1 ms
64 bytes from 172.16.1.100: icmp_seq=3 ttl=128 time=18.7 ms
^C

Lấy thông tin xác thực để mở khóa

Truy cập AWS Management Console, mở tình trạng job đã tạo và nhấp vào “Xem chi tiết job”. Mở rộng mục thông tin xác thực và ghi lại mã mở khóa (bao gồm dấu gạch ngang) và tải xuống file Manifest. Tôi đã chuyển file này xuống máy tính xách tay (hoặc bạn có thể tải xuống trực tiếp trên máy tính xách tay).

Cài đặt và cấu hình client Snowball Edge

Client Snowball có thể tải xuống từ trang AWS Snowball Edge Resources. Sau khi tải xuống, bạn chỉ cần giải nén vào bất kỳ thư mục nào và sau đó có thể sử dụng ngay.
Sau đó chạy lệnh dưới:

$ mkdir ~/work
$ cd ~/work
$ wget http://snowball-client.s3-website-us-west-2.amazonaws.com/snowball-client-linux.tar.gz
$ tar xvzf snowball-client-linux-1.0.1-327.tar.gz

//Danh sách các file đã được gii nén s được hin th

Dưới thư mục bin của nơi giải nén, có các lệnh ‘snowball’ và ‘snowballEdge’ được đặt.
sh

$ cd snowball-client-linux-1.0.1-327/bin
$ ls

snowball  snowballEdge

Đầu tiên, cấu hình vị trí file Manifest, mã mở khóa và điểm cuối bằng lệnh:

$ ./snowballEdge configure

Configuration will stored at /home/hoge/.aws/snowball/config/snowball-edge.config
Snowball Edge Manifest Path: < Manifest Path>
Unlock Code: 29 Unlock Code
Default Endpoint: https://<ipadress

Lưu ý: Các thông tin trên sẽ được sử dụng trong lệnh sau để mở khóa Snowball Edge.

Mở khóa Snowball Edge

Sử dụng lệnh sau để mở khóa thiết bị Snowball Edge:

$ ./snowballEdge unlock-device

Your Snowball Edge device is unlocking. You may determine the unlock
state of your device using the describe-device command. Your Snowball
Edge device will be available for use when it is in the UNLOCKED
state.

Kiểm tra trạng thái mở khóa của Snowball Edge bằng lệnh:

$ ./snowballEdge describe-device

{
  "DeviceId" : "JID43fa2dd7-9bc7-425e-b0ca-bd2f1b66d73a",
  "UnlockStatus" : {
    "State" : "UNLOCKED"
  },
  "ActiveNetworkInterface" : {
    "IpAddress" : "172.16.1.100"
  },

Nếu mọi thứ được cấu hình đúng, bạn sẽ thấy trạng thái là UNLOCKED.

Cài đặt và cấu hình AWS CLI

Để chuyển file vào Snowball Edge, cài đặt và cấu hình AWS CLI. Nếu bạn đã có AWS CLI, chỉ cần cấu hình là đủ.

Trước tiên, cài đặt các gói phần mềm cần thiết cho AWS CLI:

$ sudo apt-get install python-setuptools python-dateutil python-urllib3

Tiếp theo, tải và cài đặt AWS CLI:

$ cd ~/work
$ wget https://github.com/aws/aws-cli/archive/1.16.14.zip
$ unzip 1.16.14.zip
$ cd aws-cli-1.16.14
$ sudo python setup.py install

Kiểm tra phiên bản đã cài đặt:

$ aws --version

aws-cli/1.16.14 Python/2.7.12 Linux/4.4.0-166-generic botocore/1.12.4

Lưu ý: AWS CLI phiên bản 1.16.14 được hỗ trợ cho Snowball Edge theo thông báo trên trang AWS.

Tiếp theo thực hiện 2 cấu hình dưới:

Cấu hình đầu tiên, Snowball Edge có thể chuyển đến Snowball Edge qua mạng tốc độ cao. Tuy nhiên, để làm điều này, bạn cần cấu hình các thông số xác thực.

Hãy lấy mã truy cập từ Snowball Edge:

$ ./snowballEdge list-access-keys

{
  "AccessKeyIds" : [ "ABCDEFGHIJKLMNOPQRST" ]
}

Sử dụng mã truy cập để lấy mã truy cập bí mật:

$ ./snowballEdge get-secret-access-key -–access-key-id ABCDEFGHIJKLMNOPQRST

[snowballEdge]
aws_access_key_id = ABCDEFGHIJKLMNOPQRST
aws_secret_access_key = abcdefghijklmnABCDEFGHIJKLMN/12345678890

Thêm thông tin xác thực vào file ~/.aws/credentials:

$ ./snowballEdge get-secret-access-key --access-key-id ABCDEFGHIJKLMNOPQRST >> ~/.aws/credentials

Cuối cùng kiểm tra xem đã cấu hình đúng chưa:

$ cat ~/.aws/credentials
 
[snowballEdge]
aws_access_key_id = ABCDEFGHIJKLMNOPQRST
aws_secret_access_key = abcdefghijklmnABCDEFGHIJKLMN/12345678890

Cấu hình Thứ 2, Cấu hình AWS CLI để sử dụng chứng chỉ cần thiết khi chuyển dữ liệu.

Lấy thông tin chứng chỉ từ Snowball Edge:

$ ./snowballEdge list-certificates

{
  "Certificates" : [ {
    "CertificateArn" : "arn:aws:snowball-device:::certificate/0123456789abcdef0123456789abcdef",
    "SubjectAlternativeNames" : [ "172.16.1.100" ]
  } ]
}

Sử dụng ARN để lấy chứng chỉ:

$ ./snowballEdge get-certificate --certificate-arn arn:aws:snowball-device:::certificate/0123456789abcdef0123456789abcdef > ~/work/ca-bundle.pem
$ cat ~/work/ca-bundle.pem

-----BEGIN CERTIFICATE-----
MIIC8DCCAdigAwIBAgIIb/Vlh66iencwDQYJKoZIhvcNAQENBQAwFzEVMBMGA1UE
(中略)
uVdnlCJJPwWqHmBsecySg7RwRKLQq1bp0Fi5uDorfzGTF6XH
-----END CERTIFICATE-----

Cấu hình AWS CLI để sử dụng chứng chỉ CERTIFICATE vừa lấy:

$ aws configure set profile.snowballEdge.ca_bundle ${HOME}/work/ca-bundle.pem

Chuyển file vào Snowball Edge

Để kiểm tra xem awscli đã được cấu hình đúng chưa, hãy hiển thị danh sách các bucket trong Snowball Edge.

$ aws s3 ls --profile snowballEdge --endpoint https://172.16.1.100:8443

2009-10-13 02:50:30 test-bucket01
2009-10-13 02:50:30 test-bucket02

Nếu cài đặt đúng, danh sách các bucket được chỉ định khi tạo job Snowball Edge sẽ được hiển thị. Tiếp theo, chuyển file vào Snowball Edge.

$ aws s3 cp ~/work/test/ s3://test-bucket01/ --recursive --profile snowballEdge --endpoint https://172.16.1.100:8443

Upload: work/test/test1 to s3://test-bucket01/test1
Upload: work/test/test2 to s3://test-bucket01/test2
Upload: work/test/dir1/test1 to s3://test-bucket01/dir1/test1

Kiểm tra danh sách các file đã được chuyển.

$ aws s3 ls s3://test-bucket01/ --profile snowballEdge --endpoint https://172.16.1.100:8443
                           PRE dir1/
2019-04-18 17:35:57         16 test1
2019-04-18 17:35:57         16 test2

Nếu danh sách các file đã chuyển hiển thị, đó là đã thành công!

Tổng kết

Trên đây tôi đã tổng hợp thông tin về AWS Snowball, cách mượn Snowball từ AWS, cách cấu hình cũng như là cách chuyển file vào Snowball rồi.
Hi vọng bài viết có ích cho ae. Chào thân ái và quyết thắng.

aws_pro
Đã có SAA, sẽ lấy SAP trong tương lai gần.

Bình luận

Bài viết chưa có bình luận. Hãy trở thành người bình luận đầu tiên!
Sign up for free and join this conversation.
Sign Up
If you already have a RongvangIT account Login
Danh sách thư mục
Bắt đầu ngay với RồngVàngIT - nền tảng chia sẻ kiến thức lập trình tuyệt vời cho kỹ sư Việt Nam!

Hãy đăng nhập để sử dụng hàng loạt các chức năng tuyệt vời của RồngVàngIT !

  1. 1. Bạn sẽ nhận được các bài viết phù hợp bằng chức năng theo dõi tag và người dùng.
  2. 2. Bạn có thể đọc lại các thông tin hữu ích bằng chức năng lưu trữ nội dung.
  3. 3. Chia sẻ kiến thức, đặt câu hỏi và ghi lại quá trình trưởng thành của mình cùng RồngVàngIT !
Tạo tài khoản Đăng nhập
profile Pic