如何使用 AWS CLI 命令管理 Lightsail 執行個體?

8 分的閱讀內容
0

如何使用 AWS Command Line Interface (AWS CLI) 第 1 版命令管理 Amazon Lightsail 執行個體?

簡短描述

如需 Amazon Lightsail AWS CLI 命令清單,請參閱 AWS CLI 命令參考Amazon Lightsail API 參考

以下是在 Lightsail 執行個體上使用 AWS CLI 命令的常見案例:

  • 列出區域中所有可用的 Lightsail 計畫 (套件)藍圖
  • 使用特定套件和藍圖建立 Lightsail 執行個體。
  • 列出特定區域中的所有 Lightsail 執行個體。
  • 配置靜態 IP 地位址,然後將其連接至執行個體並進行驗證。

**注意:**使用 AWS CLI 命令時,請記住下列事項:

macOS:

移除時間戳記中的小數點和小數點右側的任何數字,然後執行下列命令:

# date -r 1602175741 -u
Thu Oct  8 16:49:01 UTC 2020

Linux:

執行下列命令:

# date -d @1602175741.603 -u
Thu Oct  8 16:49:01 UTC 2020

Windows:

使用轉換器 (例如 epochconverter.com) 轉換時間戳記。

解決方法

列出區域中所有可用的 Lightsail 套件和藍圖

執行 get-bundles 命令,以查看您所在區域可供購買的所有套件清單。在下列命令中,將 eu-west-1 取代為您的區域:

# aws lightsail get-bundles --region eu-west-1 --query 'bundles[].{price:price,cpuCount:cpuCount,ramSizeInGb:ramSizeInGb,diskSizeInGb:diskSizeInGb,bundleId:bundleId,instanceType:instanceType,supportedPlatforms:supportedPlatforms[0]}' --output table
---------------------------------------------------------------------------------------------------------------
|                                                 GetBundles                                                  |
+-----------------+-----------+---------------+---------------+--------+---------------+----------------------+
|    bundleId     | cpuCount  | diskSizeInGb  | instanceType  | price  |  ramSizeInGb  | supportedPlatforms   |
+-----------------+-----------+---------------+---------------+--------+---------------+----------------------+
|  nano_2_0       |  1        |  20           |  nano         |  3.5   |  0.5          |  LINUX_UNIX          |
|  micro_2_0      |  1        |  40           |  micro        |  5.0   |  1.0          |  LINUX_UNIX          |
|  small_2_0      |  1        |  60           |  small        |  10.0  |  2.0          |  LINUX_UNIX          |
|  medium_2_0     |  2        |  80           |  medium       |  20.0  |  4.0          |  LINUX_UNIX          |
|  large_2_0      |  2        |  160          |  large        |  40.0  |  8.0          |  LINUX_UNIX          |
|  xlarge_2_0     |  4        |  320          |  xlarge       |  80.0  |  16.0         |  LINUX_UNIX          |
|  2xlarge_2_0    |  8        |  640          |  2xlarge      |  160.0 |  32.0         |  LINUX_UNIX          |
|  nano_win_2_0   |  1        |  30           |  nano         |  8.0   |  0.5          |  WINDOWS             |
|  micro_win_2_0  |  1        |  40           |  micro        |  12.0  |  1.0          |  WINDOWS             |
|  small_win_2_0  |  1        |  60           |  small        |  20.0  |  2.0          |  WINDOWS             |
|  medium_win_2_0 |  2        |  80           |  medium       |  40.0  |  4.0          |  WINDOWS             |
|  large_win_2_0  |  2        |  160          |  large        |  70.0  |  8.0          |  WINDOWS             |
|  xlarge_win_2_0 |  4        |  320          |  xlarge       |  120.0 |  16.0         |  WINDOWS             |
|  2xlarge_win_2_0|  8        |  640          |  2xlarge      |  240.0 |  32.0         |  WINDOWS             |
+-----------------+-----------+---------------+---------------+--------+---------------+----------------------+

執行 get-blueprints 命令以查看您所在區域中所有映像或藍圖的清單。然後,您可以選擇使用可用映像建立新的執行個體。在下列命令中,將 eu-west-1 取代為您的區域:

# aws lightsail get-blueprints --region eu-west-1 --query 'blueprints[].{blueprintId:blueprintId,name:name,group:group,productUrl:productUrl,platform:platform}' --output table
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                                                                           GetBlueprints                                                                           |
+--------------------------------------+-----------------------+--------------------------------+-------------+-----------------------------------------------------+
|              blueprintId             |         group         |             name               |  platform   |                     productUrl                      |
+--------------------------------------+-----------------------+--------------------------------+-------------+-----------------------------------------------------+
|  windows_server_2019                 |  windows_2019         |  Windows Server 2019           |  WINDOWS    |  https://aws.amazon.com/marketplace/pp/B07QZ4XZ8F   |
|  windows_server_2016                 |  windows_2016         |  Windows Server 2016           |  WINDOWS    |  https://aws.amazon.com/marketplace/pp/B01M7SJEU7   |
|  windows_server_2012                 |  windows_2012         |  Windows Server 2012 R2        |  WINDOWS    |  https://aws.amazon.com/marketplace/pp/B00KQOWCAQ   |
|  windows_server_2016_sql_2016_express|  windows_2016_sql_exp |  SQL Server 2016 Express       |  WINDOWS    |  https://aws.amazon.com/marketplace/pp/B01MAZHH98   |
|  amazon_linux_2                      |  amazon_linux_2       |  Amazon Linux 2                |  LINUX_UNIX |  https://aws.amazon.com/amazon-linux-2/             |
|  amazon_linux                        |  amazon-linux         |  Amazon Linux                  |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00CIYTQTC   |
|  ubuntu_20_04                        |  ubuntu_20            |  Ubuntu                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B087QQNGF1   |
|  ubuntu_18_04                        |  ubuntu_18            |  Ubuntu                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B07CQ33QKV   |
|  ubuntu_16_04_2                      |  ubuntu               |  Ubuntu                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B01JBL2M0O   |
|  debian_10                           |  debian_10            |  Debian                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B0859NK4HC   |
|  debian_9_5                          |  debian_9             |  Debian                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B073HW9SP3   |
|  debian_8_7                          |  debian               |  Debian                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00WUNJIEE   |
|  freebsd_12                          |  freebsd              |  FreeBSD                       |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B07L6QV354   |
|  opensuse_15_1                       |  opensuse             |  openSUSE                      |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B01N4R3GJI   |
|  centos_7_1901_01                    |  centos               |  CentOS                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00O7WM7QW   |
|  wordpress                           |  wordpress            |  WordPress                     |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NN8Y43U   |
|  wordpress_multisite                 |  wordpress_multisite  |  WordPress Multisite           |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NN8XE6S   |
|  lamp_7                              |  lamp_7               |  LAMP (PHP 7)                  |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B072JNJZ5C   |
|  nodejs                              |  node                 |  Node.js                       |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NNZUAKO   |
|  joomla                              |  joomla               |  Joomla                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NNZUP54   |
|  magento                             |  magento              |  Magento                       |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NNZTA6Y   |
|  mean                                |  mean                 |  MEAN                          |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NO1HJ56   |
|  drupal                              |  drupal               |  Drupal                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NNZSUMO   |
|  gitlab                              |  gitlab               |  GitLab CE                     |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NNZU5PO   |
|  redmine                             |  redmine              |  Redmine                       |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NNZUVHQ   |
|  nginx                               |  nginx                |  Nginx                         |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NPHKI3Y   |
|  ghost_bitnami                       |  ghost_bitnami        |  Ghost                         |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NPHLY8W   |
|  django_bitnami                      |  django_bitnami       |  Django                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NNZTDNO   |
|  plesk_ubuntu_18_0_28                |  plesk_ubuntu         |  Plesk Hosting Stack on Ubuntu |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B077MJL7Z2   |
|  cpanel_whm_linux                    |  cpanel_whm_linux     |  cPanel & WHM for Linux        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B07RRX2TVV   |
+--------------------------------------+-----------------------+--------------------------------+-------------+-----------------------------------------------------+

範例:

下列命令使用 Linux/Unix 平台作業系統篩選藍圖:

# aws lightsail get-blueprints --query 'blueprints[?type==`os`&&platform==`LINUX_UNIX`].{name:name,version:version}' --output table
--------------------------------------------
|               GetBlueprints              |
+-----------------+------------------------+
|      name       |        version         |
+-----------------+------------------------+
|  Amazon Linux 2 |  2.0.20200917.0        |
|  Amazon Linux   |  2018.03.0.20200918.0  |
|  Ubuntu         |  20.04 LTS             |
|  Ubuntu         |  18.04 LTS             |
|  Ubuntu         |  16.04 LTS             |
|  Debian         |  10.5                  |
|  Debian         |  9.5                   |
|  Debian         |  8.7                   |
|  FreeBSD        |  12.1                  |
|  openSUSE       |  15.1                  |
|  CentOS         |  7 1901-01             |
+-----------------+------------------------+

使用特定套件和藍圖建立 Lightsail 執行個體

1.    執行下列命令以取得藍圖。下列範例命令會取得 WordPress 藍圖。將 eu-west-1 取代為您的區域,並將 WordPress 資訊取代為您選擇的藍圖資訊。

# aws lightsail get-blueprints --region eu-west-1 --query 'blueprints[].{blueprintId:blueprintId,name:name,group:group,productUrl:productUrl,platform:platform}' --output table |grep -i wordpress
|  wordpress                           |  wordpress            |  WordPress                     |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NN8Y43U   |
|  wordpress_multisite                 |  wordpress_multisite  |  WordPress Multisite           |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NN8XE6S   |

2.    執行 create-instances 命令以建立 Amazon Lightsail 執行個體。下列範例會使用 WordPress 藍圖和 micro_2_0 套件在 eu-west-1 區域中建立 Amazon Lightsail 執行個體。將 --instance-namesblueprint-idbundle-id--region 取代為您的請求的適當值。

# aws lightsail create-instances --region eu-west-1 --instance-names MyNewInstance --availability-zone eu-west-1a --blueprint-id wordpress --bundle-id micro_2_0
{
    "operations": [
        {
            "id": "003757e7-0880-4162-9912-211d4756081e",
            "resourceName": "MyNewInstance",
            "resourceType": "Instance",
            "createdAt": 1602175452.334,
            "location": {
                "availabilityZone": "eu-west-1a",
                "regionName": "eu-west-1"
            },
            "isTerminal": false,
            "operationType": "CreateInstance",
            "status": "Started",
            "statusChangedAt": 1602175452.334
        }
    ]
}

若要使用單一 API 呼叫建立多個執行個體,請指定具有 **--instance-names {"LightsailInstance1","LightsailInstance2"} 的參數。**下列範例會使用 WordPress 藍圖和 micro_2_0 套件在 eu-west-1 區域中建立兩個 Lightsail 執行個體。

# aws lightsail create-instances --region eu-west-1 --instance-names {"TestLightsailInstance1","TestLightsailInstance2"} --availability-zone eu-west-1a --blueprint-id wordpress --bundle-id micro_2_0
{
    "operations": [
        {
            "id": "8a15b195-9a20-4d79-ad1d-6e85557ae94d",
            "resourceName": "TestLightsailInstance1",
            "resourceType": "Instance",
            "createdAt": 1602175741.602,
            "location": {
                "availabilityZone": "eu-west-1a",
                "regionName": "eu-west-1"
            },
            "isTerminal": false,
            "operationType": "CreateInstance",
            "status": "Started",
            "statusChangedAt": 1602175741.602
        },
        {
            "id": "a006513b-0e25-4802-ab33-671a40bf5a92",
            "resourceName": "TestLightsailInstance2",
            "resourceType": "Instance",
            "createdAt": 1602175741.603,
            "location": {
                "availabilityZone": "eu-west-1a",
                "regionName": "eu-west-1"
            },
            "isTerminal": false,
            "operationType": "CreateInstance",
            "status": "Started",
            "statusChangedAt": 1602175741.603
        }
    ]
}

列出區域中的所有 Lightsail 執行個體

執行 get-instances 命令,以顯示特定區域中的 Lightsail 執行個體。下列範例顯示 eu-west-1 區域中的所有 Lightsai 執行個體。將 --region 取代為適合您的請求的值。

# aws lightsail get-instances --region eu-west-1 --query 'instances[].{name:name,createdAt:createdAt,blueprintId:blueprintId,blueprintName:blueprintName,publicIpAddress:publicIpAddress}' --output table
---------------------------------------------------------------------------------------------------------------------
|                                                   GetInstances                                                    |
+-----------------+----------------+-----------------+------------------------------------------+-------------------+
|   blueprintId   | blueprintName  |    createdAt    |                  name                    |  publicIpAddress  |
+-----------------+----------------+-----------------+------------------------------------------+-------------------+
|  wordpress_4_9_8|  WordPress     |  1545700733.77  | WordPress-512MB-Ireland-1  |  63.33.xx.xx |
|  wordpress      |  WordPress     |  1602175741.603 |  TestLightsailInstance2    |  63.33.xx.xx |
|  wordpress      |  WordPress     |  1602175741.602 |  TestLightsailInstance1    |  54.7.xx.xx  |
|  wordpress      |  WordPress     |  1588098501.555 |  WordPress-1               |  3.250.xx.xx |
|  wordpress      |  WordPress     |  1602175452.334 |  MyNewInstance             |  54.195.xx.xx
+-----------------+----------------+-----------------+------------------------------------------+-------------------+

配置靜態 IP,然後將其連接至建立的 Lightsail 執行個體並進行驗證。

注意:create-instances 命令會建立一個已指派公有 IP 地址的 Lightsail 執行個體。與您可以指派並重新指派給執行個體或其他資源的公有 IP 地址不同,靜態 IP 位址是固定的。如果您尚未為執行個體建立靜態 IP 地址,則 Lightsail 會在您每次停止或重新啟動執行個體時指派新的公有 IP 地址。

1.    執行 allocate-static-ip 命令以配置固定的公有地址。下列範例會顯示在 eu-west-1 區域中,名為 StaticIpForTestLightsailInstance1 的靜態 IP 的配置。將 --static-ip-name--region 取代為適合您的請求的值。

# aws lightsail allocate-static-ip --static-ip-name StaticIpForTestLightsailInstance1 --region eu-west-1

{
    "operations": [
        {
            "id": "6471cedc-97f5-42d1-b35f-4f77c5f93242",
            "resourceName": "StaticIpForTestLightsailInstance1",
            "resourceType": "StaticIp",
            "createdAt": 1602180341.746,
            "location": {
                "availabilityZone": "all",
                "regionName": "eu-west-1"
            },
            "isTerminal": true,
            "operationType": "AllocateStaticIp",
            "status": "Succeeded",
            "statusChangedAt": 1602180342.011
        }
    ]
}

2.    執行 get-static-ip 命令,以顯示已配置靜態 IP 地址的值。下列範例會顯示在 eu-west-1 區域中,名為 StaticIpForTestLightsailInstance1 的靜態 IP 52.210.xx.xx 的配置。將 --static-ip-name--region 取代為適合您的請求的值。

# aws lightsail get-static-ip --static-ip-name StaticIpForTestLightsailInstance1 --region eu-west-1

{
    "staticIp": {
        "name": "StaticIpForTestLightsailInstance1",
        "arn": "arn:aws:lightsail:eu-west-1:920893848407:StaticIp/16a97579-c51e-404c-96cc-5946528d12aa",
        "supportCode": "11178xxxxxxx/52.210.xx.xx",
        "createdAt": 1602180341.746,
        "location": {
            "availabilityZone": "all",
            "regionName": "eu-west-1"
        },
        "resourceType": "StaticIp",
        "ipAddress": "52.210.xx.xx",
        "isAttached": false
    }
}

3.    執行 attach-static-ip 命令,以將靜態 IP 地址連接至您的 Lightsail 執行個體。下列範例會顯示在 eu-west-1 區域中,將名為 StaticIpForTestLightsailInstance1 的靜態 IP 52.210.xx.xx 配置為名為 TestLightsailInstance1 的執行個體的操作。將 --static-ip-name--instance-name--region 取代為適合您的請求的值。

# aws lightsail attach-static-ip --static-ip-name StaticIpForTestLightsailInstance1 --instance-name TestLightsailInstance1  --region eu-west-1
{
    "operations": [
        {
            "id": "d9d2372f-b4b7-4838-99ae-c15f8ffb8332",
            "resourceName": "StaticIpForTestLightsailInstance1",
            "resourceType": "StaticIp",
            "createdAt": 1602180562.026,
            "location": {
                "availabilityZone": "all",
                "regionName": "eu-west-1"
            },
            "isTerminal": true,
            "operationDetails": "TestLightsailInstance1",
            "operationType": "AttachStaticIp",
            "status": "Succeeded",
            "statusChangedAt": 1602180562.026
        },
        {
            "id": "131994d8-bd25-4b47-8d81-851224b168d1",
            "resourceName": "TestLightsailInstance1",
            "resourceType": "Instance",
            "createdAt": 1602180562.026,
            "location": {
                "availabilityZone": "eu-west-1a",
                "regionName": "eu-west-1"
            },
            "isTerminal": true,
            "operationDetails": "StaticIpForTestLightsailInstance1",
            "operationType": "AttachStaticIp",
            "status": "Succeeded",
            "statusChangedAt": 1602180562.026
        }
    ]
}

4.    執行 get-instances 命令,以確認靜態 IP 地址是否與 Lightsail 執行個體正確關聯。

# aws lightsail get-instances --region eu-west-1 --query 'instances[].{name:name,createdAt:createdAt,blueprintId:blueprintId,blueprintName:blueprintName,publicIpAddress:publicIpAddress,InstanceID:supportCode}' --output table

---------------------------------------------------------------------------------------------------------------------------------------------------------
|                                                                     GetInstances                                                                      |
+----------------------------------+------------------+----------------+-----------------+------------------------------------------+-------------------+
|            InstanceID            |   blueprintId    | blueprintName  |    createdAt    |                  name                    |  publicIpAddress  |
+----------------------------------+------------------+----------------+-----------------+------------------------------------------+-------------------+
|  11178xxxxxxx/i-09f6xxxx|  wordpress       |  WordPress     |  1602175741.602 |  TestLightsailInstance1                  |  52.210.xx.xx    |
+----------------------------------+------------------+----------------+-----------------+------------------------------------------+-------------------+

相關資訊

如何使用 AWS CLI 命令管理我的快照並為 Lightsail 執行個體建立備份?

如何使用 AWS CLI 命令管理 Lightsail 執行個體上的靜態 IP 地址?

AWS CLI 命令參考

Amazon Lightsail API 參考

在 Amazon Lightsail 中啟用或停用執行個體或磁碟的自動快照

AWS 官方
AWS 官方已更新 3 年前