如何透過 AWS 命令列介面管理 AWS EC2 執行個體

AWS 提供了一個名為"AWS 管理主控台"的便捷網頁介面。您可以透過此主控台在 AWS 雲端執行所有必要的操作。然而,在網頁介面中反覆執行許多相同的操作,不僅繁瑣且耗時。此時,您可以使用 AWS CLI 來自動化 AWS 管理任務並執行批次操作。這篇部落格文章將介紹 AWS CLI 的安裝方式以及此工具的使用基礎,並重點說明 AWS CLI 的 EC2 指令,並輔以實例說明。

NAKIVO 適用於 AWS EC2 備份

NAKIVO 適用於 AWS EC2 備份

將 Amazon EC2 執行個體備份至 EC2、AWS S3 及本地端。提供防勒索軟體功能。可快速還原執行個體及應用程式物件。

什麼是 AWS CLI

Amazon Web Services 命令列介面 (AWS CLI) 是一款用於管理 Amazon 雲端環境的開源命令列工具。此工具透過與安裝 AWS CLI 的作業系統之命令列殼層整合來運作。 您可以使用 Amazon EC2 指令管理 Amazon EC2 執行個體,同時也能管理 EBS 卷、S3 儲存桶及其他 Amazon 服務。

AWS CLI 可在 Linux 命令列殼層、macOS 終端機、Windows 命令提示字元 (CMD) 以及 PowerShell 中執行。此 CLI 讓您能夠建立腳本並自動化任務。

AWS CLI 主要有兩個版本:

  • AWS CLI 版本 1 舊版本是否仍可使用以確保向下相容性。此版本仍受支援,但可能無法使用新特點。
  • AWS CLI 版本 2 這是支援 AWS 所有可用特點的最新版本。建議您安裝最新版本。

這兩種版本都使用相同的 aws 指令來執行 AWS CLI。然而,由於某些變更,原本為 AWS CLI v1 編寫的腳本可能無法在 AWS CLI v2 中使用。

需求

現在,讓我們來看看使用 AWS CLI 所應具備的需求。

一般需求

  • 您需要擁有一個 AWS 帳戶,並且 AWS 存取金鑰 (AWS 存取金鑰 ID 和 AWS 秘密存取金鑰)。
  • 必須安裝 Python 2 版本 2.6.5 以上或 Python 3 版本 3.3 以上。AWS CLI v2 內建了 Python,因此您無需手動安裝 Python 即可安裝 AWS CLI v2。

Linux

  • 一款用於解壓縮 ZIP 檔案的工具
  • glibc, groff,以及 less 必須安裝

Windows

  • Windows XP 或更新版本
  • Windows 電腦上的管理員權限

macOS

  • Apple 支援的 64 位元 macOS 版本

安裝

在執行命令來管理 Amazon EC2 執行個體及其他 Amazon 服務之前,您需要先安裝 AWS CLI。以下將說明如何在不同的作業系統上安裝 AWS CLI 2.x 版本。

在 Linux 上安裝 AWS CLI

在 Linux 上安裝 AWS CLI 有三種方法:

  • 使用套件安裝程式(官方方法)
  • 使用 Linux 軟體儲存庫
  • 將 AWS CLI 安裝為 Python 模組

Amazon 建議您使用官方方法安裝 AWS CLI。如此一來,您將始終獲得軟體的最新版本。在此工作流程中,我使用的是 Ubuntu 20。

使用官方安裝程式壓縮檔

這是安裝 AWS CLI 的首選方法。請按照以下步驟操作:

  1. 安裝 curl:

apt-get install curl

  1. 下載 AWS CLI 安裝程式壓縮檔:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

  1. 從下載的壓縮檔中解壓縮內含的安裝程式檔案:

unzip awscliv2.zip

  1. 以 root 權限執行安裝程式:

sudo ./aws/install

  1. 安裝完成後,請檢查已安裝的 AWS CLI 工具版本,以確認該工具已成功安裝:

aws --version

使用 Linux 軟體儲存庫

AWS CLI 可在 Ubuntu 的官方軟體儲存庫中取得。請依照以下步驟操作:

1. 更新儲存庫目錄:

sudo apt-get update

2. 透過 Linux 軟體儲存庫中的套件管理工具安裝 AWS CLI:

sudo apt-get install awscli

3. 確認 AWS CLI 已成功安裝:

aws --version

使用 Python PIP 安裝

您可以透過 Python PIP 套件管理工具,將 AWS CLI 安裝為 Python 模組。請注意,Ubuntu 預設並未安裝 Python PIP。請依照以下步驟將其安裝為 Python 模組:

1. 您需要先安裝 Python PIP。

  • 針對 Python 2.x:

sudo apt-get install python-pip

  • 針對 Python 3.x:

sudo apt-get install python3-pip

2. 使用 Python PIP 安裝 AWS CLI。

  • 使用 Python 2.x 的 PIP:

pip install awscli --upgrade --user

  • 使用 Python 3.x 的 PIP:

pip3 install awscli --upgrade --user

3. 檢查已安裝的版本。

  • 在 Python 2.x 中:

python -m awscli --version

  • 在 Python 3.x 中:

python3 -m awscli --version

註: 如果您使用的是透過 Python PIP 安裝的 AWS CLI,您應使用的指令會與標準 main 指令有所不同 aws 用於 AWS CLI 套裝版本的指令:

  • 盒裝版本:

aws

  • Python 2 模組:

python -m awscli

  • Python 3 模組:

python3 -m awscli

在 Windows 上安裝 AWS CLI

要在 Windows 上安裝 AWS CLI,您需要下載安裝程式、安裝 AWS CLI,並在 Windows 上進行安裝後的設定。

下載安裝程式

請使用以下其中一個連結下載 64 位元 AWS CLI 安裝程式,並將檔案儲存至自訂位置,例如: C:temp

在此範例中,我使用 Windows Server 2016 並下載了 AWSCLIV2.msi 檔案。

您可以在 PowerShell 中使用以下指令下載安裝程式檔案:

Invoke-WebRequest -Uri https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile "C:tempAWSCLIV2.msi"

執行安裝程式

開啟已下載的 AWSCLIV2.msi 檔案。

若您使用 PowerShell,請注意該 .msi 檔案位置 (C:temp (以我的情況為例)並執行以下指令:

C:tempAWSCLIV2.msi

Downloading the AWS CLI installer for Windows

請依照安裝精靈的步驟操作。安裝時可直接使用預設設定。安裝過程相當簡單,因此我將不再逐一說明精靈中的每個步驟。

Running the AWS CLI installation wizard

如果您嘗試執行該 aws --version 若執行檢查 AWS CLI 是否已成功安裝的指令,可能會出現錯誤。這是因為 PATH 環境變數中沒有與 AWS CLI 工具相關的項目。現在您可以將工作目錄切換至 AWS CLI 的安裝目錄(C:Program FilesAmazonAWSCLIV2 (預設情況下)並手動執行 AWS CLI。

cd "C:Program FilesAmazonAWSCLIV2"

.aws --version

Checking the installed version of AWS CLI after changing the directory

設定 PATH

將該條目新增至 PATH 變數,因為每次需要執行 AWS CLI 指令時,都必須在命令列中手動切換目錄,這樣很不方便。

使用 Windows 圖形使用者介面

1. 開啟 Control Panel > System > Advanced system settings,以及在 Advanced 的""分頁 系統屬性 視窗,點擊 Environment Variables.

Configuring environment variables in Control Panel

2. 在 環境變數 視窗中,選取 PATH 變數並點擊 Edit請注意,這裡有編輯選項 管理員的用戶變數 以及 系統變數.

Editing the PATH variable

3. 在 編輯環境變數 視窗,點擊 New.

Adding a new value to the PATH variable

4. 指定 AWS CLI 的安裝目錄路徑,然後按下 Enter. 在我的情況下,這個目錄是 “C:Program FilesAmazonAWSCLIV2”.

5. 點擊 OK 儲存設定並關閉視窗。

註: 您可能需要重新開啟命令提示字元視窗(PowerShell 或 CMD),讓變更生效。

使用 PowerShell

您也可以在 PowerShell 中編輯環境變數。請依照以下步驟,將值新增至 PATH PowerShell 中的變數。

1. 擷取原始 PATH 您要修改的值:

$oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path

2. 定義新的 PATH 透過加入所需的值。以我的情況為例,我需要加入的值是 AWS CLI 目錄的路徑。分號 (;) 字元用於作為路徑值之間的分隔符號,在 PATH 變數。

$newpath = "$oldpath;C:Program FilesAmazonAWSCLIV2"

3. 將該值套用至 Windows 登錄檔,以使變更永久生效:

Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH -Value $newPath

4. 檢查新 PATH 設定正確:

Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH

(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path

Adding the AWS CLI installation directory to PATH in PowerShell

使用 Chocolatey

除了下載並執行 MSI 安裝程式檔案之外,您也可以透過 Chocolatey 安裝 AWS CLI。Chocolatey 是一款在 PowerShell 中執行的 Windows 軟體管理工具,支援從 Windows 線上儲存庫安裝應用程式。請執行以下指令以安裝 AWS CLI:

choco install awscli

檢查安裝結果

現在您可以執行 aws 在 PowerShell 的任何目錄中執行該指令(以及相關的 AWS EC2 指令)。

aws --version

Checking the installed version of AWS CLI in Windows

註: 如果您在作業系統上同時安裝了 AWS CLI 版本 1 和 AWS CLI 版本 2,您的作業系統會執行在 PATH 變數。

在 macOS 上安裝 AWS CLI

請依照以下步驟在 macOS 上安裝 AWS CLI。

前往 /tmp/ 目錄,該目錄將用於儲存已下載的檔案:

cd /tmp

方法 1

  1. 下載安裝程式檔案:
    curl -o awscli.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
  2. 從下載的 ZIP 壓縮檔中解壓縮內容:
    unzip awscli.zip
  3. 安裝 AWS CLI:
    sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

方法 2

  1. 下載安裝程式套件:
    curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
  2. 執行安裝程式:
    sudo installer -pkg AWSCLIV2.pkg -target /
  3. 您可以執行以下指令,以確認 AWS CLI 已成功安裝:
    aws --version

AWS CLI 的初始設定

現在您需要指定 AWS 憑證,並設定區域和輸出參數。請執行以下指令來設定 AWS CLI。AWS CLI 指令的語法在 Linux、Windows 和 macOS 上皆相同。在本範例中,我使用的是 Ubuntu Linux。
aws configure

請指定四個參數(前兩個為必填):

  • AWS 存取金鑰 ID,這是一個由 20 個字母數字組成的字串。字母均為大寫。
  • AWS 秘密存取金鑰,這是一個由 40 個字元組成的英數字串,類似於雜湊值。
  • 預設地區名稱. 若您在 AWS CLI 中執行命令時,無需每次都明確指定區域,請選取此參數。若需使用與預設區域不同的區域,您可手動在命令中指定所需的區域。使用 --region 為此目的。
  • 預設輸出格式. 有三種選項: json, text, table, yaml, yaml-stream. 預設使用 JSON(JavaScript 物件表示法)。執行特定指令時,您可以透過 --output .

The initial configuration of AWS CLI

AWS CLI 的設定檔儲存於使用者主目錄中。您可以使用以下指令查看這些檔案:

ls -l ~/.aws

區域和輸出設定儲存於 設定 檔案中。憑證(AWS 存取金鑰 ID 和 AWS 秘密存取金鑰)儲存於 憑證 檔案。

一般用法與提示

在進入 EC2 的 AWS CLI 實作範例之前,讓我們先熟悉 AWS CLI 的一般使用建議與技巧。

AWS CLI 指令結構

您可以透過兩種方式編寫 AWS CLI 指令:使用單行或使用多行。

常規結構

標準的命令結構假設您會將命令編寫成單行命令。

aws [options and parameters]

地點:

AWS 是呼叫該 aws 程式

是對應於特定 AWS 服務(例如 EC2 或 S3)的頂層指令。

則指定要執行的操作,例如取得物件、描述執行個體等。

[options and parameters] 指定該操作的選項和參數。

多行命令結構

如果需要指定多個選項和參數,有時使用多行命令結構會更方便。

aws

[options and parameters]

[options and parameters]

"等待"指令

您可以使用 wait 此指令用於暫停整個命令的執行,以便在系統準備就緒且所有條件均已滿足時恢復運作。

aws wait [options and parameters]

範例:

aws ec2 wait instance-status-ok

--instance-ids i-1234567890abcdef0

命令完成

啟用指令自動完成功能。指令自動完成功能能讓輸入指令更加快速且方便。請使用以下指令在 Linux 中啟用自動完成功能:

complete -C '/usr/local/bin/aws_completer' aws

確認命令自動完成功能是否正常運作:

aws s[press Tab]

aws e[press Tab]

如果自動完成功能正常運作,當您按下時,部分輸入的指令會自動補全 Tab 如果只有一個命令以您輸入的字元開頭。如果有多個命令以輸入的字元開頭,這些命令都會顯示在下方。您可以閱讀可用命令的清單,並繼續輸入所需的命令。然後使用 Tab 鍵用於命令自動完成。

篩選器

使用篩選器僅顯示所需資料。篩選作業在 Amazon 伺服器端進行。因此,透過網路傳輸的資料量較少,您也能更快取得輸出資料。包含 AWS EC2 命令及 AWS CLI 篩選器的腳本執行速度會更快。

AWS 說明

請使用 help 此指令可顯示可用的命令與選項。

aws help

aws help

aws help

解析 JSON

使用 jq,這是一個用於處理 JSON 資料的輕量級工具。

jq 是……的對應概念 sed 用於轉換輸入流,但僅限於 JSON 格式。您可以安裝 jq 作為 JSON 解析工具,使用以下指令:

apt-get install jq

預設情況下,您可以使用內建的 --query 用於解析已執行命令所返回的 JSON 的選項。

遠端存取

您可以透過 SSH 連線至已安裝 AWS CLI 的 Linux 電腦,並執行指令來管理您在 Amazon 雲端上的服務。

AWS CLI 中的 AWS EC2 指令

既然您已經安裝了 AWS CLI 並熟悉了相關技巧,現在就可以執行 AWS CLI EC2 指令來檢視 AWS EC2 執行個體的資訊並進行管理。接下來,讓我們透過實際範例來了解如何在 AWS 中使用命令列介面。

說明 AWS EC2 執行個體

您可以在 AWS CLI 中使用 Amazon EC2 指令來查詢帳戶中的 Amazon 元件(取得相關資訊),而無需對其執行任何操作。AWS CLI 的 describe-instances 指令可協助您檢查 AWS EC2 執行個體、EBS 卷宗、Amazon 機器映像及其他元件的狀態。您也可以利用此功能性來 監測.

範例 1

我們就從這個簡單的指令開始,用來顯示現有 Amazon EC2 執行個體的相關資訊:

aws ec2 describe-instances

此指令會以 JSON 格式(因為我們先前已將 JSON 設為預設格式)在輸出中回傳描述所有 AWS EC2 執行個體的資料。因此,我們會獲得一個包含元資料的大型資料陣列。此輸出結果雖然不適合使用者直接閱讀,但非常適合用於腳本和應用程式。

按下 down arrow 按下

鍵,即可在主控台/終端機視窗中向下捲動資料。 q 要退出檢視模式(與使用 較少).

An example of an AWS CLI list EC2 instances command

範例 2

我們可以透過以下指令,配合實例 ID 來顯示單一實例的完整資訊:

aws ec2 describe-instances

--instance-ids i-0201020e110607121

範例 3

現在,我們將檢查該區域內所有可用執行個體的執行個體 ID、名稱及狀態。我們可以透過 AWS CLI 篩選器,並使用該指令僅顯示所需資料,以及 --query 選項。此 AWS CLI 篩選範例包含 --filter 此選項會傳回所請求的篩選後資料。我們使用 --output text 顯示結果為文字的選項。

aws ec2 describe-instances --filters "Name=tag:Name,Values=server*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text

相較於未過濾的輸出結果(其中包含所有實例的所有可用資料),過濾後的輸出結果更為方便,且使用者能夠輕鬆閱讀。

An example of an AWS EC2 describe instances query

範例 4

現在讓我們再次篩選 AWS EC2 執行個體,並僅顯示具有 "Linux" 透過 AWS CLI 篩選器,在名稱中加入。

aws ec2 describe-instances --filters "Name=tag:Name,Values=*Linux*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text

在下方的螢幕截圖中,您可以看到使用包含 EC2 執行個體篩選條件的指令後所產生的輸出結果。我已找到三個 Linux 執行個體,其 NAKIVO Backup & Replication 傳送器 已安裝。Transporter 是一個用於在執行 AWS 備份時傳輸資料的元件, AWS 災難還原 營運。

An example of using the EC2 describe instances filter

範例 5

您可以列出特定 AWS EC2 執行個體類型的執行個體。在此範例中,我執行此指令以顯示 t2.micro 類型:

aws ec2 describe-instances

--filters Name=instance-type,Values=t2.micro

範例 6

使用 EC2 執行個體篩選器,僅顯示執行個體 ID。

aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"

AWS EC2 list instances and their instance IDs

範例 7

此外,您也可以透過加入 --output table 選項。以下是使用 AWS CLI 篩選條件的指令,可將 AWS EC2 執行個體的 ID、名稱、狀態和類型以表格形式顯示出來。

aws ec2 describe-instances --output table --query "Reservations[].Instances[].{Name: Tags[?Key == 'Name'].Value | [0], Id: InstanceId, State: State.Name, Type: InstanceType}"

AWS list EC2 instances in a table

範例 8

還有另一項指令,可將 AWS EC2 執行個體的輸出資料(執行個體 ID、類型和名稱)以扼要的視圖呈現:

aws ec2 describe-instances | jq -r '.Reservations[].Instances[]|.InstanceId+" "+.InstanceType+" "+(.Tags[] | select(.Key == "Name").Value)'

AWS EC2 describe instances by using AWS EC2 filters

範例 9

檢查正在運行的執行個體的外部 IP 位址:

aws ec2 describe-instances --instance-ids i-0201020e110607121 --query "Reservations[].Instances[].PublicIpAddress"

The AWS EC2 describe instances command to display public IP addresses

若要檢查多個 AWS EC2 執行個體的外部 IP 位址,請以空格分隔各執行個體的 ID。

範例 10

請使用包含 AWS CLI 篩選條件的指令,查看已停止的執行個體及其各自停止的原因:

aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped

還有另一個例子:

aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped --region eu-west-1 --output json | jq -r .Reservations[].Instances[].StateReason.Message

範例 11

以下指令可列出正在運行的 Amazon EC2 執行個體,並以表格形式顯示更多詳細資訊,包括執行個體名稱、私有 IP 位址、公用 IP 位址、狀態、類型及 VPC ID:

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

An example of the AWS CLI describe instances command with AWS CLI filters

啟動 AWS EC2 執行個體

當您知道執行個體 ID 後,即可使用 Amazon EC2 指令啟動 Amazon 執行個體。

aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0

您可以透過執行 AWS EC2 啟動實例指令,並以空格分隔輸入各實例的 ID,來啟動多個 AWS EC2 實例。

aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2

停止 AWS EC2 執行個體

您可以停止一個或多個 AWS EC2 執行個體。其語法與 ec2 啟動實例 指令。

以下提供 AWS CLI 用於停止單一執行個體的指令:

aws ec2 stop-instances --instance-ids i-1a3b5c7d9ea0c1ef0

AWS CLI 用於停止多個(三個)執行個體的指令相同,但您需要以空格分隔,指定多個 AWS EC2 執行個體的 ID:

aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2

以下是輸出中可能出現的狀態代碼與狀態名稱清單:

0 – 待處理

16 – 執行中

32 – 關機中

48 – 已終止

64 – 停止中

80 – 已停止

重新啟動 AWS EC2 執行個體

隨著 AWS EC2 重新啟動執行個體 您可以使用此指令重新啟動一個或多個 AWS EC2 執行個體。此指令的運作邏輯與 AWS CLI 的 `start-instance` 和 `stop-instance` 指令相同。以下是重新啟動單一執行個體的指令:

aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0

這是用來重新啟動三個執行個體的指令:

aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2

新增標籤

標籤可讓您對 AWS EC2 執行個體進行分類,並更方便地識別或查找它們。以下將介紹兩個用於管理標籤的 AWS EC2 指令。

執行此指令並指定執行個體 ID,即可為該執行個體新增標籤:

aws ec2 create-tags --resources i-1a3b5c7d9ea0c1ef0 --tags Key=Department,Value=Marketing

接著,您可以透過指令並使用標籤來顯示所需執行個體的相關資訊:

aws ec2 describe-instances --filters "Name=tag-key,Values=Name"

描述 EBS 卷

在 Amazon EC2 執行個體運作期間,您可能需要查看 EBS 卷宗的相關資訊、將卷宗掛載至 EC2 執行個體,以及將其卸載。以下提供一些 AWS EC2 指令範例,供您用以取得 EBS 卷宗的相關資訊。

範例 1

這是一條簡單的指令,用於描述 EBS 卷,並顯示您 Amazon 帳戶中所有現有卷的相關資訊:

aws ec2 describe-volumes

此指令與我們先前使用的 AWS EC2 describe instances 指令類似。在輸出結果中,我們可以看到所有可用儲存卷的詳細資訊。請按下鍵盤上的向下箭頭鍵,向下捲動以查看所有資料。要在這份資料陣列中搜尋所需的資訊並不方便。請使用 AWS CLI 篩選器,僅顯示所需的資料。

A simple AWS CLI EC2 command to describe EBS volumes

範例 2

以下是 AWS CLI EC2 指令的範例,用於顯示所有 EBS 卷的卷標識碼:

aws ec2 describe-volumes --output table --query 'Volumes[*].VolumeId'

範例 3

讓我們篩選所有處於已掛載狀態的 Amazon EBS 卷的卷 ID:

aws ec2 describe-volumes

--query 'Volumes[*].Attachments[?State==`attached`].VolumeId[]'

Displaying information about EBS volumes using AWS EC2 filters

在執行 AWS CLI 指令以管理 EBS 卷宗及其他 AWS 物件時,您也可以採用相同的邏輯來套用篩選條件。

範例 4

您可能需要檢視未掛載且處於"可用"狀態的卷。在此情況下,請使用以下指令:

aws ec2 describe-volumes --filters Name=status,Values=available --output table

將 EBS 卷掛載至 AWS EC2 執行個體

取得 AWS EC2 執行個體和 EBS 儲存卷所需的資訊後,您可以使用 aws ec2 attach-volume 指令。

使用 --device 用於指定客體作業系統所使用磁碟名稱的選項。在以下範例中,我使用此指令將 EBS 卷掛載為識別為 /dev/sde 在客體 Linux 中。

aws ec2 attach-volume --volume-id vol-0034567890abcdef0 --instance-id i-1a3b5c7d9ea0c1ef0 --device /dev/sde

將 EBS 卷掛載至 EC2 執行個體後,卷的狀態會從"可用"變更為"已掛載"。

快照的操作

EBS 卷的快照可讓您保留卷的狀態,並在需要時回滾至該狀態。以下是建立 EBS 卷快照的命令範例:

aws ec2 create-snapshot --volume-id --description 'Volume Snapshot for ATA Blog via the AWS CLI' --tag-specifications 'ResourceType=snapshot,Tags=[{Key=Name,Value=FileServer01},{Key=Purpose,Value=Enterprise File Storage}]'

若要顯示快照 ID,請使用此指令:

ec2 describe-snapshots --owner self

請使用以下指令檢查快照狀態:

aws ec2 describe-snapshots --snapshot-id

如果快照進度為 100% 且狀態為"已完成",則表示快照已成功建立。

透過這些資訊,您可以選擇合適的資料保護策略。 Download the white paper 了解更多。

描述圖片

與 Amazon EC2 的 `describe` 實例和 `describe` 儲存區指令類似,您也可以使用指令來檢視 Amazon 機器映像 (AMI) 的資訊。以下是一個簡單的 AWS CLI EC2 指令,用於檢視 Amazon 機器映像 (AMI) 的資訊:

aws ec2 describe-images

您可以查看特定圖片的相關資訊:

aws ec2 describe-images --image-ids ami-0034567890abc4140

根據顯示的資訊,您可以選擇所需的 AMI 來建立新的 Amazon EC2 執行個體。

啟動新的 EC2 執行個體

您可以使用以下 AWS CLI EC2 指令,根據所需的映像檔建立(執行)新的執行個體。

首先,您需要產生金鑰:

aws ec2 create-key-pair --key-name MyKeyPair --output text > MyKeyPair.pem

使用 AWS EC2 的 `run-instances` 指令建立新的 Amazon EC2 執行個體,並指定 AMI、執行個體類型及金鑰對:

aws ec2 run-instances

--image-id ami-0abcdef1234567890

--instance-type t2.micro

--key-name MyKeyPair

這是一個簡單的範例。當您使用 AWS EC2 的 `run instances` 指令建立新的 EC2 執行個體時,可以定義更多選項,包括:

–子網識別碼

–安全群組 ID

–block-device-mappings

–標籤規範

刪除 EC2 執行個體

建議的做法是刪除長期未使用的 AWS EC2 執行個體,以節省成本。請務必謹慎操作,因為一旦終止的 EC2 執行個體將無法恢復。如果您不確定日後是否還需要該終止的執行個體, 備份 EC2 執行個體 與 NAKIVO Backup & Replication 儲存至本地備份儲存庫或 Amazon S3。

您可透過以下指令,指定多個實例的實例 ID 來刪除它們:

aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0abcdef123456789a i-0abcdef123456789b

結論

AWS CLI 是一款強大的命令列工具,可協助您自動化執行大量相似的任務。Amazon EC2 篩選器讓您能夠設定輸出內容,並僅取得所需資料。其中包含用於檢視 Amazon 服務資訊的指令,以及用於對這些服務進行變更的指令。

為避免因 AWS CLI 建立的腳本配置錯誤而導致的人為疏失,強烈建議您定期執行 AWS EC2 備份 使用專用的第三方解決方案。

1 年免費資料保護: NAKIVO Backup & Replication

1 年免費資料保護: NAKIVO Backup & Replication

2 分鐘即可部署,並保護虛擬、雲端、實體及 SaaS 資料。提供備份、複製與快速還原選項。

“}” data-sheets-userformat=”{“2″:17089,”3”:{“1″:0},”9″:1,”10″:1,”12″:0,”17”:1}”>

1 年免費資料保護: NAKIVO Backup & Replication

1 年免費資料保護: NAKIVO Backup & Replication

2 分鐘即可部署,並保護虛擬、雲端、實體及 SaaS 資料。提供備份、複製與快速還原選項。

People also read