

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.

# Ejemplos de Amazon EC2 utilizando la versión 3 de AWS SDK para PHP
<a name="ec2-examples"></a>

Amazon Elastic Compute Cloud (Amazon EC2) es un servicio web que proporciona hosting de servidores virtuales en la nube. Se ha diseñado para facilitar a los desarrolladores la computación en nube a escala web, proporcionando capacidad de cálculo ajustable.

Todo el código de ejemplo de AWS SDK para PHP está disponible [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Credenciales
<a name="examplecredentials"></a>

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en [Autenticación AWS con la AWS SDK para PHP versión 3](credentials.md). A continuación, importe AWS SDK para PHP, como se indica en [Instalación de la AWS SDK para PHP versión 3](getting-started_installation.md).

**Topics**
+ [Credenciales](#examplecredentials)
+ [Administración de instancias Amazon EC2](ec2-examples-managing-instances.md)
+ [Uso de direcciones IP elásticas](ec2-examples-using-elastic-ip-addresses.md)
+ [Uso de regiones y zonas de disponibilidad](ec2-examples-using-regions-and-zones.md)
+ [Uso de pares de claves](ec2-examples-working-with-key-pairs.md)
+ [Uso de grupos de seguridad](ec2-examples-using-security-groups.md)

# Administración de instancias de Amazon EC2 con la versión 3 de AWS SDK para PHP
<a name="ec2-examples-managing-instances"></a>

Los siguientes ejemplos muestran cómo:
+ Describir instancias EC2 utilizando [DescribeInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeinstances).
+ Habilitar el monitoreo detallado de una instancia en ejecución utilizando [MonitorInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#monitorinstances).
+ Deshabilitar el monitoreo de una instancia en ejecución utilizando [UnmonitorInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#unmonitorinstances).
+ Inicie una AMI basada en Amazon EBS que haya detenido previamente, utilizando [StartInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#startinstances).
+ Detenga una instancia basada en Amazon EBS utilizando [StopInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#stopinstances).
+ Solicitar un reinicio de una o varias instancias utilizando [RebootInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#rebootinstances).

Todo el código de ejemplo de AWS SDK para PHP está disponible [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Credenciales
<a name="examplecredentials"></a>

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en [Autenticación AWS con la AWS SDK para PHP versión 3](credentials.md). A continuación, importe AWS SDK para PHP, como se indica en [Instalación de la AWS SDK para PHP versión 3](getting-started_installation.md).

## Descripción de instancias
<a name="describe-instances"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';

use Aws\Ec2\Ec2Client;
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);
$result = $ec2Client->describeInstances();
echo "Instances: \n";
foreach ($result['Reservations'] as $reservation) {
    foreach ($reservation['Instances'] as $instance) {
        echo "InstanceId: {$instance['InstanceId']} - {$instance['State']['Name']} \n";
    }
}
```

## Habilitar y deshabilitar el monitoreo
<a name="enable-and-disable-monitoring"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$instanceIds = ['InstanceID1', 'InstanceID2'];

$monitorInstance = 'ON';

if ($monitorInstance == 'ON') {
    $result = $ec2Client->monitorInstances([
        'InstanceIds' => $instanceIds
    ]);
} else {
    $result = $ec2Client->unmonitorInstances([
        'InstanceIds' => $instanceIds
    ]);
}

var_dump($result);
```

## Iniciar y detener una instancia
<a name="start-and-stop-an-instance"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$action = 'START';

$instanceIds = ['InstanceID1', 'InstanceID2'];

if ($action == 'START') {
    $result = $ec2Client->startInstances([
        'InstanceIds' => $instanceIds,
    ]);
} else {
    $result = $ec2Client->stopInstances([
        'InstanceIds' => $instanceIds,
    ]);
}

var_dump($result);
```

## Reinicio de una instancia
<a name="reboot-an-instance"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$instanceIds = ['InstanceID1', 'InstanceID2'];

$result = $ec2Client->rebootInstances([
    'InstanceIds' => $instanceIds
]);

var_dump($result);
```

# Uso de direcciones IP elásticas con Amazon EC2 con AWS SDK para PHP la versión 3
<a name="ec2-examples-using-elastic-ip-addresses"></a>

Una dirección IP elástica (EIP) es una dirección IP estática diseñada para la informática en la nube dinámica. Hay una dirección IP elástica asociada a su. Cuenta de AWS Se trata de una dirección IP pública a la que se puede obtener acceso desde Internet. Si la instancia no tiene una dirección IP pública, puede asociar una dirección IP elástica (EIP) a la instancia para permitir la comunicación con Internet.

Los siguientes ejemplos muestran cómo:
+ Describa una o más de sus instancias utilizando [DescribeInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeinstances).
+ Adquiera una dirección IP elástica mediante [AllocateAddress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#allocateaddress).
+ Asocie una dirección IP elástica a una instancia mediante [AssociateAddress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#associateaddress).
+ Libere una dirección IP elástica mediante [ReleaseAddress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#releaseaddress).

Todo el código de ejemplo para el AWS SDK para PHP está disponible [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Credenciales
<a name="examplecredentials"></a>

Antes de ejecutar el código de ejemplo, configure sus AWS credenciales, tal y como se describe en[Autenticación AWS con la AWS SDK para PHP versión 3](credentials.md). A continuación, importe las AWS SDK para PHP, tal y como se describe en[Instalación de la AWS SDK para PHP versión 3](getting-started_installation.md).

## Describir una instancia
<a name="describe-an-instance"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';

use Aws\Ec2\Ec2Client;
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);
$result = $ec2Client->describeInstances();
echo "Instances: \n";
foreach ($result['Reservations'] as $reservation) {
    foreach ($reservation['Instances'] as $instance) {
        echo "InstanceId: {$instance['InstanceId']} - {$instance['State']['Name']} \n";
    }
}
```

## Asignar y asociar una dirección
<a name="allocate-and-associate-an-address"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$instanceId = 'InstanceID';

$allocation = $ec2Client->allocateAddress(array(
    'DryRun' => false,
    'Domain' => 'vpc',
));

$result = $ec2Client->associateAddress(array(
    'DryRun' => false,
    'InstanceId' => $instanceId,
    'AllocationId' => $allocation->get('AllocationId')
));

var_dump($result);
```

## Liberar una dirección
<a name="release-an-address"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$associationID = 'AssociationID';

$allocationID = 'AllocationID';

$result = $ec2Client->disassociateAddress([
    'AssociationId' => $associationID,
]);

$result = $ec2Client->releaseAddress([
    'AllocationId' => $allocationID,
]);

var_dump($result);
```

# Uso de las regiones y las zonas de disponibilidad de con el versión 3
<a name="ec2-examples-using-regions-and-zones"></a>

Amazon EC2 está alojado en varias ubicaciones de todo el mundo. Dichas ubicaciones se componen de regiones de AWS y zonas de disponibilidad. Cada Región es un área geográfica independiente, que tiene varias ubicaciones aisladas conocidas como zonas de disponibilidad. Amazon EC2; ofrece la posibilidad de colocar instancias y datos en varias ubicaciones.

Los siguientes ejemplos muestran cómo:
+ Describir las zonas de disponibilidad que están disponibles utilizando [DescribeAvailabilityZones](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeavailabilityzones).
+ Describir las regiones de AWS que están disponibles actualmente utilizand [DescribeRegions](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeregions).

Todo el código de ejemplo de AWS SDK para PHP está disponible [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Credenciales
<a name="examplecredentials"></a>

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en [Autenticación AWS con la AWS SDK para PHP versión 3](credentials.md). A continuación, importe AWS SDK para PHP, como se indica en [Instalación de la AWS SDK para PHP versión 3](getting-started_installation.md).

## Describir zonas de disponibilidad
<a name="describe-availability-zones"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$result = $ec2Client->describeAvailabilityZones();

var_dump($result);
```

## Describir regiones
<a name="describe-regions"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$result = $ec2Client->describeRegions();

var_dump($result);
```

# Uso de pares de claves de Amazon EC2 utilizando la versión 3 de AWS SDK para PHP
<a name="ec2-examples-working-with-key-pairs"></a>

Amazon EC2 utiliza la criptografía de clave pública para cifrar y descifrar la información de inicio de sesión. En la criptografía de clave pública se utiliza una clave pública para cifrar los datos. A continuación, el destinatario utiliza la clave privada para descifrar los datos. El conjunto de clave pública y clave privada se denomina par de claves.

Los siguientes ejemplos muestran cómo:
+ Crear un par de claves RSA de 2048 bits utilizando [CreateKeyPair](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#createkeypair).
+ Eliminar un par de claves utilizando [DeleteKeyPair](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#deletekeypair).
+ Describir uno o varios pares de claves utilizando [DescribeKeyPairs](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describekeypairs).

Todo el código de ejemplo de AWS SDK para PHP está disponible [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Credenciales
<a name="examplecredentials"></a>

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en [Autenticación AWS con la AWS SDK para PHP versión 3](credentials.md). A continuación, importe AWS SDK para PHP, como se indica en [Instalación de la AWS SDK para PHP versión 3](getting-started_installation.md).

## Crear un par de claves
<a name="create-a-key-pair"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$keyPairName = 'my-keypair';

$result = $ec2Client->createKeyPair(array(
    'KeyName' => $keyPairName
));

// Save the private key
$saveKeyLocation = getenv('HOME') . "/.ssh/{$keyPairName}.pem";
file_put_contents($saveKeyLocation, $result['keyMaterial']);

// Update the key's permissions so it can be used with SSH
chmod($saveKeyLocation, 0600);
```

## Eliminar un par de claves
<a name="delete-a-key-pair"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$keyPairName = 'my-keypair';

$result = $ec2Client->deleteKeyPair(array(
    'KeyName' => $keyPairName
));

var_dump($result);
```

## Describir pares de claves
<a name="describe-key-pairs"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$result = $ec2Client->describeKeyPairs();

var_dump($result);
```

# Uso de los grupos de seguridad en Amazon EC2 utilizando la versión 3 de AWS SDK para PHP
<a name="ec2-examples-using-security-groups"></a>

Un grupo de seguridad de Amazon EC2 funciona como un firewall virtual que controla el tráfico de una o varias instancias. Se añaden reglas a cada grupo de seguridad para permitir el tráfico con sus instancias asociadas. Puede modificar las reglas de un grupo de seguridad en cualquier momento. Las nuevas reglas se aplican automáticamente a todas las instancias asociadas al grupo de seguridad.

Los siguientes ejemplos muestran cómo:
+ Describir uno o varios de los grupos de seguridad utilizando [DescribeSecurityGroups](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describesecuritygroups).
+ Añadir una regla de entrada a un grupo de seguridad utilizando [AuthorizeSecurityGroupIngress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#authorizesecuritygroupingress).
+ Crear un grupo de seguridad utilizando [CreateSecurityGroup](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#createsecuritygroup).
+ Eliminar un grupo de seguridad utilizando [DeleteSecurityGroup](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#deletesecuritygroup).

Todo el código de ejemplo de AWS SDK para PHP está disponible [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Credenciales
<a name="examplecredentials"></a>

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en [Autenticación AWS con la AWS SDK para PHP versión 3](credentials.md). A continuación, importe AWS SDK para PHP, como se indica en [Instalación de la AWS SDK para PHP versión 3](getting-started_installation.md).

## Describir grupos de seguridad
<a name="describe-security-groups"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$result = $ec2Client->describeSecurityGroups();

var_dump($result);
```

## Añadir una regla de entrada
<a name="add-an-ingress-rule"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$result = $ec2Client->authorizeSecurityGroupIngress(array(
    'GroupName' => 'string',
    'SourceSecurityGroupName' => 'string'
));

var_dump($result);
```

## Creación de un grupo de seguridad
<a name="create-a-security-group"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

// Create the security group
$securityGroupName = 'my-security-group';
$result = $ec2Client->createSecurityGroup(array(
    'GroupId' => $securityGroupName,

));

// Get the security group ID (optional)
$securityGroupId = $result->get('GroupId');

echo "Security Group ID: " . $securityGroupId . '\n';
```

## Eliminación de un grupo de seguridad
<a name="delete-a-security-group"></a>

 **Importaciones** 

```
require 'vendor/autoload.php';
```

 **Código de muestra** 

```
$ec2Client = new Aws\Ec2\Ec2Client([
    'region' => 'us-west-2',
    'version' => '2016-11-15',
    'profile' => 'default'
]);

$securityGroupId = 'my-security-group-id';

$result = $ec2Client->deleteSecurityGroup([
    'GroupId' => $securityGroupId
]);

var_dump($result);
```