Tìm hiểu Điện toán đám mây với Amazon Web Services (AWS)

(Ngày: 21/09/2019)
Điện toán đám mây là gì? Amazon Web Service có khác gì với dịch vụ truyền thống khác. Cùng tìm hiểu ngay trong bài viết này nhé.

Điện toán đám mây là gì?

Điện toán đám mây có thể được định nghĩa một cách đơn giản như là sự sử dụng tài nguyên tính toán có khả năng thay đổi theo nhu cầu được cung cấp như là một dịch vụ từ bên ngoài với chi phí trả cho mỗi lần sử dụng. Bạn có thể truy cập đến bất kỳ tài nguyên nào tồn tại trong "đám mây (cloud)" tại bất kỳ thời điểm nào và từ bất kỳ đâu thông qua hệ thống Internet. Bạn không phải quan tâm xem làm cách nào các thứ đang được duy trì phía trong của đám mây. Đám mây là được đánh giá cao và sẵn sàng đáp ứng cho các nhu cầu cần thiết của ứng dụng của bạn. Điện toán đám mây cũng có thể được gọi là tính toán tiện ích hay là tính toán lưới (grid computing).

Trong quá khứ, các công ty thành công dành thời gian quý báu và nguồn lực xây dựng cơ sở hạ tầng, cái mà được cung cấp như là một lợi thế cạnh tranh. Trong hầu hết các trường hợp, cách tiếp cận này:

  • Để lại một lượng lớn các tài nguyên tính toán không được sử dụng làm tiêu tốn không gian trong các trung tâm dữ liệu lớn.
  • Bắt buộc một ai đó trông giữ các máy chủ.
  • Gắn liền với chi phí cao.

Khách hàng sử dụng điện toán đám mây không phải tăng vốn để mua hàng, quản lý, duy trì và mở rộng cơ sở hạ tầng vật lý cần thiết để xử lý các biến động giao thông quyết liệt. Thay vì phải đầu tư thời gian và tiền bạc để giữ cho trang web của họ nổi, với điện toán đám mây khách hàng chỉ cần trả tiền cho các tài nguyên mà họ sử dụng. Điểm nổi bật đặc đặc biệt của điện toán đám mây là khả năng tính toán, tính đàn hồi, co giãn tài nguyên, có nghĩa rằng khách hàng không còn cần phải dự đoán lưu lượng truy cập, nhưng có thể thúc đẩy các trang web của họ mạnh mẽ và một cách tự nhiên. Kỹ thuật cho giao thông cao điểm trở thành một điều của quá khứ.

Một cách đơn giản, điện toán đám mây là việc ảo hóa các tài nguyên tính toán và các ứng dụng. Thay vì việc bạn sử dụng một hoặc nhiều máy chủ thật (ngay trước mắt, có thể sờ được, có thể tự bạn ấn nút bật tắt được) thì nay bạn sẽ sử dụng các tài nguyên được ảo hóa (virtualized) thông qua môi trường Internet.

Amazon Web Services

Amazon Web Services là tập hợp các dịch vụ cung cấp cho người lập trình có khả năng truy cập tới hạ tầng kiến trúc tính toán kiểu sẵn sàng-để-sử dụng (ready-to-use) của Amazon. Các máy tính có nền tảng vững chắc đã được xây dựng và tinh chế qua nhiều năm của Amazon bây giờ là có thể cho phép bất cứ ai cũng có quyền cập tới Internet. Amazon cung cấp một số dịch vụ Web nhưng trong loạt bài viết này chỉ tập trung vào các dịch vụ khối hợp nhất (building-block) cơ bản, cái mà đáp ứng được một số yêu cầu cốt lõi của hầu hết các hệ thống như: lưu trữ, tính toán, truyền thông điệp và tập dữ liệu.

Amazon Web Services (AWS) có khác gì các dịch vụ truyền thống khác?

  • Amazon Web Services (AWS) dịch vụ điện toán đám mây, mà là an toàn nhất và đáng tin cậy.
  • Amazon Web Services (AWS) cung cấp một cơ sở hạ tầng ổn định trực tiếp đến các trung tâm mua sắm lớn nhất (Trung tâm Mua sắm tại Amazon) đã được chứng minh trên thế giới.
  • Amazon Web Services (AWS) cung cấp khả năng mở rộng nhanh chóng và dễ dàng.
  • Amazon Web Services (AWS) để cung cấp một nền tảng để giảm chi phí bằng cách chỉ sử dụng.
  • Amazon Web Services (AWS) có thể được sử dụng mà không trả tốt chỉ về chi phí hoặc dài hạn.

Thông thường chúng ta mua các dịch vụ về Hosting để thiết lập và “chạy” ứng dụng của mình trên các hosting truyền thống. Họ cung cấp các rất nhiều tính năng và quản trị dễ dàng qua các cpanel, ftp, ssh. Có nhiều gói khác nhau (giá cả cũng khác nhau) bao gồm cả shared host và dedicated service. Các tuỳ chọn này phù hợp với các ứng dụng và dịch vụ cỡ nhỏ, không dễ dàng mở rộng và cũng rất bó buộc trong các giới hạn nhà dịch vụ cung cấp. Ở tầm mức công ty công nghệ, thông thường chúng ta khó có thể sử dụng những hosting như vậy mà chính chúng ta sẽ làm nhiệm vụ của 1 hosting service cho chính chúng ta! Điều đó thật không đơn giản và rất tốn kém.

AWS giúp chúng ta không cần thiết quan tâm đến việc thiết lập cả 1 hạ tầng từ phần cứng, mạng máy tính (rất mất thời gian) đến chi phí thuê Data Center, và dĩ nhiên tối thiểu hoá chi phí duy trì (maintenance). TD đơn giản, trong môi trường truyền thống, chúng ta cần phải quản lý và chăm sóc các rack các máy chủ với chi phí đắt đỏ; chúng ta có thể “quên đi” chuyện phải mua và thay thế RAM hoặc ổ cứng (bất kể loại gì) và dĩ nhiên tiết kiệm được chi phí về nhân lực. Hơn nữa, khi cần cấu hình mạnh hơn, việc nâng cấp sẽ rất dễ dàng và rất nhanh chóng mà người quản trị không cần đi đến data center và cũng không cần quan tâm đến phần cứng.

AWS giúp chúng ta đơn giản hoá việc quản trị Private Cloud và máy ảo (VSphere…) được thiết lập trên các máy tính cỡ bự Blade và đằng sau 1 mớ rối rắm các thiết lập nêu trên với các thiết bị Firewall, SAN, Load Balancer…

Các thành phần chính của hạ tầng cơ sở của trang Web này, cái mà cung cấp hầu hết các khối xây dựng cơ bản phổ biến cần thiết cho hầu hết các ứng dụng không tầm thường:

Lưu trữ (Storage)

Mọi người đều cần phải lưu trữ — cho các tệp, các tài liệu, các dữ liệu tải về của người dùng hoặc các bản sao lưu. Có thể tiến hành lưu trữ bất kỳ các ứng dụng cần thiết của bạn trong Amazon Simple Storage Service (S3) và nhận được các lợi ích với nó như có khả năng mở rộng, đáng tin cậy và với mức chi phí thấp cho việc lưu trữ.

Tính toán (Computing)

Amazon Elastic Compute Cloud (EC2) cung cấp khả năng để mở rộng tài nguyên tính toán của bạn lớn lên hoặc giảm xuống dựa trên nhu cầu và tạo ra khả năng cung cấp dịch vụ mới một cách dễ dàng.

Gửi thông điệp (Messaging)

Thực hiện tách riêng các thành phần ứng dụng của bạn bằng cách sử dụng khả năng không giới hạn của việc truyền thông điệp được cung cấp bởi Amazon Simple Queue Service (SQS).

Tập hợp dữ liệu (Datasets)

Amazon SimpleDB (SDB) cung cấp khả năng mở rộng, lập chỉ mục, khả năng lưu trữ mà không cần bảo trì, cùng với việc thực hiện xử lý và truy vấn với tập hợp dữ liệu.

Amazon cung cấp các giao diện chuẩn dựa trên SOAP và REST để tương tác với từng dịch vụ. Các thư viện phát triển hoặc là từ Amazon hoặc từ một trong các ngôn ngữ cho phép, như Ruby, Python, Java™, Erlang và PHP, để thực hiện trao đổi với các dịch vụ này. Các công cụ dòng lệnh là cũng có thể để thực hiện quản lý tài nguyên tính toán trên EC2. Giao diện REST là dễ dàng sử dụng; bạn có thể sử dụng chương trình bên phía máy khách được viết bằng bất cứ ngôn ngữ nào dưới dạng giao thức HTTP để cho phép thực hiện gửi yêu cầu tới các dịch vụ Web

Lưu trữ với Amazon S3

Amazon Simple Storage Service (S3) cung cấp các giao diện dịch vụ Web cho việc lưu trữ và khôi phục dữ liệu. Dữ liệu được cho ở bất kỳ loại nào và có thể được lưu trữ và truy cập đến từ bất kỳ vị trí nào thông qua Internet. Bạn có thể lưu trữ không giới hạn một lượng lớn các đối tượng trong S3 với kích thước của mỗi đối tượng trong khoảng từ 1 byte tới 5 GB. Các lưu trữ là có thể ở trong Hoa Kỳ hoặc trong Liên Minh Châu Âu. Bạn có thể chọn vị trí lưu trữ cho các đối tượng của bạn khi bạn tạo ra buckets, cái mà tương tự như khái niệm của thư mục trong hệ thống xử lý của bạn. Dữ liệu được lưu trữ an toàn bằng cách sử dụng cùng hạ tầng cơ sở lưu trữ Amazon sử dụng sức mạng của mình trên toàn thế giới với một mạng lưới các trang Web thương mại điện tử.

Sự hạn chế truy cập có thể được xác định cho từng đối tượng bạn lưu trữ trong S3, và các đối tượng này có thể được truy cập với các yêu cầu HTTP đơn giản. Thậm chí bạn có thể tạo ra các đối tượng để tải về bằng cách sử dụng giao thức BitTorrent.

S3 giải phóng hoàn toàn cho bạn về các lo lắng cho không gian lưu trữ, truy cập vào dữ liệu, hoặc bảo vệ dữ liệu. Bạn thậm chí không phải đối phó với chi phí của việc bảo trì các máy chủ lưu trữ. Amazon đảm bảo ở mức độ cao khả năng lưu trữ các tệp của bạn vì thế nó luôn luôn sẵn sàng bất kỳ khi nào bạn cần đến chúng. Các thỏa thuận cấp độ dịch vụ được cung cấp bởi Amazon cho S3 là lên tới 99,9% thời gian chạy máy hàng tháng.

Elastic computing with Amazon EC2

Amazon EC2 là dịch vụ Web cho phép bạn yêu cầu các máy ảo trong vòng một vài phút và dễ dàng thay đổi khả năng của bạn hoặc tải xuống dựa trên nhu cầu. Bạn chỉ cần phải trả chi phí cho khoảng thời gian mà bạn sử dụng. Nếu bạn muốn tăng khả năng tính toán của bạn nên, bạn có thể nhanh chóng tiếp cận khởi tạo máy áo và sau đó chấm dứt chúng khi mà nhu cầu của bạn giảm đi.

Những trường hợp mà dựa trên Linux® và có thể chạy trên bất kỳ ứng dụng nào hoặc phần mềm nào bạn muốn. Bạn có thực hiện điều khiển cho từng trường hợp cụ thể. Môi trường của EC2 là được xây dựng trên cùng mã nguồn mở Xen hypervisor, cái được phát triển tại trường Đại học Cambridge. Amazon cho phép bạn tạo ra hình ảnh máy Amazon (AMIs) cái thực hiện hành động như là các khuôn mẫu cho các ví dụ của bạn. Truy cập với các ví dụ có thể được điều khiển bằng việc xác định được các quyền cho phép. Bạn cũng có thể làm bất cứ cái gì bạn muốn với chúng tuy chỉ có một hạn chế duy nhất là yêu cầu bạn cần sử dụng dựa trên Linux.

Khả năng truyền thông điệp tin cậy của Amazon Simple Queue Service

Amazon Simple Queue Service (SQS) cung cấp khả năng truy cập tới hạ tầng kiến trúc thông điệp đảm bảo được sử dụng bởi Amazon. Bạn có thể thực hiện gửi và nhận các thông điệp từ bất cứ nơi nào bằng cách sử dụng các yêu cầu HTTP đơn giản dựa trên REST. Không cần phải cài đặt cái gì, không cần phải thực hiện cấu hình gì cả. Bạn có thể tạo ra một lượng không giới hạn của các hàng đợi và gửi một lượng không giới hạn các tin nhắn. Các tin nhắn được lưu trữ bởi Amazon thông qua nhiều máy chủ và các trung tâm dữ liệu để cung cấp khả năng dư thừa và đáng tin cậy bạn cần từ hệ thống nhắn tin. Mỗi một tin nhắn có thể chứa lên tới 8KB dữ liệu văn bản. Chỉ sử dụng các ký tự dạng Unicode.

SQS tích hợp rất tốt với các Amazon Web Sercives khác. Nó cung cấp một cách nào đó để xây dựng hệ thống riêng biệt nơi mà EC2 của bạn có thể trao đổi với các hệ thống khác bằng cách gửi thông điệp tới SQS và phối hợp các luồng làm việc. Bạn cũng có thể sử dụng các hàng đợi để xây dựng hạ tầng tự phục hồi, tự động mở rộng dựa trên EC2 cho các ứng dụng của bạn. Bạn có thể bảo đảm các thông điệp trong hàng đợi của bạn tránh bị truy cập trái phép bằng cách sử dụng cơ chế xác thực được cung cấp bởi SQS.

Xử lý tập hợp dữ liệu với Amazon SimpleDB

Amazon SimpleDB (SDB) là dịch vụ Web cho phép lưu trữ, xử lý và truy vấn tập hợp dữ liệu có cấu trúc. Ở đây không phải là một cơ sở dữ liệu quan hệ theo cách tiếp cận truyền thống mà ở mức độ cao hơn dưới dạng các sơ đồ, với dữ liệu ít cấu trúc lưu trữ trong các đám mây và trong đó bạn có thể sử dụng để lưu trữ và khôi phục các giá trị khóa. Mỗi một tập hợp các giá trị khóa cần phải có một tên một mục duy nhất; các mục là được phân chia vào từng miền khác nhau. Mỗi một mục có thể lưu giữ lên tới 256 cặp giá trị khóa của dữ liệu. Bạn có thể thực thi các truy vấn dựa trên tập dữ liệu của bạn trong từng miền khác nhau. Các truy vấn dựa theo từng miền là không được hỗ trợ bởi SDB.

Kết luận

Trong bài viết này, bạn có được các giới thiệu về môi trường điện toán đám mây của Amazon và chỉ dẫn ngắn gọn về bốn phần chính của hạ tầng cơ sở của môi trường này. Phần còn lại của loạt bài viết này tiến hành mô tả từng phần của Amazon Web Service một cách chi tiết hơn, và cũng trình bày về các thư viện cũng như các công cụ khác nhau hữu ích cho việc phát triển hạ tầng cơ sở ảo để xây dựng các ứng dụng của bạn.

viblo.asia