Amazon Lightsail 搭配 使用 AWS CLI - Amazon Lightsail

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon Lightsail 搭配 使用 AWS CLI

本教學課程使用 AWS Command Line Interface () 引導您完成常見Amazon Lightsail操作AWS CLI。您將了解如何建立和管理 Lightsail 資源,包括金鑰對、執行個體、儲存體和快照。

先決條件

開始本教學課程之前,請確定您有下列項目。

  1. AWS CLI。如果您需要安裝,請遵循 AWS CLI 安裝指南。您也可以使用 AWS CloudShell ,其中包含 AWS CLI。

  2. AWS CLI 使用適當的登入資料設定您的 。aws configure 如果您尚未設定登入資料,請執行 。

  3. 對命令列界面和 SSH 概念的基本熟悉度。

  4. 有足夠的許可來建立和管理您 AWS 帳戶中Lightsail的資源。

開始之前,請將AWS_REGION環境變數設定為您設定 AWS CLI 使用的相同區域,如果尚未設定此環境變數用於範例命令,以指定 Lightsail 資源的可用區域。

$ [ -z "${AWS_REGION}" ] && export AWS_REGION=$(aws configure get region)

讓我們開始使用 CLI 建立和管理Amazon Lightsail資源。

產生 SSH 金鑰對

SSH 金鑰對可讓您安全地連線至Lightsail執行個體,而無需使用密碼。在本節中,您將建立新的金鑰對並擷取其資訊。

範例 – 建立新的金鑰對

下列命令會建立新的 SSH 金鑰對,名稱為 "cli-tutorial-keys",並將私有金鑰儲存至本機電腦。

$ aws lightsail create-key-pair --key-pair-name cli-tutorial-keys \ --query privateKeyBase64 --output text > ~/.ssh/cli-tutorial-keys.pem $ chmod 400 ~/.ssh/cli-tutorial-keys.pem

執行此命令後,私有金鑰會以適當的許可儲存至您的~/.ssh目錄。chmod 命令可確保只有您可以讀取私有金鑰檔案,這是 SSH 的安全需求。

範例 – 擷取金鑰對資訊

您可以透過擷取金鑰對的資訊來驗證金鑰對是否已成功建立。

$ aws lightsail get-key-pair --key-pair-name cli-tutorial-keys { "keyPair": { "name": "cli-tutorial-keys", "arn": "arn:aws:lightsail:us-east-2:123456789012:KeyPair/e00xmpl-6a6a-434a-bff1-87f2bb815e21", "supportCode": "123456789012/cli-tutorial-keys", "createdAt": 1673596800.000, "location": { "availabilityZone": "all", "regionName": "us-east-2" }, "resourceType": "KeyPair", "tags": [], "fingerprint": "d0:0d:30:db:5a:24:df:f6:17:f0:e2:15:45:77:3d:bb:d0:6d:fc:81" } }

輸出會顯示金鑰對的詳細資訊,包括其名稱、ARN、建立時間、區域和指紋。連線至執行個體時,此指紋可用來驗證金鑰的真偽。

建立和管理執行個體

Lightsail 執行個體是執行應用程式或網站的虛擬私有伺服器。在本節中,您將建立 WordPress 執行個體並擷取其詳細資訊。

範例 – 建立 WordPress 執行個體

下列命令會使用nano_3_0套件 (最小執行個體大小) 建立新的 WordPress Lightsail執行個體,並將其與您的金鑰對建立關聯。命令會使用 AWS_REGION環境變數,在您設定的區域中的可用區域中建立執行個體。

$ aws lightsail create-instances --instance-names cli-tutorial \ --availability-zone ${AWS_REGION}a --blueprint-id wordpress \ --bundle-id nano_3_0 --key-pair-name cli-tutorial-keys { "operations": [ { "id": "f30xmpl-3727-492a-9d42-5c94ad3ef9a8", "resourceName": "cli-tutorial", "resourceType": "Instance", "createdAt": 1673596800.000, "location": { "availabilityZone": "us-east-2a", "regionName": "us-east-2" }, "isTerminal": false, "operationType": "CreateInstance", "status": "Started", "statusChangedAt": 1673596800.000 } ] }

回應表示執行個體建立操作已開始。您的執行個體可能需要幾分鐘的時間才能使用。

範例 – 取得執行個體詳細資訊

建立執行個體後,您可以使用下列命令擷取其詳細資訊。

$ aws lightsail get-instance --instance-name cli-tutorial { "instance": { "name": "cli-tutorial", "arn": "arn:aws:lightsail:us-east-2:123456789012:Instance/7d3xmpl-ae2e-44d5-bbd9-22f9ec2abe1f", "supportCode": "123456789012/i-099cxmpl5dad5923c", "createdAt": 1673596800.000, "location": { "availabilityZone": "us-east-2a", "regionName": "us-east-2" }, "resourceType": "Instance", "tags": [], "blueprintId": "wordpress", "blueprintName": "WordPress", "bundleId": "nano_3_0", "isStaticIp": false, "privateIpAddress": "172.26.6.136", "publicIpAddress": "203.0.113.75", "ipv6Addresses": [ "2600:1f14:ab4:3800:ceef:89e2:f57:f25" ], "ipAddressType": "dualstack", "hardware": { "cpuCount": 2, "disks": [ { "createdAt": 1673596800.000, "sizeInGb": 20, "isSystemDisk": true, "iops": 100, "path": "/dev/xvda", "attachedTo": "cli-tutorial", "attachmentState": "attached" } ], "ramSizeInGb": 0.5 }, "networking": { "monthlyTransfer": { "gbPerMonthAllocated": 1024 }, "ports": [ { "fromPort": 80, "toPort": 80, "protocol": "tcp", "accessFrom": "Anywhere (0.0.0.0/0 and ::/0)", "accessType": "public", "commonName": "", "accessDirection": "inbound", "cidrs": [ "0.0.0.0/0" ], "ipv6Cidrs": [ "::/0" ], "cidrListAliases": [] }, { "fromPort": 22, "toPort": 22, "protocol": "tcp", "accessFrom": "Anywhere (0.0.0.0/0 and ::/0)", "accessType": "public", "commonName": "", "accessDirection": "inbound", "cidrs": [ "0.0.0.0/0" ], "ipv6Cidrs": [ "::/0" ], "cidrListAliases": [] }, { "fromPort": 443, "toPort": 443, "protocol": "tcp", "accessFrom": "Anywhere (0.0.0.0/0 and ::/0)", "accessType": "public", "commonName": "", "accessDirection": "inbound", "cidrs": [ "0.0.0.0/0" ], "ipv6Cidrs": [ "::/0" ], "cidrListAliases": [] } ] }, "state": { "code": 16, "name": "running" }, "username": "bitnami", "sshKeyName": "cli-tutorial-keys", "metadataOptions": { "state": "applied", "httpTokens": "optional", "httpEndpoint": "enabled", "httpPutResponseHopLimit": 1, "httpProtocolIpv6": "disabled" } } }

輸出提供有關執行個體的完整資訊,包括其 IP 地址、硬體規格、聯網組態和狀態。請注意公有 IP 地址和使用者名稱,因為您需要這些地址和使用者名稱才能連線到執行個體。

連線到您的執行個體

建立執行個體之後,您可以使用 SSH 搭配您先前建立的金鑰對來連接至執行個體。本節說明如何建立 SSH 連線和管理安全設定。

範例 – 執行個體中的 SSH

使用下列命令透過 SSH 連線至執行個體,以執行個體的公有 IP 取代 IP 地址。

$ ssh -i ~/.ssh/cli-tutorial-keys.pem bitnami@203.0.113.75 Linux ip-172-26-6-136 6.1.0-32-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. ___ _ _ _ | _ |_) |_ _ _ __ _ _ __ (_) | _ \ | _| ' \/ _` | ' \| | |___/_|\__|_|_|\__,_|_|_|_|_| *** Welcome to the Bitnami package for WordPress 6.7.2 *** *** Documentation: https://docs.bitnami.com/aws/apps/wordpress/ *** *** https://docs.bitnami.com/aws/ *** *** Bitnami Forums: https://github.com/bitnami/vms/ *** bitnami@ip-172-26-6-136:~$ df Filesystem 1K-blocks Used Available Use% Mounted on udev 217920 0 217920 0% /dev tmpfs 45860 480 45380 2% /run /dev/nvme0n1p1 20403592 3328832 16142256 18% / tmpfs 229292 0 229292 0% /dev/shm tmpfs 5120 0 5120 0% /run/lock /dev/nvme0n1p15 126678 11840 114838 10% /boot/efi tmpfs 45856 0 45856 0% /run/user/1000

連線後,您可以管理 WordPress 安裝、設定伺服器或安裝其他軟體。上述範例顯示執行個體上使用 df命令的磁碟用量。

範例 – 關閉公有連接埠

當您不使用 SSH 時,您可以關閉執行個體上的公有連接埠。這有助於保護您的執行個體免於未經授權的存取嘗試。

$ aws lightsail close-instance-public-ports --instance-name cli-tutorial \ --port-info fromPort=22,protocol=TCP,toPort=22 { "operation": { "id": "6cdxmpl-9f39-4357-a66d-230096140b4f", "resourceName": "cli-tutorial", "resourceType": "Instance", "createdAt": 1673596800.000, "location": { "availabilityZone": "us-east-2a", "regionName": "us-east-2" }, "isTerminal": true, "operationDetails": "22/tcp", "operationType": "CloseInstancePublicPorts", "status": "Succeeded", "statusChangedAt": 1673596800.000 } }
注意

關閉連接埠 22 可防止所有 SSH 連線,包括從Lightsail主控台啟動的連線。如需詳細資訊,請參閱下列主題。

回應會確認連接埠 22 已成功關閉。當您需要透過 SSH 重新連線時,您可以使用 open-instance-public-ports命令重新開啟連接埠。

將儲存新增至執行個體

隨著應用程式的成長,您可能需要額外的儲存空間。 Lightsail可讓您建立額外的磁碟並將其連接至執行個體。本節示範如何新增額外的儲存空間。

範例 – 建立磁碟

下列命令會建立新的 32GB 磁碟。

$ aws lightsail create-disk --disk-name cli-tutorial-disk \ --availability-zone ${AWS_REGION}a --size-in-gb 32 { "operations": [ { "id": "070xmpl-3364-4aa2-bff2-3c589de832fc", "resourceName": "cli-tutorial-disk", "resourceType": "Disk", "createdAt": 1673596800.000, "location": { "availabilityZone": "us-east-2a", "regionName": "us-east-2" }, "isTerminal": false, "operationType": "CreateDisk", "status": "Started", "statusChangedAt": 1673596800.000 } ] }

回應表示磁碟建立操作已開始。磁碟可能需要一些時間才能使用。

範例 – 將磁碟連接至您的執行個體

建立磁碟後,您可以使用下列命令將其連接至執行個體。

$ aws lightsail attach-disk --disk-name cli-tutorial-disk \ --disk-path /dev/xvdf --instance-name cli-tutorial { "operations": [ { "id": "d17xmpl-2bdb-4292-ac63-ba5537522cea", "resourceName": "cli-tutorial-disk", "resourceType": "Disk", "createdAt": 1673596800.000, "location": { "availabilityZone": "us-east-2a", "regionName": "us-east-2" }, "isTerminal": false, "operationDetails": "cli-tutorial", "operationType": "AttachDisk", "status": "Started", "statusChangedAt": 1673596800.000 }, { "id": "01exmpl-c04e-42d4-aa6b-45ce50562a54", "resourceName": "cli-tutorial", "resourceType": "Instance", "createdAt": 1673596800.000, "location": { "availabilityZone": "us-east-2a", "regionName": "us-east-2" }, "isTerminal": false, "operationDetails": "cli-tutorial-disk", "operationType": "AttachDisk", "status": "Started", "statusChangedAt": 1673596800.000 } ] }

disk-path 參數指定磁碟將連接在 Linux 檔案系統中的位置。連接磁碟之後,您需要格式化並從執行個體中掛載磁碟。

範例 – 驗證磁碟連接

您可以透過擷取其詳細資訊來確認磁碟已正確連接。

$ aws lightsail get-disk --disk-name cli-tutorial-disk { "disk": { "name": "cli-tutorial-disk", "arn": "arn:aws:lightsail:us-east-2:123456789012:Disk/1a9xmpl-8a34-46a4-b87e-19184f0cca9c", "supportCode": "123456789012/vol-0dacxmplc1c3108e2", "createdAt": 1673596800.000, "location": { "availabilityZone": "us-east-2a", "regionName": "us-east-2" }, "resourceType": "Disk", "tags": [], "sizeInGb": 32, "isSystemDisk": false, "iops": 100, "path": "/dev/xvdf", "state": "in-use", "attachedTo": "cli-tutorial", "isAttached": true, "attachmentState": "attached" } }

輸出會確認磁碟已連接至您的執行個體。「狀態」欄位顯示「使用中」,且「isAttached」設定為 true,表示連接成功。

建立和使用快照

快照可讓您備份執行個體,並從備份建立新執行個體。這適用於災難復原、測試或建立重複的環境。

範例 – 建立執行個體快照

下列命令會建立執行個體的快照。

$ aws lightsail create-instance-snapshot --instance-name cli-tutorial \ --instance-snapshot-name cli-tutorial-snapshot { "operations": [ { "id": "41bxmpl-7824-4591-bfcc-1b1c341613a4", "resourceName": "cli-tutorial-snapshot", "resourceType": "InstanceSnapshot", "createdAt": 1673596800.000, "location": { "availabilityZone": "all", "regionName": "us-east-2" }, "isTerminal": false, "operationDetails": "cli-tutorial", "operationType": "CreateInstanceSnapshot", "status": "Started", "statusChangedAt": 1673596800.000 }, { "id": "725xmpl-158e-46f6-bd49-27b0e6805aa2", "resourceName": "cli-tutorial", "resourceType": "Instance", "createdAt": 1673596800.000, "location": { "availabilityZone": "us-east-2a", "regionName": "us-east-2" }, "isTerminal": false, "operationDetails": "cli-tutorial-snapshot", "operationType": "CreateInstanceSnapshot", "status": "Started", "statusChangedAt": 1673596800.000 } ] }

回應表示快照程序已開始。取得快照的執行個體有一個非同步操作,而要建立的快照有一個非同步操作。快照包含連接至執行個體的所有磁碟。

範例 – 從快照建立新執行個體

快照完成後,您可以使用它來建立新的執行個體。

$ aws lightsail create-instances-from-snapshot --availability-zone ${AWS_REGION}b \ --instance-snapshot-name cli-tutorial-snapshot --instance-name cli-tutorial-bup --bundle-id small_3_0 { "operations": [ { "id": "a35xmpl-efa1-4d6c-958e-9d58fd258f5f", "resourceName": "cli-tutorial-bup", "resourceType": "Instance", "createdAt": 1673596800.000, "location": { "availabilityZone": "us-east-2b", "regionName": "us-east-2" }, "isTerminal": false, "operationType": "CreateInstancesFromSnapshot", "status": "Started", "statusChangedAt": 1673596800.000 } ] }

此命令us-east-2b會使用small_3_0套件大小,cli-tutorial-bup在可用區域中建立名為 的新執行個體。請注意,您可以為新執行個體選擇不同的套件大小,這對於向上或向下擴展非常有用。

清除資源

完成Lightsail資源後,您應該將其刪除,以避免產生額外費用。本節說明如何清除在本教學課程中建立的所有資源。

範例 – 刪除執行個體快照

若要刪除不再需要的快照,請使用下列命令。

$ aws lightsail delete-instance-snapshot --instance-snapshot-name cli-tutorial-snapshot { "operations": [ { "id": "cf8xmpl-0ec7-43ec-9cbc-6dedd9d8eda8", "resourceName": "cli-tutorial-snapshot", "resourceType": "InstanceSnapshot", "createdAt": 1673596800.000, "location": { "availabilityZone": "all", "regionName": "us-east-2" }, "isTerminal": true, "operationDetails": "", "operationType": "DeleteInstanceSnapshot", "status": "Succeeded", "statusChangedAt": 1673596800.000 } ] }

回應會確認快照刪除操作已成功。

範例 – 刪除執行個體

若要刪除執行個體,請使用下列命令。

$ aws lightsail delete-instance --instance-name cli-tutorial { "operations": [ { "id": "f4bxmpl-2df1-4740-90d7-e30adaf7e3a1", "resourceName": "cli-tutorial", "resourceType": "Instance", "createdAt": 1673596800.000, "location": { "availabilityZone": "us-east-2a", "regionName": "us-east-2" }, "isTerminal": true, "operationDetails": "", "operationType": "DeleteInstance", "status": "Succeeded", "statusChangedAt": 1673596800.000 } ] }

請記得刪除您建立的所有執行個體,包括從快照建立的任何執行個體。

範例 – 刪除磁碟

若要刪除不再需要的磁碟,請使用下列命令。

$ aws lightsail delete-disk --disk-name cli-tutorial-disk { "operations": [ { "id": "aacxmpl-8626-4edd-8b3b-bf108d6b279c", "resourceName": "cli-tutorial-disk", "resourceType": "Disk", "createdAt": 1673596800.000, "location": { "availabilityZone": "us-east-2a", "regionName": "us-east-2" }, "isTerminal": true, "operationDetails": "", "operationType": "DeleteDisk", "status": "Succeeded", "statusChangedAt": 1673596800.000 } ] }

如果磁碟已連接至執行個體,您必須先使用 detach-disk命令將其分離。

範例 – 刪除金鑰對

最後,刪除您在本教學課程開始時建立的金鑰對。

$ aws lightsail delete-key-pair --key-pair-name cli-tutorial-keys { "operation": { "id": "dbfxmpl-c954-4a45-93a4-ab3e627d2c23", "resourceName": "cli-tutorial-keys", "resourceType": "KeyPair", "createdAt": 1673596800.000, "location": { "availabilityZone": "all", "regionName": "us-east-2" }, "isTerminal": true, "operationDetails": "", "operationType": "DeleteKeyPair", "status": "Succeeded", "statusChangedAt": 1673596800.000 } }

此命令只會從中刪除金鑰對 AWS。現在您也可以刪除本機複本。

$ rm ~/.ssh/cli-tutorial-keys.pem

後續步驟

現在您已了解使用 管理 Lightsail 資源的基本概念 AWS CLI,請探索其他Lightsail功能。

  1. 網域將網域名稱指派給您的應用程式。

  2. 負載平衡器 – 將流量路由到多個執行個體,以提高容量和彈性。

  3. 自動快照自動備份應用程式資料

  4. 指標監控資源的運作狀態、取得通知,以及設定警示。

  5. 資料庫將您的應用程式連接到關聯式資料庫

如需可用 AWS CLI 命令的詳細資訊,請參閱 AWS CLI 的命令參考Lightsail