Mở đầu
Nếu như trên các nền tảng ảo hóa triển khai ở on-prem như WMWare, OpenVZ, Virtuozzo chắc hẳn anh em đã quá quen với việc đóng gói các VM thành template để tái sử dụng (sau khi đã hardening OS, cài cắm cấu hình sẵn các software tuân thủ policy,…) thì AWS Cloud cũng hỗ trợ tính năng tương tự gọi là Amazon Machine Image (AMI)
Trong nội dung bài lab hôm nay, mình sẽ hướng dẫn mọi người cách tạo ảnh (AMI) từ EC2 instance đã cài đặt sẵn một số thứ, sau đó thử sử khởi tạo instance mới từ AMI này.
Lab steps
Task 1: Khởi tạo EC2 instance
1. Từ giao diện AWS Managenment Console (sau khi đăng nhập) trên region ap-southeast-1, bạn truy cập Compute >> EC2 menu Services
2. Click “Launch instance” trên menu Instance để bắt đầu quá trình khởi tạo EC2
3. Đặt tên cho EC2 trong textbox Name
4. Trong QuickStart: Chọn Ubuntu (hoặc anh em thích OS nào thì chọn tùy ý: CentOS, Amazon Linux,…)
5. Tại thời điểm viết bài này, mình chọn luôn Image – Ubuntu Server 20.04 LTS
6. Tiếp theo, chọn t2.micro cho mục Instance Type
7. Với Key pair: Chọn “Create a new key pair” để khởi tạo cặp private / public key cho EC2 (dùng để kết nối ssh về sau).
Lần lượt nhập Key pair name (đặt tên tùy ý anh em), Key pair type và Private key file format tương tự như hình bên dưới, sau đó nhấn “Create key pair”
Lưu ý: Sau khi hệ thống tạo key pair thành công, bạn tiến hành tải về và lưu trữ public key.
6. Tiếp theo, nhấn Edit trong tab Network Settings để tùy biến network cho EC2 instance:
- Auto-assign public IP: Enable
- Select “Create new Security group“
- Security group name: nhập tên tùy ý mọi người
- Description: nhập chuỗi mô tả về chức năng của security group
Trong nội dung bài lab này, mình cần cho phép truy cập 2 service: SSH (22) và HTTP (80) từ mọi source IP, lần lượt thêm inbound rule cho security group như sau:
Thêm SSH rule:
- Choose Type: SSH
- Source: Any where
Thêm HTTP rule:
- Choose Type: HTTP
- Source: Any where
7. Kế tiếp, chọn loại gp2, giữ dung lượng 8 GB trong phần cấu hình EBS storage cho instance.
8. Nhấn chọn “Advanced Details“, trong trong khung User data nhập nội dung đoạn script cài đặt Nginx như bên dưới (AWS sẽ chỉ thực thi script này trong lần khởi động đầu tiên sau khi instance được khởi tạo)
#! /bin/bash
sudo apt-get update
sudo apt-get install -y -q nginx
sudo systemctl enable nginx --now
echo "<html><h1> Check the new EC2 created by custom AMI </h1><html>" > /var/www/html/test.html
9. Các tham số khác giữ nguyên như mặc định sau đó nhấn “Launch instance” để kích hoạt tiến trình khởi tạo server.
10. Quay lại menu Instances trên thanh Navigation để tìm instance chúng ta vừa khởi tạo ở bước trên. Đợi vài phút để tiến trình tạo EC2 hoàn tất, sẽ thấy trạng thái running như bên dưới.
11. Thử truy cập vào nội dung file test.html từ trình duyệt web thông qua public IP của instance, nếu kết quả trả về như ví dụ bên dưới tức là script chúng ta cấu hình trong phần User data trước đó đã được thực thi.
- URL: http:// <public-ip-ec2-instance>/test.html
Task 2: Tạo một AMI từ EC instance
1. Từ giao diện chứa danh sách các EC2, tick chọn vào instance cần tạo AMI, truy cập Actions >> Image and templates >> Create image
2. Trên popup Create image, anh em lần lượt đọc và nhập vào những trường thông tin sau:
- Image name: chuỗi ký tự gợi nhớ (Ví dụ: MyEC2Image)
- Image description (không bắt buộc)
- Các chi tiết khác giữ nguyên như mặc định
Sau đó nhấn Create image để khởi chạy tiến trình tạo AMI.
3. Quay lại dashboard chính của EC2, anh em truy cập vào mục Images > AMI’s trên thanh menu trái để xem lại trạng thái image vừa tạo.
Quá trình xử lý hoàn tất thì trạng thái của AMI sẽ chuyển từ Pending sang Available (thời gian hoàn thành nhanh hay chậm tùy thuộc vào kích thước Boot Volume của EC2 instance anh em sử dụng làm nguồn tạo).
Task 3: Tạo mới một EC2 instance từ AMI đã tạo trước đó
Trong phần cuối này, chúng ta sẽ thử tạo một instance mới từ AMI đã tạo ở phần trước để kiểm tra xem liệu toàn bộ dữ liệu và trạng thái có giống với instance gốc không nhé.
1. Tại giao diện Images > AMI’s (chứa danh sách tất cả các AMI có trong tài khoản AWS của bạn), tìm và tick vào AMI MyEC2Image đã tạo ở bước trên, nhấn Launch instance from AMI.
2. Tiếp theo anh em lần lượt đọc và điền các trường thông tin tương tự như tạo mới một EC2 đã làm ở Task 1.
Anh em có thể tùy chọn Instance type, tạo mới hoặc tái sử dụng chung Key Pair, Security Group với instance gốc, do mình lười nên ở bài lab này mình để các trường như mặc định
Lưu ý: Vì AMI này đã bao gồm toàn bộ data và cấu hình của EC2 gốc nên chúng ta không cần sử dụng User data trong mục “Advanced Details” nữa.
3. Coi xong xuôi hết nhấn Launch instance để kích hoạt quá trình khởi tạo EC2, đợi vài phút quay lại menu chứa danh sách các Instances sẽ thấy server mới được tạo ra với tên MyEC2FromAMIServer như ví dụ bên dưới.
4. Thử truy cập vào nội dung file test.html từ trình duyệt web thông qua public IP của instance mới này, ta nhận thấy nội dung hoàn toàn giống với EC2 instance khởi tạo ban đầu.
- URL: http:// <public-ip-ec2-instance>/test.html
Lời kết
Như vậy là mình đã hoàn thành bài lab tạo AMI từ EC2 instance để bổ sung vào serie AWS SAA hands-on
Nếu có bất kỳ thắc mắc, góp ý về nội dung bài viết hoặc anh em có thêm những tip hay khác có thể chia sẻ dưới phần bình luận nhé.
Trong thời gian tới, mình sẽ cố gắng bổ sung nhiều lab khác trong chuỗi, anh em nhớ theo dõi nhé.
Để lại một phản hồi