Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Lanzar, publicar y cerrar EC2 instancias de Amazon en AWS CLI
Puede usar AWS Command Line Interface (AWS CLI) para lanzar, enumerar y finalizar instancias de Amazon Elastic Compute Cloud (AmazonEC2). Si lanza una instancia que no está incluida en la capa AWS gratuita, se le facturará después del lanzamiento de la instancia y se le cobrará por el tiempo que la instancia esté en ejecución, incluso si permanece inactiva.
nota
Para ver ejemplos de comandos adicionales, consulta la guía de de AWS CLI referencia
Temas
Requisitos previos
Para ejecutar los comandos ec2
en este tema, debe hacer lo siguiente:
Instalar y configurar la AWS CLI. Para obtener más información, consulte Instalación o actualización a la última versión del AWS CLI y Credenciales de autenticación y acceso para el AWS CLI.
-
Configura tus IAM permisos para permitir el EC2 acceso a Amazon. Para obtener más información sobre IAM los permisos de AmazonEC2, consulta IAMlas políticas de Amazon EC2 en la Guía del EC2 usuario de Amazon.
-
Cree un par de claves y un grupo de seguridad.
-
Selecciona una imagen de máquina de Amazon (AMI) y anota el AMI ID. Para obtener más información, consulta Cómo encontrar un producto adecuado AMI en la Guía del EC2 usuario de Amazon.
iniciar la instancia
Para lanzar una EC2 instancia de Amazon con la AMI que seleccionaste, usa el aws ec2
run-instances
comando. Puede lanzar la instancia en una nube privada virtual (VPC).
Al principio, la instancia aparece en el estado pending
, pero cambia al estado running
después de unos minutos.
En el siguiente ejemplo, se muestra cómo lanzar una t2.micro
instancia en la subred especificada de unVPC. Sustituya el italicized
los valores de los parámetros por los suyos propios.
$
aws ec2 run-instances --image-id
ami-xxxxxxxx
--count 1 --instance-type t2.micro --key-nameMyKeyPair
--security-group-idssg-903004f8
--subnet-idsubnet-6e7f829e
{ "OwnerId": "123456789012", "ReservationId": "r-5875ca20", "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "Platform": "windows", "State": { "Code": 0, "Name": "pending" }, "EbsOptimized": false, "LaunchTime": "2013-07-19T02:42:39.000Z", "PrivateIpAddress": "10.0.1.114", "ProductCodes": [], "VpcId": "vpc-1a2b3c4d", "InstanceId": "i-5203422c", "ImageId": "ami-173d747e", "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "KeyName": "MyKeyPair", "SecurityGroups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "ClientToken": null, "SubnetId": "subnet-6e7f829e", "InstanceType": "t2.micro", "NetworkInterfaces": [ { "Status": "in-use", "SourceDestCheck": true, "VpcId": "vpc-1a2b3c4d", "Description": "Primary network interface", "NetworkInterfaceId": "eni-a7edb1c9", "PrivateIpAddresses": [ { "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Primary": true, "PrivateIpAddress": "10.0.1.114" } ], "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Attachment": { "Status": "attached", "DeviceIndex": 0, "DeleteOnTermination": true, "AttachmentId": "eni-attach-52193138", "AttachTime": "2013-07-19T02:42:39.000Z" }, "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "SubnetId": "subnet-6e7f829e", "OwnerId": "123456789012", "PrivateIpAddress": "10.0.1.114" } ], "SourceDestCheck": true, "Placement": { "Tenancy": "default", "GroupName": null, "AvailabilityZone": "us-west-2b" }, "Hypervisor": "xen", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": true, "VolumeId": "vol-877166c8", "AttachTime": "2013-07-19T02:42:39.000Z" } } ], "Architecture": "x86_64", "StateReason": { "Message": "pending", "Code": "pending" }, "RootDeviceName": "/dev/sda1", "VirtualizationType": "hvm", "RootDeviceType": "ebs", "Tags": [ { "Value": "MyInstance", "Key": "Name" } ], "AmiLaunchIndex": 0 } ] }
Agregar un dispositivo de bloques a la instancia
Cada instancia que lance tiene un volumen de dispositivo raíz asociado. Puedes usar el mapeo de dispositivos de bloques para especificar volúmenes adicionales de Amazon Elastic Block Store (AmazonEBS) o volúmenes de almacenes de instancias para adjuntarlos a una instancia cuando se lance.
Para añadir un dispositivo de bloque a la instancia, especifique la opción --block-device-mappings
cuando utilice run-instances
.
El siguiente parámetro de ejemplo proporciona un EBS volumen de Amazon estándar de 20 GB y lo asigna a la instancia mediante el identificador/dev/sdf
.
--block-device-mappings "[{\"DeviceName\":\"
/dev/sdf
\",\"Ebs\":{\"VolumeSize\":20
,\"DeleteOnTermination\":false}}]"
En el siguiente ejemplo, se añade un EBS volumen de Amazon, asignado a/dev/sdf
, en función de una instantánea existente. Una instantánea representa una imagen que se carga en el volumen por usted. Cuando se especifica una instantánea, no es necesario especificar un tamaño de volumen; será lo suficientemente grande como para almacenar la imagen. Sin embargo, si especifica un tamaño, este deberá ser igual o mayor que el tamaño de la instantánea.
--block-device-mappings "[{\"DeviceName\":\"
/dev/sdf
\",\"Ebs\":{\"SnapshotId\":\"snap-a1b2c3d4
\"}}]"
En el siguiente ejemplo se añaden dos volúmenes a la instancia. El número de volúmenes disponibles para su instancia depende del tipo de instancia.
--block-device-mappings "[{\"DeviceName\":\"
/dev/sdf
\",\"VirtualName\":\"ephemeral0
\"},{\"DeviceName\":\"/dev/sdg
\",\"VirtualName\":\"ephemeral1
\"}]"
En el siguiente ejemplo se crea el mapeo (/dev/sdj
), pero no se aprovisiona un volumen para la instancia.
--block-device-mappings "[{\"DeviceName\":\"
/dev/sdj
\",\"NoDevice\":\"\"}]"
Para obtener más información, consulta Block Device Mapping en la Guía del EC2 usuario de Amazon.
Agregar una etiqueta a la instancia
Una etiqueta es una etiqueta que se asigna a un AWS recurso. Le permite añadir metadatos a los recursos que puede utilizar para distintos fines. Para obtener más información, consulta Cómo etiquetar tus recursos en la Guía del EC2 usuario de Amazon.
En el siguiente ejemplo se muestra cómo añadir una etiqueta con el nombre de clave "Name
" y el valor "MyInstance
" a la instancia especificada, mediante el comando aws ec2
create-tags
.
$
aws ec2 create-tags --resources
i-5203422c
--tags Key=Name
,Value=MyInstance
Conéctese a su instancia
Puede conectarse a su instancia mientras se esté ejecutando y utilizarla como si fuera un equipo que tiene delante. Para obtener más información, consulte Connect to Your Amazon EC2 Instance en la Guía del EC2 usuario de Amazon.
Enumerar las instancias
Puede utilizarla AWS CLI para enumerar sus instancias y ver información sobre ellas. Puede incluir todas sus instancias en la lista o filtrar los resultados en función de las instancias que le interesen.
Los siguientes ejemplos muestran cómo utilizar el comando aws ec2
describe-instances
.
El siguiente comando muestra todas sus instancias.
$
aws ec2 describe-instances
El siguiente comando filtra únicamente las instancias t2.micro
de la lista y devuelve únicamente los valores InstanceId
para cada coincidencia.
$
aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
[ "i-05e998023d9c69f9a" ]
El siguiente comando muestra todas las instancias que tienen la etiqueta Name=MyInstance
.
$
aws ec2 describe-instances --filters "Name=tag:
Name
,Values=MyInstance
"
El siguiente comando muestra las instancias que se lanzaron con alguno de los siguientes comandosAMIs: ami-x0123456
ami-y0123456
, yami-z0123456
.
$
aws ec2 describe-instances --filters "Name=image-id,Values=
ami-x0123456
,ami-y0123456
,ami-z0123456
"
Terminar una instancia
Al terminar una instancia, esta se elimina. Una vez se ha terminado la instancia, no es posible volver a conectarse a ella.
En cuanto el estado de la instancia cambie a shutting-down
o a terminated
, dejará de incurrir en costos por ella. Si desea volver a conectarse a una instancia más adelante, utilice stop-instances en lugar de terminate-instances
. Para obtener más información, consulte Finalizar su instancia en la Guía del EC2 usuario de Amazon.
Para eliminar una instancia, utilice el comando aws
ec2 terminate-instances
para eliminarla.
$
aws ec2 terminate-instances --instance-ids
i-5203422c
{ "TerminatingInstances": [ { "InstanceId": "i-5203422c", "CurrentState": { "Code": 32, "Name": "shutting-down" }, "PreviousState": { "Code": 16, "Name": "running" } } ] }
Referencias
AWS CLI referencia:
Otra referencia:
-
Para ver ejemplos de AWS CLI código AWS SDK y contribuir a ellos, consulte el Repositorio AWS de ejemplos de código
en GitHub.