Amazon Elastic Block Store (Amazon EBS) es un nuevo tipo de almacenamiento diseñado específicamente para instancias de Amazon EC2. Amazon EBS le permite crear volúmenes que pueden montarse como dispositivos por las instancias de Amazon EC2. Los volúmenes de Amazon EBS se comportan como dispositivos de bloque externos sin formatear. Tienen nombres de dispositivo asignados por el usuario y ofrecen una interfaz de dispositivo de bloque. Puede cargar un sistema de archivos sobre los volúmenes de Amazon EBS, o utilizarlos tal como usaría cualquier dispositivo de bloque.
Puede crear hasta veinte volúmenes de Amazon EBS de cualquier tamaño (desde un GiB hasta un TiB). Cada volumen de Amazon EBS puede adjuntarse a cualquier instancia de Amazon EC2 en la misma zona de disponibilidad o puede dejarse sin adjuntar.
Amazon EBS ofrece la posibilidad de crear instantáneas (snapshots) de sus volúmenes de Amazon EBS en Amazon S3. Puede utilizar estas instantáneas como punto de partida para nuevos volúmenes de Amazon EBS y proteger sus datos con una durabilidad a largo plazo.
Ejemplo 64.36. Crear un nuevo volumen EBS
Crear un volumen EBS completamente nuevo requiere el tamaño y la zona en la que desea que se encuentre el volumen EBS.
createNewVolume devolverá un array con información
sobre el nuevo volumen que incluye el volumeId, el tamaño, la zona, el estado
y el createTime.
$ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
$return = $ec2_ebs->createNewVolume(40, 'us-east-1a');
Ejemplo 64.37. Crear un volumen EBS a partir de una instantánea
Crear un volumen EBS a partir de una instantánea requiere el snapshot_id y la zona en la que desea que se encuentre el volumen EBS.
createVolumeFromSnapshot devolverá un array con información
sobre el nuevo volumen que incluye el volumeId, el tamaño, la zona, el estado, el
createTime y el snapshotId.
$ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
$return = $ec2_ebs->createVolumeFromSnapshot('snap-78a54011', 'us-east-1a');
Ejemplo 64.38. Crear una instantánea de un volumen EBS
Crear una instantánea de un volumen EBS requiere el volumeId del volumen EBS.
createSnapshot devolverá un array con información sobre la
nueva instantánea del volumen que incluye el snapshotId, el volumeId, el estado, el
startTime y el progreso.
$ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
$return = $ec2_ebs->createSnapshot('volumeId');
Ejemplo 64.39. Describir un volumen EBS
describeVolume le permite obtener información sobre un volumen EBS o un
conjunto de volúmenes EBS. Si no se pasa nada, devolverá todos los volúmenes EBS. Si solo
se necesita describir un volumen EBS, se puede pasar una cadena, mientras que se puede
pasar un array de identificadores de volúmenes EBS para describirlos.
describeVolume devolverá un array con información sobre cada volumen,
que incluye el volumeId, el tamaño, el estado y el createTime. Si el volumen está adjunto
a una instancia, se devolverá un valor adicional attachmentSet. El conjunto de adjuntos
contiene información sobre la instancia a la que está adjunto el volumen EBS,
que incluye volumeId, instanceId, device, status y attachTime.
$ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
$return = $ec2_ebs->describeVolume('volumeId');
Ejemplo 64.40. Describir volúmenes adjuntos
Para devolver una lista de volúmenes EBS actualmente adjuntos a una instancia en ejecución, puede llamar a este método. Solo devolverá volúmenes EBS adjuntos a la instancia con el instanceId indicado.
describeAttachedVolumes devuelve la misma información que
describeVolume, pero solo para los volúmenes EBS que están actualmente
adjuntos al instanceId especificado.
$ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
$return = $ec2_ebs->describeAttachedVolumes('instanceId');
Ejemplo 64.41. Describir una instantánea de un volumen EBS
describeSnapshot le permite obtener información sobre una instantánea
de un volumen EBS o un conjunto de instantáneas de volúmenes EBS. Si no se pasa nada,
devolverá información sobre todas las instantáneas de volúmenes EBS. Si solo se necesita
describir una instantánea de un volumen EBS, se puede pasar su snapshotId, mientras que
se puede pasar un array de identificadores de instantáneas de volúmenes EBS para
describirlas.
describeSnapshot devolverá un array con información sobre cada
instantánea de volumen EBS que incluye el snapshotId, el volumeId, el estado, el
startTime y el progreso.
$ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
$return = $ec2_ebs->describeSnapshot('volumeId');
Ejemplo 64.42. Adjuntar un volumen EBS
attachVolume adjuntará un volumen EBS a una instancia en
ejecución. Para adjuntar un volumen necesita especificar el volumeId, el instanceId y el
device (ej.: /dev/sdh).
attachVolume devolverá un array con información sobre el
estado del adjunto que contiene volumeId, instanceId, device, status y
attachTime
$ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
$return = $ec2_ebs->attachVolume('volumeId', 'instanceid', '/dev/sdh');
Ejemplo 64.43. Desadjuntar un volumen EBS
detachVolume desadjuntará un volumen EBS de una instancia en
ejecución. detachVolume requiere que especifique el volumeId, con el
instanceId opcional y el nombre del device que se pasó al adjuntar el volumen. Si
necesita forzar la desconexión, puede establecer el cuarto parámetro en
TRUE y forzará el desadjunte del volumen.
detachVolume devuelve un array con información de estado sobre
el volumen EBS que incluye volumeId, instanceId, device, status y attachTime.
$ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
$return = $ec2_ebs->detachVolume('volumeId');
![]() |
Desadjunte forzado |
|---|---|
Solo debería forzar un desadjunte si el intento de desadjunte anterior no se produjo de forma limpia (accediendo a una instancia, desmontando el volumen y desadjuntándolo normalmente). Esta opción puede provocar pérdida de datos o un sistema de archivos corrupto. Utilice esta opción únicamente como último recurso para desadjuntar un volumen de una instancia en fallo. La instancia no tendrá oportunidad de vaciar las cachés del sistema de archivos ni sus metadatos. Si utiliza esta opción, deberá realizar los procedimientos de comprobación y reparación del sistema de archivos. |
Ejemplo 64.44. Eliminar un volumen EBS
deleteVolume eliminará un volumen EBS no adjunto.
deleteVolume devolverá un booleano TRUE o
FALSE.
$ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
$return = $ec2_ebs->deleteVolume('volumeId');
Ejemplo 64.45. Eliminar una instantánea de un volumen EBS
deleteSnapshot eliminará una instantánea de un volumen EBS.
deleteSnapshot devuelve un booleano TRUE o
FALSE.
$ec2_ebs = new Zend_Service_Amazon_Ec2_Ebs('aws_key','aws_secret_key');
$return = $ec2_ebs->deleteSnapshot('snapshotId');
![[Note]](images/note.png)