Comment gérer mon instance Lightsail à l'aide des commandes AWS CLI ?

Dernière mise à jour : 11-01-2021

Comment gérer mes instances Amazon Lightsail à l'aide des commandes de l'interface AWS CLI (AWS Command Line Interface) version 1 ?

Brève description

Pour obtenir la liste des commandes AWS CLI pour Amazon Lightsail, consultez Document de référence sur les commandes AWS CLI et Document de référence sur l'API Amazon Lightsail.

Vous trouverez ci-dessous des scénarios courants d'utilisation des commandes AWS CLI avec vos instances Lightsail :

  • Liste des offres et plans Lightsail disponibles dans une région.
  • Création d'une instance Lightsail à l'aide d'une offre et d'un plan spécifiques.
  • Liste des instances Lightsail disponibles dans une région particulière.
  • Attribution d'une adresse IP statique pour l'associer à l'instance, puis vérification de celle-ci.

Remarque : gardez ce qui suit à l'esprit lorsque vous utilisez les commandes AWS CLI :

macOS :

Supprimez le point décimal de l'horodatage et tous les chiffres situés à droite du point décimal, puis exécutez la commande suivante :

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

Linux :

Exécutez la commande suivante :

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

Windows :

Convertissez l'horodatage à l'aide d'un convertisseur comme epochconverter.com.

Solution

Liste des offres et plans Lightsail disponibles dans une région

Exécutez la commande get-bundles pour afficher la liste de toutes les offres disponibles à l'achat dans votre région. Dans la commande suivante, remplacez eu-west-1 par votre région :

# 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             |
+-----------------+-----------+---------------+---------------+--------+---------------+----------------------+

Exécutez la commande get-blueprints pour afficher la liste des images ou plans disponibles dans votre région. Vous pouvez ensuite choisir de créer une nouvelle instance à l'aide des images disponibles. Dans la commande suivante, remplacez eu-west-1 par votre région :

# 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   |
+--------------------------------------+-----------------------+--------------------------------+-------------+-----------------------------------------------------+

Exemple :

La commande suivante filtre les plans intégrant le système d'exploitation Linux/Unix Platform :

# 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             |
+-----------------+------------------------+

Création d'une instance Lightsail à l'aide d'une offre et d'un plan spécifiques

1.    Exécutez la commande suivante pour obtenir un plan. L'exemple de commande suivant permet d'obtenir un plan WordPress. Remplacez eu-west-1 par votre région et les informations WordPress par les informations relatives au plan de votre choix.

# 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.    Exécutez la commande create-instances pour créer des instances Amazon Lightsail. L'exemple suivant crée une instance Amazon Lightsail dans la région eu-west-1 avec un plan WordPress et l'offre micro_2_0. Remplacez --instance-names, blueprint-id, bundle-id et --region par les valeurs correspondant à votre requête.

# 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
        }
    ]
}

Pour créer plusieurs instances à l'aide d'un seul appel d'API, spécifiez --instance-names {"LightsailInstance1","LightsailInstance2"}. L'exemple suivant crée deux instances Lightsail dans la région eu-west-1 avec un plan WordPress et l'offre micro_2_0.

# 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
        }
    ]
}

Liste des instances Lightsail disponibles dans une région

Exécutez la commande get-instances pour afficher les instances Lightsail disponibles dans une région spécifique. L'exemple suivant affiche toutes les instances Lightsail de la région eu-west-1. Remplacez --region par les valeurs correspondant à votre requête.

# 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 
+-----------------+----------------+-----------------+------------------------------------------+-------------------+

Attribution d'une adresse IP statique pour l'associer à l'instance Lightsail créée, puis vérification de celle-ci.

Remarque : la commande create-instances crée une instance Lightsail à laquelle une adresse IP publique est attribuée. Contrairement à une adresse IP publique que vous pouvez attribuer et réattribuer à une instance ou à une autre ressource, les adresses IP statiques sont fixes. Si vous n'avez pas créé d'adresse IP statique pour votre instance, Lightsail en attribue une nouvelle chaque fois que vous arrêtez ou redémarrez l'instance.

1.    Exécutez la commande allocate-static-ip pour attribuer une adresse publique fixe. L'exemple suivant illustre l'attribution d'une adresse IP statique nommée StaticipForTestLightsailInstance1 dans la région eu-west-1. Remplacez les valeurs --static-ip-name et --region par les valeurs correspondant à votre requête.

# 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.    Exécutez la commande get-static-ip pour afficher la valeur des adresses IP statiques attribuées. L'exemple suivant illustre l'attribution d'une adresse IP statique 52.210.xx.xx nommée StaticipForTestLightsailInstance1 dans la région eu-west-1. Remplacez les valeurs --static-ip-name et --region par les valeurs correspondant à votre requête.

# 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.    Exécutez la commande attach-static-ip pour attribuer une adresse IP statique à votre instance Lightsail. L'exemple suivant illustre l'attribution d'une adresse IP statique 52.210.xx.xx nommée StaticipForTestLightsailInstance1 à l'instance nommée TestLightsailInstance1 dans la région eu-west-1. Remplacez --static-ip-name, --instance-name et --region par les valeurs correspondant à votre requête.

# 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.    Exécutez la commande get-instances pour vérifier que l'adresse IP statique est bien associée à votre instance 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    |
+----------------------------------+------------------+----------------+-----------------+------------------------------------------+-------------------+