

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplos do Amazon EC2 usando o AWS SDK para PHP versão 3
<a name="ec2-examples"></a>

O Amazon Elastic Compute Cloud (Amazon EC2) é um serviço Web que fornece hospedagem de servidor virtual na nuvem. Ele foi projetado para facilitar a computação em nuvem em escala da web para desenvolvedores fornecendo capacidade computacional redimensionável.

O código de exemplo completo do AWS SDK para PHP está disponível [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em [Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em [Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

**Topics**
+ [Credenciais](#examplecredentials)
+ [Gerenciar instâncias do Amazon EC2](ec2-examples-managing-instances.md)
+ [Usar endereços IP elásticos](ec2-examples-using-elastic-ip-addresses.md)
+ [Usar regiões e zonas de disponibilidade](ec2-examples-using-regions-and-zones.md)
+ [Trabalhar com pares de chaves](ec2-examples-working-with-key-pairs.md)
+ [Trabalhar com grupos de segurança](ec2-examples-using-security-groups.md)

# Gerenciamento de instâncias do Amazon EC2 usando o AWS SDK para PHP versão 3
<a name="ec2-examples-managing-instances"></a>

Os exemplos a seguir mostram como:
+ Descrever instâncias do Amazon EC2 usando [DescribeInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeinstances).
+ Habilitar o monitoramento detalhado de uma instância em execução usando [MonitorInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#monitorinstances).
+ Desabilitar o monitoramento de uma instância em execução usando [UnmonitorInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#unmonitorinstances).
+ Iniciar uma AMI baseada no Amazon EBS interrompida anteriormente usando [StartInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#startinstances).
+ Interromper uma instância baseada no Amazon EBS usando [StopInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#stopinstances).
+ Solicitar a reinicialização de uma ou mais instâncias usando [RebootInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#rebootinstances).

O código de exemplo completo do AWS SDK para PHP está disponível [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em [Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em [Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

## Descrever instâncias
<a name="describe-instances"></a>

 **Importações** 

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

use Aws\Ec2\Ec2Client;
```

 **Código de exemplo** 

```
$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 e desabilitar o monitoramento
<a name="enable-and-disable-monitoring"></a>

 **Importações** 

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

 **Código de exemplo** 

```
$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 e interromper uma instância do
<a name="start-and-stop-an-instance"></a>

 **Importações** 

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

 **Código de exemplo** 

```
$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);
```

## Reinicializar uma instância
<a name="reboot-an-instance"></a>

 **Importações** 

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

 **Código de exemplo** 

```
$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);
```

# Usando endereços IP elásticos com o Amazon EC2 com AWS SDK para PHP a versão 3
<a name="ec2-examples-using-elastic-ip-addresses"></a>

Um endereço IP elástico é um endereço IP estático projetado para computação em nuvem dinâmica. Um endereço IP elástico está associado ao seu Conta da AWS. Trata-se de um endereço IP público que pode ser acessado na Internet. Se a instância não tiver um endereço IP público, você poderá associar um endereço IP elástico à instância para permitir a comunicação com a Internet.

Os exemplos a seguir mostram como:
+ Descreva uma ou mais de suas instâncias usando [DescribeInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeinstances).
+ Adquira um endereço IP elástico usando [AllocateAddress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#allocateaddress).
+ Associe um endereço IP elástico a uma instância usando [AssociateAddress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#associateaddress).
+ Libere um endereço IP elástico usando [ReleaseAddress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#releaseaddress)o.

Todo o código de exemplo para o AWS SDK para PHP está disponível [aqui em GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas AWS credenciais, conforme descrito em[Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em[Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

## Descrever uma instância
<a name="describe-an-instance"></a>

 **Importações** 

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

use Aws\Ec2\Ec2Client;
```

 **Código de exemplo** 

```
$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";
    }
}
```

## Alocar e associar um endereço
<a name="allocate-and-associate-an-address"></a>

 **Importações** 

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

 **Código de exemplo** 

```
$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 um endereço
<a name="release-an-address"></a>

 **Importações** 

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

 **Código de exemplo** 

```
$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 regiões e zonas de disponibilidade para o Amazon EC2 com o AWS SDK para PHP versão 3
<a name="ec2-examples-using-regions-and-zones"></a>

O Amazon EC2 está hospedado em vários locais no mundo todo. Esses locais são compostos por regiões da AWS e zonas de disponibilidade. Toda região é uma área geográfica distinta com vários locais isolados conhecidos como zonas de disponibilidade. O Amazon EC2 permite alocar instâncias e dados em diversos locais.

Os exemplos a seguir mostram como:
+ Descrever as zonas de disponibilidade que estão disponíveis usando [DescribeAvailabilityZones](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeavailabilityzones).
+ Descreva regiões da AWS que estão disponíveis atualmente usando [DescribeRegions](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeregions).

O código de exemplo completo do AWS SDK para PHP está disponível [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em [Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em [Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

## Descrever zonas de disponibilidade
<a name="describe-availability-zones"></a>

 **Importações** 

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

 **Código de exemplo** 

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

$result = $ec2Client->describeAvailabilityZones();

var_dump($result);
```

## Descrever regiões
<a name="describe-regions"></a>

 **Importações** 

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

 **Código de exemplo** 

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

$result = $ec2Client->describeRegions();

var_dump($result);
```

# Trabalhar com pares de chaves do Amazon EC2 com o AWS SDK para PHP versão 3
<a name="ec2-examples-working-with-key-pairs"></a>

O Amazon EC2 utiliza criptografia de chave pública para criptografar e descriptografar as informações de login. A criptografia de chave pública usa uma chave pública para criptografar dados. Em seguida, o destinatário usa a chave privada para descriptografar os dados. As chaves pública e privada são conhecidas como par de chaves.

Os exemplos a seguir mostram como:
+ Criar um par de chaves RSA de 2.048 bits usando [CreateKeyPair](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#createkeypair).
+ Excluir um determinado par de chaves usando [DeleteKeyPair](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#deletekeypair).
+ Descrever um ou mais pares de chaves usando [DescribeKeyPairs](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describekeypairs).

O código de exemplo completo do AWS SDK para PHP está disponível [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em [Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em [Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

## Criar um par de chaves
<a name="create-a-key-pair"></a>

 **Importações** 

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

 **Código de exemplo** 

```
$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);
```

## Excluir um par de chaves
<a name="delete-a-key-pair"></a>

 **Importações** 

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

 **Código de exemplo** 

```
$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);
```

## Descrever pares de chaves
<a name="describe-key-pairs"></a>

 **Importações** 

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

 **Código de exemplo** 

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

$result = $ec2Client->describeKeyPairs();

var_dump($result);
```

# Como trabalhar com grupos de segurança no Amazon EC2 com o AWS SDK para PHP versão 3
<a name="ec2-examples-using-security-groups"></a>

Um grupo de segurança do Amazon EC2 atua como um firewall virtual que controla o tráfego para uma ou mais instâncias. Você adiciona regras a cada grupo de segurança que permite tráfego de entrada ou de saída das instâncias associadas. É possível modificar as regras de um grupo de segurança a qualquer momento. As novas regras são aplicadas automaticamente para todas as instâncias que estão associados ao grupo de segurança.

Os exemplos a seguir mostram como:
+ Descrever um ou mais grupos de segurança usando [DescribeSecurityGroups](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describesecuritygroups).
+ Adicionar uma regra de entrada a um grupo de segurança usando [AuthorizeSecurityGroupIngress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#authorizesecuritygroupingress).
+ Criar um grupo de segurança usando [CreateSecurityGroup](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#createsecuritygroup).
+ Excluir um grupo de segurança usando [DeleteSecurityGroup](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#deletesecuritygroup).

O código de exemplo completo do AWS SDK para PHP está disponível [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em [Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em [Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

## Descrever grupos de segurança
<a name="describe-security-groups"></a>

 **Importações** 

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

 **Código de exemplo** 

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

$result = $ec2Client->describeSecurityGroups();

var_dump($result);
```

## Adicionar uma regra de entrada
<a name="add-an-ingress-rule"></a>

 **Importações** 

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

 **Código de exemplo** 

```
$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);
```

## Criar um grupo de segurança
<a name="create-a-security-group"></a>

 **Importações** 

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

 **Código de exemplo** 

```
$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';
```

## Exclua um grupo de segurança
<a name="delete-a-security-group"></a>

 **Importações** 

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

 **Código de exemplo** 

```
$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);
```