Mở đầu
Như anh em đã biết, khi chúng ta khởi tạo EC2 instance trên AWS, mặc định tính năng Auto Assign IP-Address sẽ tự động gán địa chỉ IP cho instance. Tuy nhiên khi instance ở trạng thái stop, địa chỉ IP này sẽ bị thu hồi để có thể sẵn sàng cấp phát cho các instance khác trên hạ tầng AWS.
Do đó, trong thực tế để giữ cố định một địa chỉ IP cho service bất kỳ (EC2 instance), ta có thể sử dụng tính năng Manual Assign IP-Address (Elastic IP-Address) – đây cũng chính là nội dung của bài lab hôm nay mình muốn chia sẻ đến mọi người.
Mô hình kiến trúc
Lab Steps
Mình sẽ bỏ qua bước hướng dẫn đăng nhập vào AWS Managenment Console (vì nó quá là easy với mọi người rồi 😀 ) để vào thẳng phần nội dung chính của bài lab. Xuyên suốt serie hands-on này, mình sẽ sử dụng ap-southeast-1 (Singapore) như là region mặc định (ngoại trừ những lab bắt buộc khởi tạo tài nguyên trên các region khác).
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 để xem cấu hình chi tiết: dưới đây là ví dụ về Public IPv4 của instance
Task 2: SSH vào EC2 instance
Vì server ở trên được tạo ở public subnet (default VPC) và đã mở port SSH (22) nên ta có thể thực hiện ssh từ bất đâu, bằng một trong 2 cách sau:
- Cách 1: 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.
Task 3: Cài đặt một Web Server (Nginx) lên instance
Phần này chủ yếu dùng để test lại truy cập đến service HTTP trên instance bằng public IP.
1. Do đó, sau khi remote vào OS của instance, anh em có thể cài đặt web server đơn giản nào đó như Apache, Nginx,… Trong bài lab này, mình thích cài Nginx, cũng yum install thôi cho nhẹ người :)))
sudo -s
yum install -y nginx
systemctl start nginx
systemctl enable nginx
Cuối cùng kiểm tra lại trạng thái web server running là được:
systemctl status nginx
2. Thử tạo một file test.html bên trong thư mục /usr/share/nginx/html/ (default document root của Nginx)
<HTML>Hi All, I am a public page</HTML>
3. 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
- URL: http:// <public-ip-ec2-instance>/test.html
- Ví dụ: http://13.215.186.111/test.html
4. Quay lại giao diện danh sách Instances, tick chọn vào MyEC2Server >> Stop instance để shutdown server.
5. Đợi vài phút cho đến khi Instance state chuyển sang trạng thái Stopped (tắt hoàn toàn), nhấn chọn Start instance để bật lại server.
6. Sau vài phút để Instance cập nhật lại trạng thái running, anh em có thể thấy Public IPv4 đã thay đổi so với thời điểm mới khởi tạo lúc đầu (lý do lúc instance bị stop, AWS đã gỡ Public IPv4 ra khỏi network interface, sau khi server được start lại, nó sẽ cấp phát Public IPv4 khác).
Task 4: Kích hoạt Elastic IP và gán vào EC2 instance
Để sử dụng Elastic IP, anh em cần yêu cầu (allocate) và gán nó vào instance hoặc một network interface.
1. Từ menu EC2 bên dưới EC2 dashboad, click chọn “Elastic IPs” trong nhóm “Network & Security“. Nhấn chọn “Allocate Elastic IP address”
2. Giữ nguyên mọi thứ như mặc định và click vào “Allocate”
3. Elastic IP được cấp phát thành công như ví dụ bên dưới
4. Để gán Elastic IP này vào một instance cụ thể, anh em chọn mục “Associate Elastic IP address” từ combobox Actions
5. Trong cửa sổ Associate Elastic IP address, thiết lập như sau:
- Resource type: instance
- Chọn đúng server cần gán Elastic IP dựa vào Instance ID từ combobox Instance
- Các mục khác giữ mặc định và nhấn “Associate“
6. Nếu thành công, quay lại sẽ thấy Elastic IP được gán đúng vào instance của anh em.
7. Quay lại truy cập vào EC2 instance details, sẽ thấy giá trị Public IPv4 addess của server chính là Elastic IP đã request ở bước trên.
8. Thực hiện lại thao tác stop, start instanse để kiểm tra lại hoạt động của Elastic IP, nếu mọi cấu hình chính xác, giá trị Public IPv4 của server sẽ không thay đổi.
9. Bước kiểm tra cuối cùng của bài lab, thử truy cập lại file test.html từ trình duyệt web thông qua Elastic IPv4, kết quả tương tự như minh họa bên dưới.
Lời kết
Như vậy là mình đã hoàn thành bài lab tạo Elastic IP và gán vào EC2 instance, đây cũng là bài viết đầu tiên trong 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