Giới thiệu tổng quan về Amazon EC2

3 min read

EC2

Amazon Elastic Compute Cloud (Amazon EC2) là một dịch vụ web cung cấp khả năng tính toán trên nền tảng đám mây với khả năng mở rộng linh hoạt, cho phép người dùng thuê các máy chủ ảo, được gọi là “instances”, để chạy các ứng dụng và workload của họ.

Instance types

  • Có rất nhiều types khác nhau phù hợp với nhiều mục đích sử dụng khác nhau (Compute, Memory, Networking)
  • General: đầu T, M – cân bằng giữa tất cả các thông số
  • Compute: đầu C – thực thi các task yêu cầu nhiều CPU
  • Memory: đầu R, X – thực thi các task yêu cầu xử lý lượng dữ liệu lớn
  • Storage: đầu I, D – thực thi các task yêu cầu tốc độ đọc ghi lớn

Security groups

  • Kiểm soát traffics vào ra một con EC2
  • Chỉ có allow rules
  • Source trong các rule có thể là IP hoặc là một SG khác
  • Phần security group có liên quan mật thiết đến phần VPC
  • Theo mặc định thì tất cả inbound traffics đều bị blocked, tất cả outbound traffics đều allowed
  • Một số cổng thường gặp
    • 22 – SSH/SFTP
    • 80 – HTTP
    • 443 – HTTPS

Các options

  • On demand:
    • kiểu free-style, dùng bao nhiêu trả bấy nhiêu (trả tiền theo giây hoặc phút chạy), không cần trả trước và cũng ko cần thoả thuận gì cả
    • dùng cho mấy con ec2 dạng short-term, ko đoán trước được là bao lâu sẽ xong
  • Reserved:
    • dùng cho các trường hợp kiểu như mình đã tính toán trước được là mình sẽ dùng instance type nào, OS là gì, … ⇒ host một con DB
    • thời gian commit càng lâu, trả trước càng nhiều thì mình càng nhận được nhiều discount
  • Convertible reserved instance: cho phép thay đổi instance type, OS, scope, tenancy
  • Saving plans
    • commit là sẽ trả một khoản tiền nhất định (VD: $5 mỗi tiếng) trong một khoảng time từ một đến 3 năm
    • dùng càng nhiều thì trả càng nhiều tiền
    • cho phép thay đổi instance type, OS, tenancy
  • Spot instances
    • rất rẻ
    • có thể mất instance bất cứ lúc nào
    • phù hợp cho mấy job chạy trong một khoảng time nhất định, không liên tục, chịu được lỗi khi đang chạy thì instance bị mất
  • Dedicated Hosts
    • có một con server thật, mình kiểm soát được mọi thứ trong con server đấy
  • Capacity reservation
    • một dạng kết hợp giữa on-demand, reserve instance và saving plans
    • cho dù instance có chạy hay không thì vẫn mất tiền

Các dạng storage trong EC2

Loại storageĐặc điểmLưu ý
EBS– kết nối với EC2 thông qua mạng nên sẽ có một chút độ trễ
– 1 EBS có thể kết nối tới nhiều EC2 (multi-attach – CHỈ CÓ trong io1/io2, tối đa 16 EC2)
– 1 EC2 có thể kết nối tới nhiều EBSs cùng lúc (đừng nhầm lẫn)
– có thể ngắt kết nối EBS để kết nối tới một con EC2 khác
– scope là AZ ⇒ để move một con EC2 sang AZ khác, tạo snapshot rồi từ snapshot, tạo 1 con EBS mới
– một số chức năng khác: Snapshot Archive (đỡ tốn tiền nhưng sẽ mất time để restore), Recycle Bin, Fast Snapshot Restore
dùng để lưu trữ lượng dữ liệu lớn, lâu dài, chi phí thấp
EC2 Instance Store– hiệu năng cao
– dung lượng lưu trữ thấp
– sẽ mất dữ liệu nếu con EC2 bị stop
– cần tự xử lý vấn đề backup dữ liệu (nếu cần)
xừ lý data hiệu năng cao, phù hợp với các task ko yêu cầu quá nhiều dung lượng, chạy tạm thời (VD: caching, ….)
EFS– một hệ thống lưu trữ file độc lập
– hỗ trợ multi-AZ
– hỗ trợ scalability một cách hiệu quả (không cần setup trước dung lượng)
– có thể setup băng thông, tốc độ đọc ghi
– hỗ trợ standard và IA (Infrequent access)
– lưu trữ một số data cần chia sẻ cho nhiều EC2 ở nhiều AZ
– hoạt động như kiểu google drive: cho phép update data realtime, dễ dàng gắn với các instances

AMI

  • Package trạng thái hiện tại của một EC2 (OS, configuration)
  • Scope là region, có thể copy sang region khác
  • Trên marketplace có rất nhiều AMIs được cung cấp bởi AWS cũng như được bán bởi nhiều bên khác
  • Setup một EC2 từ AMI sẽ tiết kiệm effort rất nhiều (VD: cần dựng 5 EC2 có phần config giống nhau), được dùng ở rất nhiều chỗ như là trong ELB

References

Avatar photo

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc đặt tên (Naming)

Clean Code là việc viết mã nguồn rõ ràng, dễ hiểu, dễ bảo trì. Bài viết này sẽ giới thiệu nguyên tắc đầu tiên...
Avatar photo Dat Tran Thanh
4 min read

BigQuery vs Google Cloud SQL – P2

Ở bài viết trước tôi đã tổng quan về khái niệm, các tính năng chính và so sánh sự khác biệt chính của GCP...
Avatar photo Toai Nguyen Cong
11 min read

Leave a Reply

Your email address will not be published. Required fields are marked *