Uso de Amazon Lightsail con AWS CLI
Este tutorial describe las operaciones comunes de Amazon Lightsail y cómo realizarlas mediante AWS Command Line Interface (AWS CLI). Aprenderá a crear y administrar recursos de Lightsail, incluidos pares de claves, instancias, almacenamiento e instantáneas.
Temas
Requisitos previos
Antes de comenzar este tutorial, asegúrese de tener lo siguiente:
-
la , AWS CLI. Si necesita instalarla, siga la guía de instalación de la AWS CLI. También puede utilizar AWS CloudShell, que incluye AWS CLI
-
La AWS CLI debe estar configurada con las credenciales apropiadas. Si aún no ha configurado sus credenciales, ejecute
aws configure. -
Conocimientos básicos de interfaces de línea de comandos y conceptos de SSH.
-
Permisos suficientes para crear y administrar recursos de Lightsail en la cuenta de AWS.
Si aún no lo ha hecho, configure la variable de entorno de AWS_REGION para que coincida con la misma región que configuró en AWS CLI antes de comenzar. Esta variable de entorno se utiliza en los comandos de ejemplo para especificar una zona de disponibilidad para los recursos de Lightsail.
$[ -z "${AWS_REGION}" ] && export AWS_REGION=$(aws configure get region)
Comencemos con la creación y administración de recursos de Amazon Lightsail mediante la CLI.
Generación de pares de claves SSH
Los pares de claves SSH permiten conectarse de forma segura a las instancias de Lightsail sin usar contraseñas. En esta sección, creará un nuevo par de claves y obtendrá su información.
ejemplo – Creación de un nuevo par de claves
El siguiente comando crea un nuevo par de claves SSH llamado “cli-tutorial-keys” y guarda la clave privada en la máquina local.
$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
Después de ejecutar este comando, la clave privada se guarda en el directorio de ~/.ssh con los permisos adecuados. El comando chmod garantiza que solo usted pueda leer el archivo de la clave privada, lo cual es un requisito de seguridad para SSH.
ejemplo – Obtención de información del par de claves
Para verificar que el par de claves se haya creado correctamente, obtenga su información.
$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" } }
El resultado muestra detalles del par de claves, incluidos su nombre, ARN, hora de creación, región y huella digital. Esta huella digital se puede usar para verificar la autenticidad de la clave al conectarse a instancias.
Creación y administración de instancias
Las instancias de Lightsail son servidores privados virtuales que ejecutan aplicaciones o sitios web. En esta sección, creará una instancia de WordPress y obtendrá sus detalles.
ejemplo – Creación de una instancia de WordPress
El siguiente comando crea una nueva instancia de WordPress con el paquete de nano_3_0 (el tamaño de instancia de Lightsail más pequeño) y la asocia al par de claves. El comando usa la variable de entorno de AWS_REGION para crear la instancia en una zona de disponibilidad dentro de la región que configuró.
$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 } ] }
La respuesta indica que se ha iniciado la operación de creación de la instancia. Es posible que la instancia tarde unos minutos en estar disponible.
ejemplo – Obtención de detalles de la instancia
Una vez creada la instancia, puede obtener sus detalles mediante el siguiente comando.
$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": "192.0.2.1", "ipv6Addresses": [ "2001:db8:85a3:0000:0000:8a2e:0370:7334" ], "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" } } }
El resultado proporciona información completa de la instancia, incluidas sus direcciones IP, especificaciones de hardware, configuración de red y estado. Anote la dirección IP pública y el nombre de usuario, ya que los necesitará para conectarse a la instancia.
Conéctese a su instancia
Después de crear la instancia, puede conectarse a esta mediante SSH con el par de claves que creó anteriormente. Esta sección muestra cómo establecer una conexión SSH y administrar la configuración de seguridad.
ejemplo – Conexión mediante SSH a la instancia
Use el siguiente comando para conectarse a la instancia mediante SSH. Para ello, sustituya la dirección IP por la IP pública de la instancia.
$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/1000192.0.2.1
Una vez conectado, puede administrar la instalación de WordPress, configurar el servidor o instalar software adicional. El ejemplo anterior muestra el uso de disco en la instancia mediante el comando df.
ejemplo – Cierre de los puertos públicos
Cuando no utilice SSH, puede cerrar los puertos públicos de la instancia. Esto ayuda a proteger la instancia frente a intentos de acceso no autorizado.
$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 } }
nota
Cerrar el puerto 22 impide todas las conexiones SSH, incluidas las iniciadas desde la consola de Lightsail. Para obtener más información, consulte los siguientes temas.
La respuesta confirma que el puerto 22 se ha cerrado correctamente. Cuando necesite volver a conectarse mediante SSH, puede reabrir el puerto con el comando de open-instance-public-ports.
Cómo agregar almacenamiento a la instancia
A medida que la aplicación crece, es posible que necesite espacio de almacenamiento adicional. Lightsail permite crear y asociar discos adicionales a las instancias. Esta sección muestra cómo agregar almacenamiento adicional.
ejemplo – Creación de un disco
El siguiente comando crea un nuevo disco de 32 GB.
$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 } ] }
La respuesta indica que se ha iniciado la operación de creación del disco. Es posible que el disco tarde unos minutos en estar disponible.
ejemplo – Asociación del disco a la instancia
Una vez creado el disco, puede asociarlo a la instancia mediante el siguiente comando.
$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 } ] }
El parámetro disk-path especifica la ubicación en la que el disco se asociará dentro del sistema de archivos de Linux. Después de asociar el disco, deberá formatearlo y montarlo desde la propia instancia.
ejemplo – Verificación de la asociación del disco
Para confirmar que el disco se haya asociado correctamente, obtenga sus detalles.
$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" } }
El resultado confirma que el disco está asociado a la instancia. El campo “estado” muestra el valor “in-use” e “isAttached” aparece establecido en verdadero, lo que indica que la asociación se completó correctamente.
Creación y uso de instantáneas
Las instantáneas proporcionan un método para realizar copias de seguridad de la instancia y crear nuevas instancias a partir de dichas copias. Esto resulta útil para la recuperación ante desastres, las pruebas o la creación de entornos duplicados.
ejemplo – Creación de una instantánea de la instancia
El siguiente comando crea una instantánea de la instancia.
$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 } ] }
La respuesta indica que el proceso de creación de la instantánea se ha iniciado. Existen dos operaciones asincrónicas: una para la creación de la instantánea de la instancia y otra para la creación de la propia instantánea. La instantánea incluye todos los discos asociados a la instancia.
ejemplo – Creación de una nueva instancia a partir de una instantánea
Una vez que la instantánea se completa, puede usarla para crear una nueva instancia.
$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 } ] }
Este comando crea una nueva instancia denominada cli-tutorial-bup en la zona de disponibilidad us-east-2b mediante el tamaño de paquete small_3_0. Tenga en cuenta que puede elegir un tamaño de paquete diferente para la nueva instancia, lo cual resulta útil para escalar o desescalar verticalmente.
Eliminar recursos
Cuando finalice el uso de los recursos de Lightsail, debe eliminarlos para evitar cargos adicionales. Esta sección muestra cómo limpiar todos los recursos creados en este tutorial.
ejemplo – Eliminación de una instantánea de la instancia
Para eliminar una instantánea que ya no necesita, utilice el siguiente comando.
$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 } ] }
La respuesta confirma que la operación de eliminación de la instantánea se completó correctamente.
ejemplo – Eliminación de una instancia
Para eliminar una instancia, utilice el siguiente comando.
$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 } ] }
Recuerde eliminar todas las instancias que creó, incluidas las instancias creadas a partir de instantáneas.
ejemplo – Eliminación de un disco
Para eliminar un disco que ya no necesita, utilice el siguiente comando.
$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 } ] }
Si el disco está asociado a una instancia, primero debe desasociarlo mediante el comando detach-disk.
ejemplo – Eliminación de un par de claves
Por último, elimine el par de claves que creó al inicio de este tutorial.
$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 } }
Este comando elimina únicamente el par de claves de AWS. Ahora, también puede eliminar la copia local.
$rm ~/.ssh/cli-tutorial-keys.pem
Pasos a seguir a continuación
Ahora que conoce los conceptos básicos para administrar recursos de Lightsail mediante AWS CLI, explore otras características de Lightsail.
-
Dominios: asigne un nombre de dominio a la aplicación.
-
Equilibradores de carga: enrutar el tráfico a varias instancias para aumentar la capacidad y la resiliencia.
-
Instantáneas automáticas: realizar copias de seguridad de los datos de la aplicación automáticamente.
-
Métricas: supervise el estado de los recursos, reciba notificaciones y configure alarmas.
-
Bases de datos: conecte la aplicación a una base de datos relacional.
Para obtener más información sobre los comandos de la AWS CLI disponibles, consulte la Referencia de comandos de la AWS CLI para Lightsail.