Las instancias de Amazon EC2 se agrupan en dos familias: estándar y High-CPU. Las instancias estándar tienen relaciones de memoria a CPU adecuadas para la mayoría de las aplicaciones de propósito general; las instancias High-CPU tienen proporcionalmente más recursos de CPU que memoria (RAM) y son adecuadas para aplicaciones que exigen un uso intensivo de cómputo. Al seleccionar los tipos de instancia, quizás quiera usar tipos de instancia menos potentes para sus instancias de servidor web y tipos de instancia más potentes para sus instancias de base de datos. Adicionalmente, quizás quiera ejecutar tipos de instancia CPU para tareas de procesamiento de datos intensivas en CPU.
Una de las ventajas de EC2 es que se paga por hora de instancia, lo que hace conveniente y económico probar el rendimiento de su aplicación en diferentes familias y tipos de instancia. Una buena forma de determinar la familia y el tipo de instancia más adecuados es lanzar instancias de prueba y medir el rendimiento de su aplicación.
![]() |
Tipos de instancia |
|---|---|
Los tipos de instancia se definen como constantes en el código. La columna ocho de la tabla es el nombre de la constante definida |
Tabla 64.10. Tipos de instancia disponibles
| Tipo | CPU | Memoria | Almacenamiento | Plataforma | E/S | Nombre | Nombre de la constante |
|---|---|---|---|---|---|---|---|
Small |
1 unidad de cómputo |
1.7 GB |
160 GB de almacenamiento de instancia (150 GB más 10 GB de partición raíz) |
32 bits |
Moderada |
m1.small |
Zend_Service_Amazon_Ec2_Instance::SMALL |
Large |
4 unidades de cómputo |
7.5 GB |
850 GB de almacenamiento de instancia (2 x 420 GB más 10 GB de partición raíz) |
64 bits |
Alta |
m1.large |
Zend_Service_Amazon_Ec2_Instance::LARGE |
Extra Large |
8 unidades de cómputo |
15 GB |
1,690 GB de almacenamiento de instancia (4 x 420 GB más 10 GB de partición raíz) |
64 bits |
Alta |
m1.xlarge |
Zend_Service_Amazon_Ec2_Instance::XLARGE |
High-CPU Medium |
5 unidades de cómputo |
1.7 GB |
350 GB de almacenamiento de instancia (340 GB más 10 GB de partición raíz) |
32 bits |
Moderada |
c1.medium |
Zend_Service_Amazon_Ec2_Instance::HCPU_MEDIUM
|
High-CPU Extra Large |
20 unidades de cómputo |
7 GB |
1,690 GB de almacenamiento de instancia (4 x 420 GB más 10 GB de partición raíz) |
64 bits |
Alta |
c1.xlarge |
Zend_Service_Amazon_Ec2_Instance::HCPU_XLARGE
|
Esta sección describe los métodos de operación para mantener las instancias de Amazon EC2.
Ejemplo 64.13. Iniciar nuevas instancias Ec2
run lanzará un número especificado de instancias EC2.
run recibe un array de parámetros para iniciar, a continuación
se muestra una tabla con los valores válidos.
Tabla 64.11. Opciones válidas de run
| Nombre | Descripción | Obligatorio |
|---|---|---|
imageId |
ID de la AMI con la que lanzar las instancias. |
Sí |
minCount |
Número mínimo de instancias a lanzar. Por defecto: 1 |
No |
maxCount |
Número máximo de instancias a lanzar. Por defecto: 1 |
No |
keyName |
Nombre del par de claves con el que lanzar las instancias. Si no proporciona una clave, todas las instancias serán inaccesibles. |
No |
securityGroup |
Nombres de los grupos de seguridad con los que asociar las instancias. |
No |
userData |
Los datos de usuario disponibles para las instancias lanzadas. Estos no deben estar codificados en Base64. |
No |
instanceType |
Especifica el tipo de instancia. Por defecto: m1.small |
No |
placement |
Especifica la zona de disponibilidad en la que
lanzar la(s) instancia(s). Por defecto, Amazon
|
No |
kernelId |
El ID del kernel con el que lanzar la instancia. |
No |
ramdiskId |
El ID del disco RAM con el que lanzar la instancia. |
No |
blockDeviceVirtualName |
Especifica el nombre virtual a asignar al nombre de dispositivo correspondiente. Por ejemplo: instancestore0 |
No |
blockDeviceName |
Especifica el dispositivo al que está asignando un nombre virtual. Por ejemplo: sdb |
No |
monitor |
Activar la monitorización de instancia de AWS CloudWatch |
No |
run devolverá información sobre cada instancia
que se está iniciando.
$ec2_instance = new Zend_Service_Amazon_Ec2_Instance('aws_key',
'aws_secret_key');
$return = $ec2_instance->run(array('imageId' => 'ami-509320',
'keyName' => 'myKey',
'securityGroup' => array('web',
'default')));
Ejemplo 64.14. Reiniciar instancias Ec2
reboot reiniciará una o más instancias.
Esta operación es asíncrona; únicamente encola una solicitud para reiniciar la(s) instancia(s) especificada(s). La operación tendrá éxito si las instancias son válidas y pertenecen al usuario. Las solicitudes para reiniciar instancias terminadas se ignoran.
reboot devuelve un booleano TRUE o
FALSE
$ec2_instance = new Zend_Service_Amazon_Ec2_Instance('aws_key',
'aws_secret_key');
$return = $ec2_instance->reboot('instanceId');
Ejemplo 64.15. Terminar instancias Ec2
terminate apaga una o más instancias. Esta
operación es idempotente; si termina una instancia más
de una vez, cada llamada tendrá éxito.
terminate devuelve un booleano TRUE o
FALSE
$ec2_instance = new Zend_Service_Amazon_Ec2_Instance('aws_key',
'aws_secret_key');
$return = $ec2_instance->terminate('instanceId');
![]() |
Instancias terminadas |
|---|---|
Las instancias terminadas seguirán siendo visibles después de la terminación (aproximadamente una hora). |
En esta sección descubrirá cómo obtener información, la salida de consola y ver si una instancia contiene un código de producto.
Ejemplo 64.16. Describir instancias
describe devuelve información sobre las instancias que usted posee.
Si especifica uno o más ID de instancia, Amazon EC2 devuelve información para esas instancias. Si no especifica IDs de instancia, Amazon EC2 devuelve información para todas las instancias relevantes. Si especifica un ID de instancia no válido, se devuelve un error. Si especifica una instancia que no posee, no se incluirá en los resultados devueltos.
describe devolverá un array que contiene información sobre la
instancia.
$ec2_instance = new Zend_Service_Amazon_Ec2_Instance('aws_key',
'aws_secret_key');
$return = $ec2_instance->describe('instanceId');
![]() |
Instancias terminadas |
|---|---|
Las instancias recientemente terminadas podrían aparecer en los resultados devueltos. Este intervalo es
habitualmente inferior a una hora. Si no desea que se devuelvan instancias terminadas,
pase un segundo variable booleana |
Ejemplo 64.17. Describir instancias por Image Id
describeByImageId es funcionalmente igual a describe
pero solo devolverá las instancias que estén usando el imageId proporcionado.
describeByImageId devolverá un array que contiene información sobre las
instancias que se iniciaron con el imageId pasado
$ec2_instance = new Zend_Service_Amazon_Ec2_Instance('aws_key',
'aws_secret_key');
$return = $ec2_instance->describeByImageId('imageId');
![]() |
Instancias terminadas |
|---|---|
Las instancias recientemente terminadas podrían aparecer en los resultados devueltos. Este
intervalo es habitualmente inferior a una hora. Si no desea que se devuelvan
instancias terminadas, pase una segunda variable booleana
|
Ejemplo 64.18. Recuperar la salida de consola
consoleOutput recupera la salida de consola de la
instancia especificada.
La salida de consola de la instancia se almacena en búfer y se publica poco después del arranque, reinicio y terminación de la instancia. Amazon EC2 conserva la salida más reciente de 64 KB, que estará disponible durante al menos una hora tras la publicación más reciente.
consoleOutput devuelve un array que contiene el
instanceId, el timestamp de la última salida
y la output de la consola.
$ec2_instance = new Zend_Service_Amazon_Ec2_Instance('aws_key',
'aws_secret_key');
$return = $ec2_instance->consoleOutput('instanceId');
Ejemplo 64.19. Confirmar el código de producto en una instancia
confirmProduct devuelve TRUE si el código de
producto especificado está asociado a la instancia especificada. La operación devuelve
FALSE si el código de producto no está asociado a la instancia.
La operación confirmProduct solo puede ser ejecutada por el propietario de la
AMI. Esta característica es útil cuando el propietario de una AMI
está ofreciendo soporte y desea verificar si la instancia de un usuario es elegible.
$ec2_instance = new Zend_Service_Amazon_Ec2_Instance('aws_key',
'aws_secret_key');
$return = $ec2_instance->confirmProduct('productCode', 'instanceId');
Ejemplo 64.20. Activar la monitorización de CloudWatch en una o más instancias
monitor devuelve la lista de instancias y su
estado actual de la monitorización de CloudWatch. Si la instancia
no tiene actualmente la monitorización habilitada, se activará.
$ec2_instance = new Zend_Service_Amazon_Ec2_Instance('aws_key',
'aws_secret_key');
$return = $ec2_instance->monitor('instanceId');
Ejemplo 64.21. Desactivar la monitorización de CloudWatch en una o más instancias
monitor devuelve la lista de instancias y su
estado actual de la monitorización de CloudWatch. Si la instancia
tiene actualmente la monitorización habilitada, se desactivará.
$ec2_instance = new Zend_Service_Amazon_Ec2_Instance('aws_key',
'aws_secret_key');
$return = $ec2_instance->unmonitor('instanceId');
![[Nota]](images/note.png)