Cách quản lý các phiên bản AWS EC2 thông qua Giao diện dòng lệnh AWS
AWS cung cấp một giao diện web tiện lợi có tên là AWS Management Console. Bạn có thể sử dụng giao diện này để thực hiện tất cả các thao tác cần thiết trên nền tảng đám mây AWS. Tuy nhiên, việc thực hiện nhiều thao tác lặp đi lặp lại trên giao diện web có thể trở nên nhàm chán và tốn thời gian. Trong trường hợp này, bạn có thể sử dụng AWS CLI để tự động hóa các tác vụ quản lý AWS và thực hiện các thao tác hàng loạt. Bài viết này hướng dẫn cách cài đặt AWS CLI và những kiến thức cơ bản về cách sử dụng công cụ này. Bài viết cũng tập trung vào các lệnh EC2 của AWS CLI kèm theo các ví dụ minh họa.
AWS CLI là gì?
Giao diện dòng lệnh Amazon Web Services (AWS CLI) là một công cụ dòng lệnh mã nguồn mở dùng để quản lý các môi trường trên nền tảng đám mây Amazon. Công cụ này hoạt động thông qua việc tích hợp với vỏ dòng lệnh (shell) của hệ điều hành mà AWS CLI được cài đặt. Bạn có thể quản lý các instance AWS EC2 bằng các lệnh AWS EC2, cũng như quản lý các khối lượng EBS, bucket S3 và các dịch vụ Amazon khác.
AWS CLI chạy trên vỏ lệnh dòng lệnh Linux, terminal macOS, dấu nhắc lệnh Windows (CMD) và PowerShell. Công cụ dòng lệnh này cho phép bạn tạo các tập lệnh và tự động hóa các tác vụ của mình.
Có hai phiên bản chính của AWS CLI:
- AWS CLI phiên bản 1 là phiên bản cũ được cung cấp để đảm bảo tương thích ngược. Phiên bản này vẫn được hỗ trợ, nhưng một số tính năng mới có thể không khả dụng.
- AWS CLI phiên bản 2 là phiên bản mới nhất hỗ trợ tất cả các tính năng hiện có của AWS. Bạn nên cài đặt phiên bản mới nhất.
Cả hai phiên bản đều sử dụng cùng một aws lệnh để chạy AWS CLI. Tuy nhiên, có một số thay đổi khiến các tập lệnh được tạo cho AWS CLI v1 có thể không hoạt động trên AWS CLI v2.
Yêu cầu
Bây giờ, hãy xem xét các yêu cầu bạn cần đáp ứng để sử dụng AWS CLI.
Yêu cầu chung
- Bạn cần có tài khoản AWS và Khóa truy cập AWS (ID khóa truy cập AWS và Khóa truy cập bí mật AWS).
- Phải cài đặt Python 2 phiên bản 2.6.5 trở lên hoặc Python 3 phiên bản 3.3 trở lên. AWS CLI v2 đã tích hợp sẵn Python, do đó bạn không cần cài đặt Python thủ công để cài đặt AWS CLI v2.
Linux
- Phải cài đặt công cụ giải nén tệp zip
glibc,groff, vàless
Windows
- Windows XP trở lên
- Quyền quản trị viên trên máy tính Windows
macOS
- Phiên bản macOS 64-bit được Apple hỗ trợ
Cài đặt
Bạn cần cài đặt AWS CLI trước khi có thể thực thi các lệnh để quản lý các instance AWS EC2 và các dịch vụ khác của Amazon. Hãy cùng xem cách cài đặt AWS CLI phiên bản 2 trên các hệ điều hành khác nhau.
Cài đặt AWS CLI trên Linux
Có ba phương pháp để cài đặt AWS CLI trên Linux:
- Sử dụng trình cài đặt gói (phương pháp chính thức)
- Sử dụng kho phần mềm Linux
- Cài đặt AWS CLI dưới dạng mô-đun Python
Amazon khuyến nghị bạn nên sử dụng phương pháp chính thức để cài đặt AWS CLI. Trong trường hợp này, bạn sẽ luôn có được phiên bản mới nhất của phần mềm. Tôi đang sử dụng Ubuntu 20 trong quy trình làm việc này.
Sử dụng gói cài đặt chính thức
Đây là phương pháp được khuyến nghị để cài đặt AWS CLI. Thực hiện theo các bước sau:
- Cài đặt curl:
apt-get install curl
- Tải xuống gói cài đặt AWS CLI:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- Giải nén các tệp cài đặt đi kèm từ gói đã tải xuống:
unzip awscliv2.zip
- Chạy trình cài đặt với quyền root:
sudo ./aws/install
- Sau khi cài đặt hoàn tất, hãy kiểm tra phiên bản của công cụ AWS CLI đã cài đặt để đảm bảo rằng công cụ này đã được cài đặt thành công:
aws --version
Sử dụng kho phần mềm Linux
AWS CLI có sẵn trong các kho phần mềm chính thức của Ubuntu. Thực hiện theo các bước sau:
1. Cập nhật cây kho phần mềm:
sudo apt-get update
2. Cài đặt AWS CLI bằng trình quản lý gói từ kho phần mềm Linux:
sudo apt-get install awscli
3. Xác minh rằng AWS CLI đã được cài đặt thành công:
aws --version
Cài đặt bằng Python PIP
Bạn có thể cài đặt AWS CLI dưới dạng mô-đun Python bằng cách sử dụng trình quản lý gói Python PIP. Lưu ý rằng Python PIP không được cài đặt sẵn trên Ubuntu. Thực hiện theo các bước sau để cài đặt dưới dạng mô-đun Python:
1. Bạn cần cài đặt Python PIP trước.
- Đối với Python 2.x:
sudo apt-get install python-pip
- Đối với Python 3.x:
sudo apt-get install python3-pip
2. Cài đặt AWS CLI bằng Python PIP.
- Sử dụng Python 2.x PIP:
pip install awscli --upgrade --user
- Sử dụng PIP cho Python 3.x:
pip3 install awscli --upgrade --user
3. Kiểm tra phiên bản đã cài đặt.
- Trong Python 2.x:
python -m awscli --version
- Trong Python 3.x:
python3 -m awscli --version
Lưu ý: Nếu bạn sử dụng AWS CLI được cài đặt qua Python PIP, các lệnh bạn cần sử dụng sẽ khác với lệnh chính tiêu chuẩn aws được sử dụng cho phiên bản đóng gói của AWS CLI:
- Phiên bản đóng gói:
aws
- Module cho Python 2:
python -m awscli
- Module cho Python 3:
python3 -m awscli
Cài đặt AWS CLI trên Windows
Để cài đặt AWS CLI trên Windows, bạn cần tải xuống trình cài đặt, cài đặt AWS CLI và thực hiện cấu hình sau khi cài đặt trên Windows.
Tải xuống trình cài đặt
Tải xuống trình cài đặt AWS CLI 64-bit bằng cách sử dụng một trong các liên kết dưới đây và lưu tệp vào vị trí tùy chỉnh, ví dụ: C:temp
- Trình cài đặt 64-bit có sẵn trên AWS: https://awscli.amazonaws.com/AWSCLIV2.msi
- Trình cài đặt 32-bit có sẵn tại liên kết này: https://s3.amazonaws.com/aws-cli/AWSCLI32PY3.msi
- Tệp trình cài đặt đa nền tảng có sẵn tại đây: https://s3.amazonaws.com/aws-cli/AWSCLISetup.exe
Trong ví dụ này, tôi sử dụng Windows Server 2016 và tải xuống tệp AWSCLIV2.msi .
Bạn có thể tải xuống tệp cài đặt trong PowerShell bằng lệnh:
Invoke-WebRequest -Uri https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile "C:tempAWSCLIV2.msi"
Khởi chạy trình cài đặt
Khởi chạy tệp đã tải xuống AWSCLIV2.msi
Nếu bạn sử dụng PowerShell, hãy lưu ý vị trí của tệp .msi ( C:temp trong trường hợp của tôi) và chạy lệnh:
C:tempAWSCLIV2.msi
Thực hiện theo các bước của trình hướng dẫn cài đặt. Bạn có thể sử dụng các thiết lập mặc định cho quá trình cài đặt. Quá trình cài đặt rất đơn giản, nên tôi sẽ không đi vào chi tiết từng bước của trình hướng dẫn.
Nếu bạn thử chạy lệnh aws --version để kiểm tra xem AWS CLI đã được cài đặt thành công hay chưa, bạn có thể gặp lỗi. Điều này là do không có mục nào liên quan đến công cụ AWS CLI trong biến môi trường PATH. Bây giờ, bạn có thể chuyển thư mục đến thư mục mà AWS CLI được cài đặt ( C:Program FilesAmazonAWSCLIV2 theo mặc định) và chạy AWS CLI theo cách thủ công.
cd "C:Program FilesAmazonAWSCLIV2"
.aws --version
Cấu hình PATH
Thêm mục vào biến môi trường PATH vì việc thay đổi thư mục trên dòng lệnh thủ công mỗi khi cần chạy lệnh AWS CLI là không thuận tiện.
Sử dụng giao diện đồ họa Windows
1. Mở Control Panel > System > Advanced system settings, và trong tab Advanced của cửa sổ Thuộc tính Hệ thống , nhấp vào Environment Variables.
2. Trong cửa sổ Biến môi trường , chọn biến PATH và nhấp vào Edit. Lưu ý rằng có các tùy chọn để chỉnh sửa Biến người dùng cho Quản trị viên và Biến hệ thống .
3. Trong cửa sổ Chỉnh sửa biến môi trường , nhấp vào New.
4. Chỉ định đường dẫn đến thư mục nơi AWS CLI được cài đặt và nhấn Enter. Trong trường hợp của tôi, thư mục này là “C:Program FilesAmazonAWSCLIV2”.
5. Nhấp vào OK để lưu cài đặt và đóng các cửa sổ.
Lưu ý: bạn có thể cần mở lại cửa sổ console (PowerShell hoặc CMD) để các thay đổi có hiệu lực.
Sử dụng PowerShell
Bạn cũng có thể chỉnh sửa biến môi trường trong PowerShell. Thực hiện các bước sau để thêm giá trị vào biến PATH trong PowerShell:
1. Ghi lại giá trị ban đầu của biến PATH mà bạn muốn sửa đổi:
$oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
2. Định nghĩa giá trị mới cho biến PATH bằng cách thêm giá trị cần thiết: Trong trường hợp của tôi, giá trị cần thêm là đường dẫn đến thư mục AWS CLI. Ký tự chấm phẩy (;) được sử dụng làm dấu phân cách giữa các giá trị đường dẫn trong biến PATH của .
$newpath = "$oldpath;C:Program FilesAmazonAWSCLIV2"
3. Áp dụng giá trị này vào Sổ đăng ký Windows để lưu thay đổi vĩnh viễn:
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH -Value $newPath
4. Kiểm tra xem cấu hình mới của biến PATH có chính xác không:
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH
hoặc
(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
Sử dụng Chocolatey
Thay vì tải xuống và chạy tệp cài đặt MSI, bạn có thể cài đặt AWS CLI bằng Chocolatey, một công cụ quản lý phần mềm Windows chạy trên PowerShell. Chocolatey hỗ trợ cài đặt ứng dụng từ các kho lưu trữ trực tuyến của Windows. Chạy lệnh này để cài đặt AWS CLI:
choco install awscli
Kiểm tra kết quả cài đặt
Bây giờ bạn có thể chạy lệnh aws (và các lệnh AWS EC2 liên quan) từ bất kỳ thư mục nào trong PowerShell.
aws --version
Lưu ý: Nếu hệ điều hành của bạn đã cài đặt cả AWS CLI phiên bản 1 và AWS CLI phiên bản 2, hệ điều hành sẽ thực thi phiên bản đầu tiên được thiết lập trong biến PATH .
Cài đặt AWS CLI trên macOS
Thực hiện các bước sau để cài đặt AWS CLI trên macOS.
Truy cập vào thư mục /tmp/ sẽ được sử dụng để lưu trữ các tệp đã tải xuống:
cd /tmp
Phương pháp 1
- Tải xuống tệp cài đặt:
curl -o awscli.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip - Giải nén nội dung từ tệp zip đã tải xuống:
unzip awscli.zip - Cài đặt AWS CLI:
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
Phương pháp 2
- Tải xuống gói cài đặt:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" - Chạy trình cài đặt:
sudo installer -pkg AWSCLIV2.pkg -target / - Bạn có thể chạy lệnh sau để đảm bảo rằng AWS CLI đã được cài đặt thành công:
aws --version
Cấu hình ban đầu cho AWS CLI
Bây giờ bạn cần chỉ định thông tin đăng nhập AWS, cũng như cấu hình vùng và các tham số đầu ra. Chạy lệnh dưới đây để cấu hình AWS CLI. Cú pháp của các lệnh AWS CLI giống nhau trên Linux, Windows và macOS. Trong ví dụ của tôi, tôi đang sử dụng Ubuntu Linux.
aws configure
Chỉ định bốn tham số (hai tham số đầu tiên là bắt buộc):
- ID Khóa Truy cập AWS , là một chuỗi ký tự chữ và số gồm 20 ký tự. Các chữ cái đều viết hoa.
- AWS Secret Access Key , là một chuỗi gồm 40 ký tự chữ và số giống như một dấu thăng (#).
- Tên khu vực mặc định . Chọn tham số này nếu bạn không cần chỉ định khu vực một cách rõ ràng mỗi khi chạy lệnh trong AWS CLI. Nếu bạn cần sử dụng một khu vực khác với khu vực mặc định, bạn có thể chỉ định khu vực cần thiết trong lệnh một cách thủ công. Sử dụng
--regioncho mục đích này. - Định dạng đầu ra mặc định . Có ba tùy chọn:
json, text, table, yaml, yaml-stream. JSON (JavaScript Object Notation) được sử dụng theo mặc định. Bạn có thể chọn định dạng cần thiết khi chạy một lệnh cụ thể bằng cách sử dụng--output.
Các tệp cấu hình AWS CLI được lưu trong thư mục home. Bạn có thể kiểm tra các tệp này bằng lệnh:
ls -l ~/.aws
Các cài đặt về vùng (region) và đầu ra được lưu trữ trong tệp ` ` `config` ` `. Thông tin đăng nhập (AWS Access Key ID và AWS Secret Access Key) được lưu trữ trong tệp ` ` `credentials` ` `.
Hướng dẫn sử dụng chung và mẹo
Hãy làm quen với các khuyến nghị và mẹo sử dụng chung cho AWS CLI trước khi chuyển sang các ví dụ thực hành về AWS CLI cho EC2.
Cấu trúc lệnh AWS CLI
Bạn có thể xây dựng một lệnh AWS CLI theo hai cách: sử dụng một dòng hoặc sử dụng nhiều dòng.
Cấu trúc thông thường
Cấu trúc lệnh thông thường giả định rằng bạn tạo lệnh dưới dạng lệnh một dòng.
aws [options and parameters]
Trong đó:
aws là lệnh cơ sở để gọi chương trình aws
là lệnh cấp cao nhất tương ứng với dịch vụ AWS phù hợp, ví dụ như EC2 hoặc S3.
chỉ định thao tác cần thực hiện, chẳng hạn như lấy đối tượng, mô tả các instance, v.v.
[options and parameters] chỉ định các tùy chọn và tham số cho thao tác.
Cấu trúc lệnh nhiều dòng
Đôi khi việc sử dụng cấu trúc lệnh nhiều dòng có thể thuận tiện hơn nếu bạn cần chỉ định nhiều tùy chọn và tham số.
aws
[options and parameters]
[options and parameters]
Lệnh wait
Bạn có thể sử dụng lệnh wait để tạm dừng việc thực thi toàn bộ lệnh, nhằm tiếp tục thao tác khi lệnh sẵn sàng chạy và khi tất cả các điều kiện đã được đáp ứng.
aws wait [options and parameters]
Ví dụ:
aws ec2 wait instance-status-ok
--instance-ids i-1234567890abcdef0
Tự động hoàn thành lệnh
Kích hoạt tính năng tự động hoàn thành lệnh. Tính năng này giúp nhập lệnh nhanh hơn và thuận tiện hơn. Sử dụng lệnh này để kích hoạt tính năng tự động hoàn thành trong Linux:
complete -C '/usr/local/bin/aws_completer' aws
Kiểm tra xem tính năng tự động hoàn thành có hoạt động không:
aws s[press Tab]
aws e[press Tab]
Nếu tính năng tự động hoàn thành hoạt động, lệnh đã nhập một phần sẽ được hoàn thành tự động khi bạn nhấn phím Tab nếu chỉ có duy nhất một lệnh bắt đầu bằng các ký tự bạn đã nhập. Nếu có nhiều lệnh bắt đầu bằng các ký tự đã nhập, tất cả các lệnh này sẽ được hiển thị bên dưới. Bạn có thể xem danh sách các lệnh có sẵn và tiếp tục nhập lệnh cần thiết. Sau đó, hãy sử dụng khóa ` Tab ` để hoàn thành lệnh. `
` Bộ lọc
Sử dụng bộ lọc để chỉ hiển thị dữ liệu cần thiết. Quá trình lọc được thực hiện trên máy chủ của Amazon. Do đó, lượng dữ liệu được truyền qua mạng sẽ ít hơn và bạn sẽ nhận được dữ liệu đầu ra nhanh hơn. Các tập lệnh bao gồm các lệnh AWS EC2 và bộ lọc AWS CLI sẽ hoạt động nhanh hơn. `
` Trợ giúp AWS
Sử dụng lệnh ` help ` để hiển thị các lệnh và tùy chọn có sẵn. `
aws help
aws help
aws help
` Phân tích cú pháp JSON
Sử dụng jq, một tiện ích nhẹ để xử lý dữ liệu JSON.
jq là công cụ tương tự như sed để chuyển đổi luồng đầu vào nhưng dành cho định dạng JSON. Bạn có thể cài đặt jq làm công cụ phân tích cú pháp JSON bằng lệnh:
apt-get install jq
Theo mặc định, bạn có thể sử dụng tùy chọn tích hợp sẵn --query để phân tích cú pháp JSON được trả về bởi lệnh đã thực thi.
Truy cập từ xa
Bạn có thể kết nối với một máy Linux đã cài đặt AWS CLI qua SSH và chạy các lệnh để quản lý các dịch vụ của mình trên đám mây Amazon.
Các lệnh AWS EC2 trong AWS CLI
Bây giờ bạn đã cài đặt AWS CLI và làm quen với các mẹo sử dụng AWS CLI, bạn có thể chạy các lệnh AWS CLI EC2 để xem thông tin về các phiên bản AWS EC2 và quản lý chúng. Bây giờ chúng ta hãy xem xét các ví dụ thực tế về cách sử dụng giao diện dòng lệnh trong AWS.
Mô tả các phiên bản AWS EC2
Bạn có thể sử dụng các lệnh AWS EC2 trong AWS CLI để mô tả các thành phần Amazon (lấy thông tin về chúng) cho tài khoản của mình mà không cần thực hiện bất kỳ thao tác nào với chúng. Các lệnh mô tả phiên bản của AWS CLI giúp bạn kiểm tra trạng thái của các phiên bản AWS EC2, các khối lượng EBS, hình ảnh máy Amazon và các thành phần khác. Bạn cũng có thể sử dụng chức năng được cung cấp tại giám sát.
Ví dụ 1
Hãy bắt đầu với lệnh đơn giản này để hiển thị thông tin về các máy chủ Amazon EC2 hiện có:
aws ec2 describe-instances
Lệnh này trả về dữ liệu mô tả tất cả các máy chủ AWS EC2 trong kết quả đầu ra dưới định dạng JSON (vì chúng ta đã thiết lập JSON làm định dạng mặc định trước đó). Kết quả là chúng ta có một mảng dữ liệu lớn, bao gồm cả siêu dữ liệu. Kết quả đầu ra này không thuận tiện cho người dùng đọc trực tiếp nhưng rất hữu ích cho việc viết kịch bản và ứng dụng.
Nhấn phím down arrow để cuộn xuống dữ liệu trong cửa sổ console/terminal.
Nhấn q để thoát khỏi chế độ xem (tương tự như khi bạn sử dụng less ).
Ví dụ 2
Chúng ta có thể hiển thị thông tin đầy đủ chỉ cho một instance bằng cách sử dụng ID instance với lệnh: aws ec2 describe-instances
--instance-ids i-0201020e110607121
Ví dụ 3
Bây giờ chúng ta sẽ kiểm tra ID, tên và trạng thái của tất cả các instance có sẵn trong khu vực của chúng ta. Chúng ta có thể chỉ hiển thị dữ liệu cần thiết bằng lệnh sử dụng bộ lọc AWS CLI và tùy chọn --query . Ví dụ về bộ lọc AWS CLI này bao gồm tùy chọn --filter , trả về dữ liệu đã lọc theo yêu cầu. Chúng ta sử dụng tùy chọn --output text để hiển thị kết quả dưới dạng văn bản.
aws ec2 describe-instances --filters "Name=tag:Name,Values=server*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
So với kết quả không được lọc, chứa tất cả dữ liệu có sẵn cho mọi instance, kết quả đã lọc thuận tiện hơn và dễ đọc hơn cho người dùng.
Ví dụ 4
Bây giờ, hãy lọc các instance AWS EC2 một lần nữa và chỉ hiển thị các instance có “Linux” trong tên bằng cách sử dụng bộ lọc AWS CLI.
aws ec2 describe-instances --filters "Name=tag:Name,Values=*Linux*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
Trong ảnh chụp màn hình bên dưới, bạn có thể thấy kết quả lệnh sau khi sử dụng lệnh với bộ lọc instance EC2. Tôi đã tìm thấy ba instance Linux có cài đặt NAKIVO Backup & Replication Transporter . Transporter là thành phần dùng để chuyển dữ liệu khi thực hiện các thao tác sao lưu AWS và Khôi phục sau thảm họa trên AWS .
Ví dụ 5
Bạn có thể liệt kê các instance thuộc các loại cụ thể của AWS EC2. Trong ví dụ này, tôi chạy lệnh để hiển thị các instance thuộc loại t2.micro :
aws ec2 describe-instances
--filters Name=instance-type,Values=t2.micro
Ví dụ 6
Sử dụng bộ lọc instance EC2 để chỉ hiển thị ID instance.
aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
Ví dụ 7
Ngoài ra, bạn có thể sử dụng chế độ xem bảng cho dữ liệu đầu ra bằng cách thêm tùy chọn --output table . Dưới đây là lệnh sử dụng bộ lọc AWS CLI để hiển thị ID máy ảo, tên, trạng thái và loại của các máy ảo AWS EC2 dưới dạng bảng.
aws ec2 describe-instances --output table --query "Reservations[].Instances[].{Name: Tags[?Key == 'Name'].Value | [0], Id: InstanceId, State: State.Name, Type: InstanceType}"
Ví dụ 8
Có một lệnh khác để hiển thị dữ liệu đầu ra (ID, loại và tên của các instance) cho các instance AWS EC2 dưới dạng bảng dễ xem:
aws ec2 describe-instances | jq -r '.Reservations[].Instances[]|.InstanceId+" "+.InstanceType+" "+(.Tags[] | select(.Key == "Name").Value)'
Ví dụ 9
Kiểm tra địa chỉ IP bên ngoài của một instance đang chạy:
aws ec2 describe-instances --instance-ids i-0201020e110607121 --query "Reservations[].Instances[].PublicIpAddress"
Để kiểm tra địa chỉ IP bên ngoài của nhiều instance AWS EC2, hãy liệt kê các ID instance bằng cách phân tách chúng bằng khoảng trắng.
Ví dụ 10
Kiểm tra các instance đã dừng và lý do dừng của từng instance bằng lệnh bao gồm bộ lọc AWS CLI:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped
Có một ví dụ thay thế:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped --region eu-west-1 --output json | jq -r .Reservations[].Instances[].StateReason.Message
Ví dụ 11
Đây là lệnh để liệt kê các instance Amazon EC2 đang chạy với thông tin chi tiết hơn, bao gồm tên instance, địa chỉ IP riêng, địa chỉ IP công cộng, trạng thái, loại và VpcID dưới dạng bảng: aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIP:PublicIpAddress,PrivateIP:PrivateIpAddress,Name:Tags[?Key=='Name'] | [0].Value,Type:InstanceType,Status:State.Name,VpcId:VpcId}" --filters Name=instance-state-name,Values=running --output table
Khởi động các phiên bản AWS EC2
Khi đã biết ID phiên bản, bạn có thể khởi động phiên bản Amazon bằng cách sử dụng các lệnh AWS EC2.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Bạn có thể khởi động nhiều phiên bản AWS EC2 bằng cách sử dụng lệnh `start instances` của AWS EC2 và nhập các ID phiên bản được phân tách bằng khoảng trắng.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Dừng các phiên bản AWS EC2
Bạn có thể dừng một hoặc nhiều phiên bản AWS EC2. Cú pháp tương tự như cú pháp của lệnh ec2 start-instances .
Lệnh dừng một instance bằng AWS CLI được cung cấp dưới đây:
aws ec2 stop-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Lệnh dừng nhiều (ba) instance bằng AWS CLI cũng tương tự, nhưng bạn cần chỉ định nhiều ID của các instance AWS EC2, cách nhau bằng khoảng trắng:
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Danh sách các mã trạng thái và tên trạng thái có thể xuất hiện trong kết quả:
0 – đang chờ xử lý
16 – đang chạy
32 – đang tắt máy
48 – đã ngừng hoạt động
64 – đang dừng
80 – đã dừng
Khởi động lại các instance AWS EC2
Với lệnh aws ec2 reboot-instances bạn có thể khởi động lại một hoặc nhiều instance AWS EC2. Nguyên lý sử dụng lệnh này tương tự như các lệnh khởi động và dừng máy ảo AWS CLI. Đây là lệnh để khởi động lại một máy ảo:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Đây là lệnh để khởi động lại ba máy ảo:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Thêm thẻ
Thẻ cho phép bạn phân loại các máy ảo AWS EC2 và xác định hoặc tìm kiếm chúng một cách thuận tiện hơn. Hãy cùng xem qua hai lệnh AWS EC2 để làm việc với thẻ.
Chạy lệnh này để thêm thẻ vào máy ảo bằng cách chỉ định ID máy ảo:
aws ec2 create-tags --resources i-1a3b5c7d9ea0c1ef0 --tags Key=Department,Value=Marketing
Sau đó, bạn có thể sử dụng lệnh để hiển thị thông tin về các máy ảo cần thiết thông qua thẻ:
aws ec2 describe-instances --filters "Name=tag-key,Values=Name"
Mô tả các khối lượng EBS
Trong quá trình vận hành các máy ảo Amazon EC2, bạn có thể cần kiểm tra thông tin về các khối lượng EBS, gắn các khối lượng vào máy ảo EC2 và tháo chúng ra. Dưới đây là một số ví dụ về các lệnh AWS EC2 để lấy thông tin về các khối lượng EBS.
Ví dụ 1
Đây là một lệnh đơn giản để mô tả các khối lượng EBS và hiển thị tất cả thông tin về các khối lượng hiện có trong tài khoản Amazon của bạn:
aws ec2 describe-volumes
Lệnh này tương tự như lệnh AWS EC2 describe instances mà chúng ta đã sử dụng ở trên. Chúng ta có thể xem thông tin chi tiết về tất cả các khối lượng có sẵn trong kết quả đầu ra. Nhấn phím mũi tên xuống trên bàn phím để cuộn xuống và xem toàn bộ dữ liệu. Việc tìm kiếm thông tin cần thiết trong mảng dữ liệu này không thuận tiện. Hãy sử dụng các bộ lọc của AWS CLI để chỉ hiển thị dữ liệu cần thiết. 
Ví dụ 2
Đây là ví dụ về lệnh EC2 của AWS CLI để hiển thị ID của tất cả các khối lượng EBS:
aws ec2 describe-volumes --output table --query 'Volumes[*].VolumeId'
Ví dụ 3
Hãy lọc các ID khối lượng cho tất cả các khối lượng Amazon EBS đang ở trạng thái “được gắn”:
aws ec2 describe-volumes
--query 'Volumes[*].Attachments[?State==`attached`].VolumeId[]'
Bạn có thể sử dụng logic tương tự để áp dụng bộ lọc khi chạy các lệnh AWS CLI để làm việc với các khối lượng EBS và các đối tượng AWS khác.
Ví dụ 4
Bạn có thể cần xem các khối lượng chưa được gắn và đang ở trạng thái “có sẵn”. Trong trường hợp này, hãy sử dụng lệnh:
aws ec2 describe-volumes --filters Name=status,Values=available --output table
Gắn các khối lượng EBS vào các phiên bản AWS EC2
Sau khi thu thập đủ thông tin cần thiết về các phiên bản AWS EC2 và các khối lượng EBS, bạn có thể gắn một khối lượng EBS vào một phiên bản EC2 bằng lệnh aws ec2 attach-volume .
Sử dụng tùy chọn --device để chỉ định tên đĩa được hệ điều hành khách sử dụng. Trong ví dụ dưới đây, tôi sử dụng lệnh để gắn khối lượng EBS dưới dạng ổ đĩa được xác định là /dev/sde trong hệ điều hành khách Linux.
aws ec2 attach-volume --volume-id vol-0034567890abcdef0 --instance-id i-1a3b5c7d9ea0c1ef0 --device /dev/sde
Sau khi khối lượng EBS được gắn vào máy chủ EC2, trạng thái của khối lượng sẽ thay đổi từ “Available” thành “Attached”.
Các thao tác với bản sao lưu
Bản sao lưu của khối lượng EBS cho phép bạn lưu giữ trạng thái của khối lượng và khôi phục về trạng thái đó nếu cần. Đây là ví dụ về lệnh tạo bản sao lưu cho khối lượng EBS:
aws ec2 create-snapshot --volume-id
Để hiển thị ID bản sao lưu, hãy sử dụng lệnh này:
ec2 describe-snapshots --owner self
Kiểm tra trạng thái bản sao lưu bằng lệnh:
aws ec2 describe-snapshots --snapshot-id
Nếu tiến trình bản sao lưu đạt 100% và trạng thái là “completed”, thì bản sao lưu đã được tạo thành công.
Thông tin này giúp bạn lựa chọn chiến lược bảo vệ dữ liệu phù hợp. {116} để tìm hiểu thêm.
Mô tả hình ảnh
Tương tự như các lệnh mô tả instance và volume trên AWS EC2, bạn có thể sử dụng lệnh để mô tả các Hình ảnh Máy ảo Amazon (AMI). Đây là lệnh AWS CLI EC2 đơn giản để xem thông tin về các Hình ảnh Máy ảo Amazon (AMI):
aws ec2 describe-images
Bạn có thể xem thông tin về một hình ảnh cụ thể:
aws ec2 describe-images --image-ids ami-0034567890abc4140
Dựa trên thông tin hiển thị, bạn có thể chọn AMI cần thiết để tạo một instance Amazon EC2 mới.
Khởi chạy các instance EC2 mới
Bạn có thể tạo (khởi chạy) một instance mới dựa trên hình ảnh cần thiết bằng cách sử dụng các lệnh AWS CLI EC2 dưới đây.
Trước tiên, bạn cần tạo cặp khóa:
aws ec2 create-key-pair --key-name MyKeyPair --output text > MyKeyPair.pem
Tạo một instance Amazon EC2 mới bằng lệnh AWS EC2 run instances bằng cách chỉ định AMI, loại instance và cặp khóa:
aws ec2 run-instances
--image-id ami-0abcdef1234567890
--instance-type t2.micro
--key-name MyKeyPair
Đây là một ví dụ đơn giản. Bạn có thể định nghĩa thêm các tùy chọn khi tạo một instance EC2 mới bằng lệnh `AWS EC2 run instances`, bao gồm:
–subnet-id
–security-group-ids
–block-device-mappings
–tag-specifications
Xóa các instance EC2
Thực hành được khuyến nghị là xóa các instance AWS EC2 đã không được sử dụng trong thời gian dài để tiết kiệm chi phí. Hãy cẩn thận vì bạn không thể khôi phục lại một instance EC2 đã bị hủy. Nếu bạn không chắc liệu có cần instance đã bị hủy đó sau này hay không, hãy thực hiện lệnh ` sao lưu máy ảo EC2 ` để sao lưu (NAKIVO Backup & Replication) vào kho lưu trữ sao lưu cục bộ hoặc lên Amazon S3.
Bạn có thể xóa nhiều instance cùng lúc bằng cách chỉ định ID của chúng với lệnh: `
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0abcdef123456789a i-0abcdef123456789b
` Kết luận
AWS CLI là công cụ dòng lệnh mạnh mẽ giúp bạn tự động hóa việc thực hiện một lượng lớn tác vụ tương tự. Các bộ lọc AWS EC2 cho phép bạn cấu hình đầu ra và chỉ nhận dữ liệu cần thiết. Có các lệnh để xem thông tin về các dịch vụ của Amazon và các lệnh để thực hiện thay đổi trên các dịch vụ đó.
Để ngăn chặn lỗi do con người gây ra do cấu hình sai các tập lệnh được tạo bằng AWS CLI, bạn nên thường xuyên thực hiện Sao lưu AWS EC2 bằng cách sử dụng một giải pháp chuyên dụng của bên thứ ba.
< span data-sheets-value="{"1":2,"2":"















