Tìm hiểu về Amazon EC2 User Data

User Data là một kỹ thuật rất hay mà có thể bạn bỏ qua khi sử dụng EC2 Service. User Data giúp bạn tự động cài đặt một số gói (package) trước khi booting máy chủ EC2, quá trình này gọi là bootstrapping.

Quá trình bootstrapping thực tế là yêu cầu Amazon EC2 instance chạy một số lệnh (command) trong khi khởi động với quyền cao nhất là root (sudo su).

Script định nghĩa trong User Data sẽ được chạy một lần duy nhất vào lần khởi động đầu tiên (đảm bảo không bị chạy đi chạy lại nhiều lần). Trong đề thi AWS đây cũng là một topic rất thường xuyên đánh đố hỏi về User Data chạy một lần hay mỗi lần khởi động.

Lưu ý: Script trong User Data chỉ chạy 1 lần vào first start.

Một số công việc mà User Data có thể giúp chúng ta làm như sau:

  1. Installing updates
  2. Installing software
  3. Downloading common files from Internet

Mặc định, những câu lệnh trong User Data sẽ được chạy với đặc quyền cao nhất là root.

Ví dụ về User Data:

#!/bin/bash
# install httpd
yum update -y
yum install -y httpd.x86_64
systemctl start httpd.service
systemctl enable httpd.service
echo "<h1>Hello AWS from $(hostname -f)</h1>" > /var/www/html/index.html

EC2 User Data là một kỹ thuật quan trọng gặp rất nhiều trong đề thi AWS cũng như thực tiễn làm việc liên quan các workload ảo hóa trên AWS. Hy vọng qua bài này các bạn có thể hiểu được User Data và cách sử dụng.

Tăng thêm một chút khó ta cũng có thể sử dụng User Data script để lấy các thông số liên quan Metadata của EC2.

Code: $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone/)

Ghép đoạn trên với User Data ta có được hoàn chỉnh 1 script như sau:

#!/bin/bash
# install httpd
yum update -y
yum install -y httpd.x86_64
systemctl start httpd.service
systemctl enable httpd.service
EC2_AZ=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone/)
echo "<h1>Hello AWS from $(hostname -f) in AZ: $EC2_AZ</h1>" > /var/www/html/index.html

Happy Clouding!

%d bloggers like this: