Skip to content Skip to navigation

Cloud Computing with Amazon EC2 - Free Tier Usage

Như vậy, trước đây để có thể triển khai một ứng dụng (ví dụ một trang Web), bạn phải đi mua/thuê một hay nhiều máy chủ (server), sau đó đặt máy chủ tại các trung tâm dữ liệu (data center) thì nay điện toán đám mây cho phép bạn giản lược quá trình mua/thuê đi. Bạn chỉ cần nêu ra yêu cầu của mình, hệ thống sẽ tự động gom nhặt các tài nguyên rỗi (free) để đáp ứng yêu cầu của bạn.
Cloud computing (điện toán đám mây) là thuật ngữ được nhắc đến nhiều trong thời gian gần đây. Theo Wikipedia tiếng Việt thì điện toán đám mây có các lợi ích như là:

Các đặc tính

Như vậy, trước đây để có thể triển khai một ứng dụng (ví dụ một trang Web), bạn phải đi mua/thuê một hay nhiều máy chủ (server), sau đó đặt máy chủ tại các trung tâm dữ liệu (data center) thì nay điện toán đám mây cho phép bạn giản lược quá trình mua/thuê đi. Bạn chỉ cần nêu ra yêu cầu của mình, hệ thống sẽ tự động gom nhặt các tài nguyên rỗi (free) để đáp ứng yêu cầu của bạn. Chính vì vậy, có thể kể đến một vài lợi ích cơ bản của điện toán đám mây như sau :

  • Sử dụng các tài nguyên tính toán động (Dynamic computing resources) : Các tài nguyên được cấp phát cho doanh nghiệp đúng như những gì doanh nghiệp muốn một cách tức thời. Thay vì việc doanh nghiệp phải tính toán xem có nên mở rộng hay không, phải đầu tư bao nhiêu máy chủ thì nay doanh nghiệp chỉ cần yêu cầu “Hey, đám mây, chúng tôi cần thêm tài nguyên tương đương với 1 CPU 3.0 GHz, 128GB RAM…” và đám mây sẽ tự tìm kiếm tài nguyên rỗi để cung cấp cho bạn.
  • Giảm chi phí : Doanh nghiệp sẽ có khả năng cắt giảm chi phí để mua bán, cài đặt và bảo trì tài nguyên. Rõ ràng thay vì việc phải cử một chuyên gia đi mua máy chủ, cài đặt máy chủ, bảo trì máy chủ thì nay bạn chẳng cần phải làm gì ngoài việc xác định chính xác tài nguyên mình cần và yêu cầu. Quá tiện!.
  • Giảm độ phức tạp trong cơ cấu của doanh nghiệp : Doanh nghiệp sản xuất hàng hóa mà lại phải có cả một chuyên gia IT để vận hành, bảo trì máy chủ thì quá tốn kém. Nếu outsource được quá trình này thì doanh nghiệp sẽ chỉ tập trung vào việc sản xuất hàng hóa chuyên môn của mình và giảm bớt được độ phức tạp trong cơ cấu.
  • Tăng khả năng sử dụng tài nguyên tính toán : Một trong những câu hỏi đau đầu của việc đầu tư tài nguyên (ví dụ máy chủ) là bao lâu thì nó sẽ hết khấu hao, tôi đầu tư như thế có lãi hay không, có bị outdate về công nghệ hay không … Khi sử dụng tài nguyên trên đám mây thì bạn không còn phải quan tâm tới điều này nữa.
 
Có rất nhiều nhà cung cấp dịch vụ điện toán đám mây, ví dụ Amazon, IBM, Microsoft, Google, etc. Tuy nhiên có lẽ Amazon là tên tuổi nổi trội nhất.
 
Tôi trước đây ko quan tâm nhiều đến dịch vụ điện toán đám mây, bởi vì nếu nói về máy móc, mạng, kết nối Internet thì mấy thứ đó ở lab tôi quá đầy đủ. Gần đây tôi quan tâm hơn đến điện toán đám mây bởi vì tôi nghĩ đến một số kịch bản khi mình triển khai các dịch vụ phần mềm (Software as a Service - SaaS). Ví dụ:
 
1. Nhận dạng đối tượng: 
Các ví dụ điển hình là của các công ty như là koaaba (tôi có bài viết trước đây trên blog), snaptell (đã được Amazon mua lại), và gần đây nhất là anchovi. Các công ty để dịch vụ của mình "trên mây", và khi người dùng có nhu cầu thì gửi request cần nhận dạng (ví dụ thông qua iPhone) và hệ thống sẽ đáp ứng. 
 
Các nghiên cứu của tôi cũng liên quan đến phần nhận dạng, ví dụ nhận dạng logonhận dạng người và tôi cũng muốn thử triển khai nó dưới dạng dịch vụ tương tự như các ứng dụng trên. 
 
2. Ứng dụng web:
Ví dụ điển hình là cần thiết lập một website ví dụ cho dịch vụ thương mại điện tử. Với người không rành kĩ thuật, họ sẽ gặp rắc rối trong việc lựa chọn dịch vụ hosting, phần mềm chạy website và các vấn đề liên quan. Nếu có thể pack hết mọi thứ dưới dạng mộtvirtual appliance thì lúc đó người dùng sẽ có thể chạy được ứng dụng ngay mà ko cần biết nhiều các chi tiết bên dưới. 
 
Một kịch bản khác mà tôi thường gặp đó là các lab's website. Với trình độ của các prof., cài đặt và setup một website về mặt kĩ thuật ko phải là khó đối với họ. Vấn đề là đa số họ có thể rất rành việc cài đặt apache, mysql server, nhưng họ lại ko rành và ko có nhiều thời gian cho việc cấu hình các hệ thống cms như WordPress để quản lí nội dung của website. 
 
Tôi hiện đang là webmaster cho website ACM Multimedia 2012. Phải nói là rất tốn công sức cho việc cấu hình và bảo trì nó. Nếu tôi có thể pack cái site hiện có lại dưới dạng một virtual appliance thì có lẽ sẽ giúp cho những người ko chuyên như tôi ít tốn công sức hơn trong việc quản lí các website với nội dung tương tự.
 
Dịch vụ điện toán đám mây do Amazon cung cấp khá đa dạng và cảm giác đầu tiên khi tôi đọc nó phải nói là choáng ngợp. Nào là EC2, EBS, S3, etc. Rồi với dịch vụ EC2, nào là light utilization, heavy utilization, reserved instance, spot instance. Tôi nghĩ là với các bạn bắt đầu cũng đều ngợp như tôi do đó tôi muốn ghi lại ở đây một số thu lượm để các bạn đi sau tiện theo dõi.
 
Về mặt bản chất, một trong các ưu điểm của dịch vụ điện toán đám mây là chi phí. Do đó, sự đa dạng trong các dịch vụ chính là các để giúp mọi người tối ưu hóa về mặt chi phí. Hồi mới bắt đầu tìm hiểu về dịch vụ của Amazon, tôi chỉ đơn giản nghĩ là Amazon cho mình một cái máy, mình bật lúc nào, trả tiền lúc đó. Lúc đầu cần một máy thì trả tiền cho một máy, sau này cần thêm máy thì xài thêm máy nào trả tiền máy đó. Thực tế là đúng như vậy, nhưng mà các price plan của Amazon phức tạp hơn nhiều. Để đơn giản hóa, tôi tập trung vào Amazon EC2
 
Để dễ hiểu các price plan của Amazon EC2, nên bắt đầu từ những thứ cơ bản nhất:
- Cấu hình phần cứng:  tốc độ và số lượng CPU core, dung lượng đĩa cứng, dung lượng RAM.
- Phần mềm: hệ điều hành (Windows, Linux, etc).
- Phần mềm ứng dụng trên đó: ví dụ WordPress.
- Tần suất sử dụng: sử dụng liên tục (ví dụ web hosting) hay chỉ trong một thời gian ngắn trong ngày, sử dụng trong vài năm hay chỉ trong một tháng.
 
Từ đây có thể hiểu các ý trong price plan của Amazon EC2.
 
Instance Types: Amazon gọi một cái máy ảo (tức là có phần cứng + hệ điều hành + ứng dụng) là một instance và sẽ charge tiền trên thời lượng và số lượng instance mà bạn sử dụng. Tùy vào cấu hình phần cứng mà Amazon EC2 có nhiều loại như là Standard, Micro, High-Memory, High-CPU, Cluster Compute, and Cluster GPU. Một ứng dụng web thông thường kiểu như conference website thì chỉ cần Micro instance là ổn. Web site cho trường ĐH ở VN, hay các site thương mại điện tử ko có quá nhiều lượng truy cập thì có thể dùng Standard instance. 
 
Instance Purchasing Options: Để đáp ứng nhu cầu đa dạng của người dùng, Amazon đưa ra 3 lựa chọn, đó là On-Demand InstancesReserved Instances và Spot Instances. On-Demand Instances là lựa chọn thông dụng nhất, tức là xài giờ nào trả giờ nấy. Reserved Instances hơi khác một chút là nếu mình cam kết sẽ dùng lâu dài trong một năm, hay ba năm thì giá mỗi giờ sẽ rẻ hơn nhưng sẽ phải trả tiền đặt cọc. Do đó, nếu bạn dự định dùng cho hosting website thì nên dùng Reserved Instances. Nếu chỉ muốn dùng trong một thời gian ngắn và không ổn định (ví dụ test chương trình) thì có thể dùng On-Demand. Spot Instances thì lại là một kiểu khác. Ví dụ tôi cần khoảng 1,000 instances trong vòng 2 tháng để xử lí video cho SIN task của TRECVID. Nếu xài On-Demand Instances thì mất 0.080$/hour. Tuy nhiên nếu xài Spot Instances, giá có thể rẻ hơn vậy bởi vì Amazon cho phép tôi bid dựa trên giá mà Amazon đưa ra. Bằng cách này, tôi có thể đặt maximum giá ví dụ là 0.050$/hour và khi nào giá của Amazon khớp với giá đó thì cái instance của tôi sẽ được chạy. Như vậy, khi dùng Spot Instances, tôi chỉ có thể kiểm soát được giá maximum mà tôi phải trả cho việc sử dụng tài nguyên, nhưng không kiểm sóat được chính xác là bao nhiêu instances sẽ được chạy vào một thời điểm nhất định nào đó, bởi vì khi giá của spot instances thay đổi theo thời gian, khi nó lớn hơn maximum giá của tôi thì cái instance sẽ bị dừng.
 
Utilization: Trong tình huống dùng Reserved Instances, Amazon còn cho phép bạn chẻ nhỏ các tình huống sử dụng ra. Ví dụ nếu chỉ xài vài giờ trong ngày/tuần mà liên tục trong một năm thì có thể chọn Light Utilization. Nếu xài liên tục 24x7 thì chọn Heavy Utilization. Light Utilization sẽ có trên mỗi giờ sử dụng đắt hơn Heavy Utilization. 
 
Nếu các bạn vẫn còn thấy phức tạp, vậy thì chỉ cần hiểu đơn giản như sau: Xài càng nhiều và liên tục thì giá sẽ rẻ hơn so với xài ít và ko liên tục. Chính sách giá đa dạng bản chất là để đảm bảo ai dùng đến đâu thì trả tiền đến đó.
 
Bảng dưới đây là để tham khảo và cho thấy rằng, nếu bạn chọn đúng price plan cho đúng nhu cầu của bạn thì bạn sẽ tiết kiệm được rất nhiều. Ví dụ nếu mình hosting một website chạy liên tục trong 3 năm, thì nếu ko biết đăng kí Reserved Instances, bạn có thể sẽ phải trả đến 81,550$/năm so với 54,263$/năm.
 
Annual Cost Comparison (100% utilization)

Do-It-Yourself

EC2 On-Demand
EC2 Reserved
(1 Year Term)
EC2 Reserved
(3 Year Term)
Usage Costs - $ 157,680 $ 75,411 $ 48,123
Server Hardware $ 20,129 - - -
Network Hardware $ 4,026 - - -
Hardware Maintenance $ 28,986 - - -
Operating System $ – - - -
Facility Expense $ 131,382 - - -
Remote Hands Support $ 1,014 - - -
Data Transfer Costs $ 10,071 $ 6,138 $ 6,138 $ 6,138
TOTAL COST $ 195,608.00 $ 163,818.00 $ 81,550.00 $ 54,263.00
 
Tin vui là nếu bạn muốn thử nghiệm dịch vụ điện toán đám mây của Amazon EC2, bạn có thể đăng kí để được dùng miễn phí trong năm đầu tiên với Amazon Free Usage Tier
 
Với 750 giờ miễn phí trong một tháng, bạn có thể chạy một instance liên tục (mất 24x30 ~ 720 giờ) hoặc là vài instances một lúc miễn sao tổng số giờ mà instance chạy dưới 750 giờ/tháng. 
 
Lưu ý quan trọng là các instance được tính tròn theo giờ, có nghĩa là nếu bạn bật cái instance lên chạy 5 phút rồi tắt, rồi lại bật lại thì 5 phút trước đó sẽ được làm tròn thành một giờ. Ngoài ra, số giờ miễn phí là tính theo tháng, tức là nếu tháng này bạn xài không hết 750 giờ thì cũng ko được cấn trừ sang tháng sau. 
 
Bên cạnh EC2, Free Tier Usage còn cho bạn xài nhiều dịch vụ khác nữa như EBS, S3, CloudWatch, etc. Hãy cẩn thận vì nếu bạn ko biết mà xài quá thì bạn sẽ charge tiền ngay lập tức. Nói cách khác, khi bạn dùng free tier, bạn phải nhớ là mình đang được dùng cái gì free, cái gì ko free. Đừng bao giờ nghĩ rằng mình đang dùng free tier thì mình sẽ ko bị charge xu nào nên cứ dùng thoải mái. 
 
Các bạn ai có kinh nghiệm dùng Amazon Web Services nói chung, Amazon EC2 nói riêng thì cùng chia sẻ luôn nhé!
 
Lê Đình Duy