Lời đầu
Xin chào mình là Glutis
- 1 sinh viên ngành toán tại HUST. Trong đợt nghỉ quốc khánh này mình có mày mò học một số khóa faster của aws trên aws education, học của vài khóa introduce thì học đến EC2 dù là base thôi nhưng mà ko thể coi nhẹ vì mình vừa phát hiện ra một tính năng độc lạ, thú vị. Nó giải quyết được vấn đề mà mình gặp phải trong vài tháng nay.
Đó là làm thế nào để một EC2 instance có thể tự khởi động server trước một khi start instance. Giải thích một chút do các instance sẽ mất một số các chi phí để thuê vì vậy trong những lúc instance ko hoạt động mình sẽ stop lại (khi stop thì ec2 sẽ ko tính phí). Tuy nhiên khi start lại instance thì server sẽ không tự khởi động lại mà mình sẽ phải truy cập vào command line của instance để làm việc đó.
Ví dụ: chạy lệnh npm start
để cấu hình một fontend cho một trang web bán hàng với cổng 4000 chẳng hạn.
Để làm được việc này chúng ta sẽ phải sử dụng một tính năng rất hay của EC2 đó là user data
.
Tính năng user data là gì?
Tính năng user data của EC2 (Amazon Elastic Compute Cloud) cho phép bạn cung cấp các script hoặc lệnh được thực thi tự động khi một instance EC2 khởi động lần đầu tiên. Bạn có thể sử dụng user data để cấu hình máy chủ, cài đặt phần mềm, chạy các lệnh thiết lập, hoặc thực hiện bất kỳ tác vụ nào mà bạn muốn tự động khi instance bắt đầu hoạt động.
Một vài điểm chính về user data của EC2:
Dạng nội dung: User data có thể là một chuỗi văn bản hoặc một script shell (bash script). Nội dung này được tự động thực thi dưới quyền root.
Thời điểm thực thi: User data được thực thi chỉ một lần khi instance khởi động lần đầu tiên. Nếu bạn muốn nó chạy lại khi instance reboot, bạn cần cấu hình lại hoặc chỉnh sửa script.
Sử dụng phổ biến:
- Cài đặt và cấu hình phần mềm tự động khi instance khởi động.
- Kết nối instance với các dịch vụ khác (như đăng ký với một load balancer hoặc cài đặt agents).
- Khởi tạo các tập lệnh để chuẩn bị môi trường làm việc.
- Cách cung cấp: Bạn có thể cung cấp user data thông qua AWS Management Console, AWS CLI, hoặc API khi khởi tạo một instance mới.
User data là công cụ hữu ích giúp tự động hóa và chuẩn hóa quá trình triển khai và cấu hình máy chủ trên EC2.
Khi một phiên bản Amazon Elastic Compute Cloud (Amazon EC2) khởi chạy, nó sẽ chạy tập lệnh dữ liệu người dùng. Các lệnh trong tập lệnh dữ liệu người dùng được sử dụng để tự động hóa các tác vụ cấu hình phổ biến.
Cách để cấu hình user data
Ngoài việc tự cấu hình ở ngoài console ec2 thì ta có thể tự sử trực tiếp user data ở ngay trong chính instance của mình chỉ cần biết chính xác thư mục và đường dẫn của file này.
Lệnh check user data script
1 | sudo cat /var/lib/cloud/instance/scripts/part-001 |
xóa user data
1 | sudo rm /var/lib/cloud/instances/*/sem/config_scripts_user |
Nếu quên hoặc muốn thay đổi scripts run thì làm thế nào?
Truy cập giao diện instance
Tại Actions, chọn edit user data:
Để edit user data bạn cần phải stop instance trước đó, rồi chỉnh sửa đoạn script theo ý muốn.
Tiến hành kiểm tra xem các công cụ đã được cài chưa
Tiến hành check xem user data script có thực sự hoạt động chưa
1 | redis-server -v |
Redis server v=6.2.14 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=91899a618ea2f176
Kết luận
Một điều khá mới mẻ, mọi người có thể tham khảo tại link lab: https://labs.vocareum.com/main/main.php?m=editor&asnid=2014341&stepid=2014342&hideNavBar=1