Cách quản lý các máy ảo 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 bảng điều khiể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ể tốn thời gian và nhàm chán. 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 đá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 phiên bản AWS EC2 bằng các lệnh AWS EC2, cũng như quản lý các khối lượng EBS, các thùng S3 và các dịch vụ Amazon khác.
AWS CLI được chạy trong vỏ lệnh Linux, terminal macOS, dấu nhắc lệnh Windows (CMD) và PowerShell. CLI 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 các 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. Khuyến nghị 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ó những thay đổi khiến bạn không thể sử dụng các tập lệnh được tạo cho AWS CLI v1 trong 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).
- Python 2 phiên bản 2.6.5+ hoặc Python 3 phiên bản 3.3+ phải được cài đặt. AWS CLI v2 có bản sao Python được nhúng sẵn, và bạn không cần cài đặt Python thủ công để cài đặt AWS CLI v2.
Linux
- Công cụ giải nén tệp zip
glibc,groff, vàlessphải được cài đặt
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ể chạy các lệnh để quản lý các instance AWS EC2 và các dịch vụ Amazon khác. Hãy 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 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 có trong 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 như 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 Python 3.x PIP:
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 bằng Python PIP, các lệnh bạn nê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
- Mô-đun cho Python 2:
python -m awscli
- Mô-đun 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 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 tệp.
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 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 tiện lợi.
Sử dụng giao diện người dùng Windows
1. Mở Control Panel > System > Advanced system settings, và trong tab Advanced của cửa sổ System Properties , nhấp vào Environment Variables.
2. Trong cửa sổ Environment Variables , 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ử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ị gốc 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 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ị vào Windows Registry để 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 PATH mới 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 bạn đã cài đặt cả phiên bản 1 và phiên bản 2 của AWS CLI trên hệ điều hành của mình, hệ điều hành sẽ thực thi phiên bản đầu tiên được đặt 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, và cấu hình vùng (region) cùng 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 là 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):
- AWS Access Key ID , đây là chuỗi ký tự alphanumeric gồm 20 ký tự. Các chữ cái 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 mã băm.
- 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 vùng khác với vùng mặc định, bạn có thể chỉ định vùng 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 thiết lập vùng 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ể tạo 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ụ: EC2 hoặc S3.
chỉ định thao tác cần thực hiệ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 để tiếp tục thao tác khi nó 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
Hoàn thành lệnh
Kích hoạt tính năng hoàn thành lệnh. Tính năng hoàn thành lệnh giúp việc nhập lệnh nhanh hơn và thuận tiện hơn. Sử dụng lệnh này để bậ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 lệ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 Tab nếu chỉ có 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 ` để tự động 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. Việc lọc được thực hiện trên máy chủ Amazon. Do đó, lượng dữ liệu truyền qua mạng sẽ ít hơn và bạn sẽ nhận được kết quả 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 JSON
Sử dụng jq, một công cụ nhẹ để xử lý dữ liệu JSON.
jq là phiên bản tương đương của 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 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 --query để phân tích 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 bạn 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 instance AWS EC2 và quản lý chúng. Hãy cùng xem qua các ví dụ thực tế về việc 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 thực hiện bất kỳ hành động 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, 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 theo dõi.
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 instance 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 instance AWS EC2 trong kết quả đầu ra bằng đị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ả metadata. Kết quả đầu ra này không thuận tiện cho người dùng đọc nhưng rất hữu ích cho việc lập trình 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ể hiển thị chỉ những dữ liệu cần thiết bằng cách sử dụng các bộ lọc của 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 , giúp trả về dữ liệu đã được 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 tất cả các 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 sẽ 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 Phương tiện vận chuyển . 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
Thay thế, 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, tên, trạng thái và loại của các instance 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:
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 định nghĩa 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 AWS CLI `stop instance` cho một instance được cung cấp dưới đây:
aws ec2 stop-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Lệnh AWS CLI `stop instance` cho nhiều (ba) instance là giống nhau, 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. Cơ chế sử dụng lệnh này tương tự như các lệnh AWS CLI start instance và AWS CLI stop instance. Đây là lệnh để khởi động lại một instance:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Đây là lệnh để khởi động lại ba instance:
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 instance 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 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 instance bằng cách chỉ định ID instance:
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 instance cần thiết bằng cách sử dụng 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 instance 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 các instance 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à 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 tất cả dữ liệu. Việc tìm kiếm thông tin bạn cần trong mảng dữ liệu này không thuận tiện. Sử dụng bộ lọc AWS CLI để chỉ hiển thị dữ liệu cần thiết. 
Ví dụ 2
Đây là ví dụ về lệnh AWS CLI EC2 để 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 sẵn sàng. 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
Kết nối các khối lượng EBS với các phiên bản AWS EC2
Sau khi thu thập được 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ể kết nối một khối lượng EBS với 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 làm ổ đĩ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 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 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 một 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 là 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 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 của AWS EC2, bạn có thể sử dụng lệnh để mô tả Amazon Machine Images (AMI). Đây là lệnh AWS CLI EC2 đơn giản để xem thông tin về Amazon Machine Images (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 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 instance EC2 `
` Thực hành được khuyến nghị là xóa các instance EC2 của AWS đã 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ị xóa. Nếu bạn không chắc liệu có cần instance đã xóa sau này hay không, hãy sử dụng lệnh: Sao lưu máy chủ 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 tự động hóa việc thực hiện nhiều tác vụ tương tự. Bộ lọc AWS EC2 cho phép bạn cấu hình kết quả đầ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ụ Amazon và các lệnh để thực hiện thay đổi với chúng.
Để ngăn ngừa lỗi do con người gây ra do cấu hình sai các skript được tạo bằng AWS CLI, khuyến nghị mạnh mẽ rằng bạn nên thường xuyên thực hiện Sao lưu AWS EC2 sử dụng một giải pháp bên thứ ba chuyên dụng.
< span data-sheets-value="{"1":2,"2":"
“}” data-sheets-userformat=”{“2″:17089,”3”:{“1″:0},”9″:1,”10″:1,”12″:0,”17”:1}”>















