Mở đầu
EC2 instance cũng có kiến trúc tương tự VM trên hạ tầng ảo hóa on-premise, tức là bao gồm 2 thành phần tách biệt sau:
- Compute: CPU ảo, RAM ảo
- Disk (Persistent volume): thành phần lưu trữ data
Disk trong một EC2 instance vẫn là dạng block store và AWS gọi là EBS (Elastic Block Store). Trong bài viết trước, mình đã trình bày về nội dung thay đổi EC2 instance type (CPU, RAM)
Hôm nay, mình sẽ chia sẻ đến anh em làm thể nào để thay đổi kích thước EBS volume của một instance đang hoạt động – mà nói đúng hơn là tăng dung lượng chứ không khuyến nghị thao tác cắt giảm kích thước ổ cứng trong môi trường Production 😛
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. Tiếp theo, chọn t2.micro cho mục Instance Type
5. Với Key pair: Chọn “Create a new key pair” để khởi tạo cặp SSH 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 (dùng để truy cập vào OS của instance về sau).
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. 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.
8. 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.
9. Nhấn chọn vào Instance ID, chuyển sang tab Storage để xem chi tiết của EBS: dung lượng 8GB đã được gắn vào instance làm Root volume
Task 2: Tăng dung lượng EBS Volumes
1. Tại giao diện Storage trong EC2 instance dashboard như step 9 của cuối Task 1, anh em nhấn vào Volume ID
2. Tick chọn volume và nhấn Actions >> Modify volume
3. Tại giao diện Modify volume, thay đổi Size(GiB) (lớn hơn dung lượng hiện tại), sau đó nhấn Modify
Ví dụ: trong lab này, mình tăng EBS volume từ 8 GiB lên thành 10 GiB
Nhấn Modify tại pop-up “If you are increasing the size…” (đây chỉ là lưu ý sau khi tăng kích thước EBS volume, cần phải thực hiện mở rộng file system cho phân vùng được mount tương ứng trên instance).
Task 3: Mở rộng kích thước phân vùng bên trong instance (resizing file system)
Ở phần này, chúng ta cần phải thực hiện thao tác mở rộng kích thước phân vùng được mount tương ứng với EBS (nôm na gọi là resize file system là anh em hiểu rồi).
1. SSH vào instance bằng 1 trong 2 cách sau:
- Sử dụng ssh client tool cài đặt trên máy tính bất kỳ kết họp public key đã tải về ở bước 5 với cú pháp sau:
ssh -i <duong-dan-chua-file-public-key> ec2-user@<ec2-public-ip>
- Cách 2: Từ giao diện Instance details, nhấn Connect
Giữ user mặc định ec2-user và nhấn connect để truy cập console của server.
2. Xem danh sách chi tiết các phân vùng bằng lệnh: df -h
Anh em có thể thấy mặc dù đã tăng kích thước EBS volume lên 10 GiB rồi nhưng phân vùng Root (/) hiện tại vẫn là 8GiB.
3. Chạy lệnh sau để xem danh sách tất cả các ổ cứng vật lý (block devices) đang có trên server:
# lsblk
Nhiệm vụ của anh em là cần nâng dung lượng của root volume (/dev/xvda1) trong disk /dev/xvda từ 8 GiB lên thành 10 GiB.
4. Tăng kích thước phân vùng bằng lệnh bên dưới:
growpart <disk-name> <partition-id>
Ví dụ trong lab này: growpart /dev/xvda 1
5. Mỗi loại file system sẽ có một cú pháp resizing khác nhau, do đó để biết chính xác phân vùng hiện tại đang thuộc kiểu nào, anh em chạy lệnh sau:
# lsblk
-f
6. Trong ví dụ này, phân vùng /dev/xvda1 kiểu xfs nên sẽ thực thi tiếp lệnh sau để resizing file system.
xfs_growfs /dev/xvda1
7. Cuối cùng, kiểm tra lại dung lượng mới của phân vùng root bằng lệnh: df -h
Anh em có thể thấy tới lúc này, phân vùng root (/) đã nhận giá trị mới 10 GiB
Lời kết
Như vậy là mình đã hoàn thành bài lab hướng dẫn thay đổi kích thước EBS volume để 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