Amazon EC2
Amazon EC2 (Elastic Compute Cloud) là một trong những dịch vụ phổ biến nhất của AWS. Nó là dịch vụ cung cấp hạ tầng điện toán đám mây (IaaS). EC2 cung cấp cho người dùng khả năng thuê các máy ảo, lưu trữ dữ liệu trên ổ đĩa ảo (EBS), phân phối tải trên nhiều máy chủ (ELB) và tự động mở rộng dịch vụ bằng cách sử dụng một nhóm tự động mở rộng (ASG). Việc nắm vững EC2 là cần thiết để hiểu cách Cloud hoạt động.
EC2 sizing & configuration options
EC2 là một dịch vụ của AWS cho phép chúng ta thuê và quản lý các máy ảo (virtual machines). Khi thuê một instance EC2, người dùng sẽ có nhiều tùy chọn cấu hình để đáp ứng nhu cầu sử dụng của mình, bao gồm:
- Hệ điều hành (OS): Linux, Windows hoặc Mac OS.
- Số lượng bộ xử lý và nhân (CPU).
- Dung lượng bộ nhớ truy cập ngẫu nhiên (RAM).
- Dung lượng lưu trữ:
- Lưu trữ kết nối mạng (EBS & EFS)
- Lưu trữ cục bộ (EC2 Instance Store).
- Netowrk: tốc độ của network, địa chỉ IP public.
- Quy tắc tường lửa: security group.
- Tùy chỉnh thiết lập khi khởi động máy ảo: EC2 User Data.
EC2 User Data
EC2 User Data là một kịch bản (script) mà chúng ta có thể sử dụng để khởi động các lệnh, cài đặt phần mềm hoặc cập nhật trên một instance EC2 khi nó được khởi động lần đầu tiên. Việc sử dụng EC2 User Data giúp tự động hóa các tác vụ khởi động, cài đặt hoặc cập nhật các phần mềm trên các instance EC2 một cách dễ dàng và nhanh chóng.
EC2 User Data được chạy chỉ một lần duy nhất khi instance được khởi động lần đầu tiên. Việc này giúp chúng ta tự động hóa các tác vụ khởi động, cài đặt phần mềm hoặc các tác vụ tương tự mà cần phải được thực hiện trong quá trình khởi động.
EC2 User Data có thể được sử dụng để thực hiện các tác vụ như cài đặt các bản cập nhật, cài đặt phần mềm, tải xuống các tập tin từ internet hoặc bất cứ thứ gì mà bạn cần thực hiện trong quá trình khởi động. Lưu ý rằng EC2 User Data được chạy với quyền root user.
EC2 instance types: example
Bảng dưới là những loại instances của EC2 với các thông số kỹ thuật và hiệu suất khác nhau. Các thông số bao gồm:
- VCPU: số lượng CPU ảo của instance.
- Mem (GiB): dung lượng bộ nhớ RAM của instance tính bằng Gigabyte (GB).
- Storage: dung lượng lưu trữ của instance, bao gồm EBS-Only (dung lượng lưu trữ trên EBS) hoặc 1 x 400 NVMe SSD (dung lượng lưu trữ trên đĩa cứng SSD nhanh hơn).
- Network: tốc độ mạng kết nối của instance, bao gồm Up to 10 Gbps (10 gigabit/giây) hoặc 20 Gbps.
- EBS Bandwidth Performance (Mbps): hiệu suất băng thông kết nối EBS (Elastic Block Store) tính bằng Megabit/giây (Mb/giây).
Mỗi loại instance có ưu điểm và hạn chế riêng, và tùy thuộc vào nhu cầu của người dùng để chọn lựa instance phù hợp với mục đích sử dụng.
Lưu ý t2.micro là một trong những loại instance được cung cấp trong chương trình AWS free tier. Khách hàng có thể sử dụng t2.micro trong vòng 750 giờ mỗi tháng miễn phí. Tuy nhiên, giới hạn sử dụng không được vượt quá 12 tháng tính từ lần đăng ký đầu tiên. Nếu sử dụng vượt quá giới hạn này hoặc sử dụng các loại instance khác, khách hàng sẽ phải trả phí sử dụng theo giá cước của AWS. T2.micro là loại instance có cấu hình nhỏ và thích hợp cho các ứng dụng ít tài nguyên và ít yêu cầu về hiệu năng.
Create an EC2 Instance with EC2 User Data to have a Website Hands On
Trong phần này, chúng ta sẽ sử dụng AWS Console để khởi tạo máy chủ ảo đầu tiên. Chúng ta sẽ được cung cấp một cái nhìn tổng quan về các thông số khác nhau và tùy chọn cấu hình khi tạo máy chủ. Chúng ta sẽ thấy rằng máy chủ web của chúng ta được khởi động bằng EC2 User Data, và học cách bật/tắt/xoá máy chủ của chúng ta.
Tại màn hình Console Home bạn hãy click vào đó.
Ở màn hình EC2 Dashboard bạn sẽ nhìn được tổng quan một số thông tin như Resources, Account attributes,…
Bây giờ bạn hãy click vào Instances (1) › Launch instances (2).
Tại phần Name and tags bạn hãy đặt tên (1) cho instance của mình và nếu bạn muốn thêm thông tin về tags hãy bấm vào Add additional tags (2).
Giả sử bạn muốn thêm tag, hãy bấm vào Add tag.
Tiếp theo sẽ tới các thành phần về AMI:
- Recents (1): sẽ liệt kê lịch sử các AMI trước đó bạn đã lựa chọn.
- Quick Start (2): Đây là nơi bạn sẽ lựa chọn AMI.
- Hàng thứ (3): Cho bạn lựa chọn loại OS.
- Bạn có thể bấm vào (4) để xem nhiều AMI hơn.
- Nếu bạn chọn Amazon Linux, bạn sẽ nhận được danh sách các image (5) nằm trong Amazon Linux.
- Phần (6) cho phép bạn lựa chọn Architecture là 64bit hay x86.
Giả sử mình sẽ chọn Instance type là t2.micro.
Nếu bạn bấm xổ ra thì bạn sẽ có nhiều loại instance hơn.
Bạn cũng có thể click vào “Compare instance types” để so sánh các loại instance.
Phần này cho phép bạn tạo key để ssh. Nếu bạn chưa tạo key thì (1) sẽ trống, bạn hãy bấm vào (2) để tạo 1 key mới.
Key pair là một cặp gồm public key (khóa công khai) và private key (khóa bí mật) được sử dụng trong hệ thống mã hóa khóa công khai. RSA và E025519 là hai loại thuật toán được sử dụng để tạo ra key pair.
RSA là một thuật toán mã hóa khóa công khai được phát triển vào những năm 1970 bởi Ron Rivest, Adi Shamir và Leonard Adleman. Thuật toán RSA sử dụng một cặp key public-private để mã hóa và giải mã dữ liệu. Public key được phân phối rộng rãi và được sử dụng để mã hóa dữ liệu, trong khi private key được giữ bí mật và được sử dụng để giải mã dữ liệu.
E025519 là một loại key pair được sử dụng trong các hệ thống AWS (Amazon Web Services) để tạo ra các key pair cho các instances EC2 (Elastic Compute Cloud). E025519 là một loại key pair duy nhất được tạo ra bởi AWS và không thể được tạo ra bởi người dùng. Khi một instance EC2 được tạo ra, key pair sẽ được gán cho instance đó. Private key sẽ được tải xuống và lưu trữ trên máy tính của người dùng, trong khi public key sẽ được gán cho instance EC2 để cho phép truy cập từ xa vào instance đó.
Các định dạng file *.pem và *.ppk được sử dụng để lưu trữ khóa riêng tư (private key) khi kết nối vào các instance EC2 trên AWS. Định dạng file *.pem được sử dụng với các key pair loại RSA và được tạo ra bằng cách sử dụng lệnh ‘ssh-keygen’ trên Linux hoặc macOS. Định dạng file *.ppk được sử dụng với các key pair loại E025519 và được tạo ra bằng cách sử dụng phần mềm PuTTYgen trên Windows.
Các file này chứa khóa riêng tư, cho phép người dùng truy cập vào máy ảo EC2 mà không cần nhập mật khẩu. Tuy nhiên, để bảo mật tốt hơn, người dùng nên bảo mật file khóa riêng tư này bằng cách chỉ cấp quyền truy cập đến các người dùng cần thiết.
Khi bạn bấm vào Create key pair, hệ thống sẽ cho bạn download file key xuống máy tính.
Tại phần network settings cho phép bạn chỉnh sửa network, nếu bạn muốn chỉnh sửa nhiều hơn và nâng cao hơn thì bạn bấm vào Edit.
Tại phần (2) là thông tin VPC và subnet sẽ gán cho instance, nếu bạn muốn thay đổi thì bấm vào (1).
Auto-assign public IP (3) nếu bạn để Enable thì địa chỉ IP sẽ được gán tự động.
Tại phần (4) và (5) cho phép bạn mở cổng ssh và http cho tất cả các source ở ngoài internet kết nối vào instance.
Ở phần (6) bạn sẽ được nhắc nhở với source là 0.0.0.0/0 cho phép tất cả địa chỉ IP truy cập vào máy ảo của bạn. Chúng tôi khuyến cáo thiết lập luật an ninh nhóm để cho phép truy cập từ các địa chỉ IP đã biết. Điều này giúp tăng cường bảo mật cho máy chủ của bạn bằng cách chỉ cho phép truy cập từ các địa chỉ IP được xác định trước và giảm thiểu rủi ro cho các hành vi tấn công mạng.
Phần Configure storage cho phép bạn cài đặt storage cho instance. Bạn sẽ được nhắc nhở (2) với nội dung “khách hàng đủ điều kiện cho chương trình miễn phí có thể nhận được tới 30GB ổ đĩa EBS loại General Purpose (SSD) hoặc Magnetic. EBS (Elastic Block Store) là một dịch vụ lưu trữ block-level của AWS, cho phép lưu trữ và truy cập các khối dữ liệu từ các EC2 instance. EBS General Purpose SSD là ổ đĩa tốc độ cao, dùng cho các tác vụ truy cập dữ liệu ngẫu nhiên và tuần tự, trong khi Magnetic là loại ổ đĩa tốc độ thấp dùng cho các ứng dụng lưu trữ dữ liệu lớn với chi phí thấp hơn. Tuy nhiên, chương trình miễn phí chỉ áp dụng với một số loại instance nhất định và chỉ trong vòng 12 tháng kể từ khi đăng ký. Sau đó, nếu bạn tiếp tục sử dụng dịch vụ, sẽ phải trả phí theo mức giá của AWS.”
Nếu bạn bấm và Advanced (1) ở hình trên, nó sẽ dẫn bạn đến hình dưới đây. Với cài đặt “Delete on termination” (1) là yes đồng nghĩa với nếu bạn xoá instance này thì volume sẽ bị xoá theo instance và nếu bạn để là no thì hệ thống chỉ xoá instance mà thôi.
Vời tuỳ chọn Encrypted (2) cho phép bạn mã hoá hoặc không mã hoá dữ liệu.
Phần User data cho phép bạn chạy 1 đoạn script nhỏ để cài đặt hoặc cấu hình một số thành phần lúc khởi tạo instance, script dưới dùng để cài đặt 1 webserver apache với nội dung webserver là “Hello World from…”
Phần summary cho phép bạn review lại các thiết lập và chọn số lượng instance sẽ khởi tạo.
Quá trình tạo instance bắt đầu.
Thông báo tạo instance thành công, bạn có thể bấm vào View all instances để xem các instances đang có trong hệ thống.
Và đây bạn sẽ thấy 1 số thông tin như Public IPv4 address, Private IPv4 addresses, Instance ID,….
Và nếu bạn sử dụng địa chỉ Public IPv4 address bạn sẽ nhận được nội dung webserver mà lúc này chúng ta đã khởi tạo ở User data.
Nếu bạn muốn stop instance bạn có thể làm như dưới.
Xác nhận stop instance.
Instance đang stop, bạn hãy chờ đến khi trạng thái chuyển thành Stopped.
Và đây là kết quả stop instance thành công.
Bạn cũng có thể xoá instance này bằng cách chọn instance muốn xoá và bấm vào Terminate instance.
Xác nhận xoá instance bằng cách bấm vào Terminate.