本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Lightsail 搭配 使用 AWS CLI
本教學課程使用 AWS Command Line Interface () 引導您完成常見Amazon Lightsail操作AWS CLI。您將了解如何建立和管理 Lightsail 資源,包括金鑰對、執行個體、儲存體和快照。
先決條件
開始本教學課程之前,請確定您有下列項目。
-
AWS CLI。如果您需要安裝,請遵循 AWS CLI 安裝指南。您也可以使用 AWS CloudShell ,其中包含 AWS CLI。
-
AWS CLI 使用適當的登入資料設定您的 。
aws configure
如果您尚未設定登入資料,請執行 。 -
對命令列界面和 SSH 概念的基本熟悉度。
-
有足夠的許可來建立和管理您 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@
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/1000203.0.113.75
連線後,您可以管理 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功能。
-
網域 – 將網域名稱指派給您的應用程式。
-
負載平衡器 – 將流量路由到多個執行個體,以提高容量和彈性。
-
自動快照 – 自動備份應用程式資料。
-
指標 – 監控資源的運作狀態、取得通知,以及設定警示。
-
資料庫 – 將您的應用程式連接到關聯式資料庫。
如需可用 AWS CLI 命令的詳細資訊,請參閱 AWS CLI 的命令參考Lightsail。