

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS SDK for PHP バージョン 3 を使用した Amazon EC2 のコードサンプル
<a name="ec2-examples"></a>

Amazon Elastic Compute Cloud (Amazon EC2) は、クラウド内で仮想サーバーのホスティングを提供するウェブサービスです。規模を変更可能なコンピューティング性能を提供することによって、ウェブスケールのクラウドコンピューティングをデベロッパーが簡単に利用できるように設計されています。

AWS SDK for PHP 用のすべてのサンプルコードは [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code) で入手できます。

## 認証情報
<a name="examplecredentials"></a>

サンプルコードを実行する前に、AWS の認証情報を設定します ([AWS SDK for PHP バージョン 3 AWS を使用した での認証](credentials.md) を参照)。AWS SDK for PHP からのインポート ([AWS SDK for PHP バージョン 3 のインストール](getting-started_installation.md) を参照)。

**Topics**
+ [認証情報](#examplecredentials)
+ [Amazon EC2 インスタンスの管理](ec2-examples-managing-instances.md)
+ [Elastic IP アドレスの使用](ec2-examples-using-elastic-ip-addresses.md)
+ [リージョンとアベイラビリティーゾーンの使用](ec2-examples-using-regions-and-zones.md)
+ [キーペアによる作業](ec2-examples-working-with-key-pairs.md)
+ [セキュリティグループを操作する](ec2-examples-using-security-groups.md)

# AWS SDK for PHP バージョン 3 を使用した Amazon EC2 インスタンスの管理
<a name="ec2-examples-managing-instances"></a>

以下の例では、次の方法を示しています。
+ [DescribeInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeinstances) を使用して Amazon EC2 インスタンスを記述します。
+ [MonitorInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#monitorinstances) を使用して、実行中のインスタンスの詳細モニタリングを有効にします。
+ [UnmonitorInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#unmonitorinstances) を使用して、実行中のインスタンスのモニタリングを無効にします。
+ [StartInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#startinstances) を使用して以前に停止した Amazon EBS-backed AMI を開始します。
+ [StopInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#stopinstances) を使用して Amazon EBS-backed インスタンスを停止します。
+ [RebootInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#rebootinstances) を使用して、1 つ以上のインスタンスの再起動をリクエストします。

AWS SDK for PHP 用のすべてのサンプルコードは [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code) で入手できます。

## 認証情報
<a name="examplecredentials"></a>

サンプルコードを実行する前に、AWS の認証情報を設定します ([AWS SDK for PHP バージョン 3 AWS を使用した での認証](credentials.md) を参照)。AWS SDK for PHP からのインポート ([AWS SDK for PHP バージョン 3 のインストール](getting-started_installation.md) を参照)。

## インスタンスの説明
<a name="describe-instances"></a>

 **インポート**。

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

use Aws\Ec2\Ec2Client;
```

 **サンプルコード** 

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

## モニタリングを有効または無効にする
<a name="enable-and-disable-monitoring"></a>

 **インポート**。

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

 **サンプルコード** 

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

## インスタンスを起動または停止する
<a name="start-and-stop-an-instance"></a>

 **インポート**。

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

 **サンプルコード** 

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

## インスタンスの再起動
<a name="reboot-an-instance"></a>

 **インポート**。

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

 **サンプルコード** 

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

# AWS SDK for PHP バージョン 3 での Amazon EC2 での Elastic IP アドレスの使用
<a name="ec2-examples-using-elastic-ip-addresses"></a>

Elastic IP アドレスは、動的なクラウドコンピューティングのために設計された静的 IP アドレスです。Elastic IP アドレスは に関連付けられています AWS アカウント。これは、インターネットから到達可能なパブリック IP アドレスです。インスタンスにパブリック IP アドレスがない場合は、Elastic IP アドレスをインスタンスに関連付けて、インターネットとの通信を有効にできます。

以下の例では、次の方法を示しています。
+ [DescribeInstances](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeinstances) を使用して、1 つ以上のインスタンスを記述します。
+ [AllocateAddress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#allocateaddress) を使用して、Elastic IP アドレスを取得します。
+ [AssociateAddress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#associateaddress) を使用して、Elastic IP アドレスをインスタンスに関連付けます。
+ [ReleaseAddress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#releaseaddress) を使用して、Elastic IP アドレスを解放します。

のすべてのサンプルコード AWS SDK for PHP は[GitHub で入手できます](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code)。

## 認証情報
<a name="examplecredentials"></a>

サンプルコードを実行する前に、「」の説明に従って AWS 認証情報を設定します[AWS SDK for PHP バージョン 3 AWS を使用した での認証](credentials.md)。次に AWS SDK for PHP、「」の説明に従って をインポートします[AWS SDK for PHP バージョン 3 のインストール](getting-started_installation.md)。

## インスタンスを記述する
<a name="describe-an-instance"></a>

 **インポート** 

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

use Aws\Ec2\Ec2Client;
```

 **サンプルコード** 

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

## アドレスを割り当てて関連付ける
<a name="allocate-and-associate-an-address"></a>

 **インポート** 

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

 **サンプルコード** 

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

## アドレスを解放する
<a name="release-an-address"></a>

 **インポート** 

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

 **サンプルコード** 

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

# AWS SDK for PHP バージョン 3 での Amazon EC2 のリージョンとアベイラビリティーゾーンの使用
<a name="ec2-examples-using-regions-and-zones"></a>

Amazon EC2 は、世界中の複数のロケーションでホスティングされています。これらの場所は、AWS リージョンとアベイラビリティーゾーンで構成されています。各リージョンは地理的に離れた領域です。1 つのリージョンには複数の独立したロケーションがあり、アベイラビリティーゾーンと呼ばれます。Amazon EC2 では、複数のロケーションにインスタンスとデータを配置することができます。

以下の例では、次の方法を示しています。
+ [DescribeAvailabilityZones](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeavailabilityzones) を使用して、ユーザーが利用可能なアベイラビリティーゾーンを記述します。
+ [DescribeRegions](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describeregions) を使用して、ユーザーが現在利用可能な AWS リージョンを記述します。

AWS SDK for PHP 用のすべてのサンプルコードは [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code) で入手できます。

## 認証情報
<a name="examplecredentials"></a>

サンプルコードを実行する前に、AWS の認証情報を設定します ([AWS SDK for PHP バージョン 3 AWS を使用した での認証](credentials.md) を参照)。AWS SDK for PHP からのインポート ([AWS SDK for PHP バージョン 3 のインストール](getting-started_installation.md) を参照)。

## アベイラビリティーゾーンの詳細を表示する
<a name="describe-availability-zones"></a>

 **インポート**。

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

 **サンプルコード** 

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

$result = $ec2Client->describeAvailabilityZones();

var_dump($result);
```

## リージョンの詳細を表示する
<a name="describe-regions"></a>

 **インポート**。

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

 **サンプルコード** 

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

$result = $ec2Client->describeRegions();

var_dump($result);
```

# AWS SDK for PHP バージョン 3 を使用した Amazon EC2 キーペアでの作業
<a name="ec2-examples-working-with-key-pairs"></a>

Amazon EC2 は公開キー暗号化を使用し、ログイン情報の暗号化と復号を行います。パブリックキー暗号は、パブリックキーを使用してデータを暗号化します。次に、受取人はプライベートキーを使用してデータを復号化します。パブリックキーとプライベートキーは、キーペアと呼ばれます。

以下の例では、次の方法を示しています。
+ [CreateKeyPair](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#createkeypair) を使用した 2048 ビットの RSA キーペアの作成。
+ [DeleteKeyPair](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#deletekeypair) を使用した、指定キーペアの削除。
+ [DescribeKeyPairs](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describekeypairs) を使用した 1 つ以上のキーペアの記述。

AWS SDK for PHP 用のすべてのサンプルコードは [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code) で入手できます。

## 認証情報
<a name="examplecredentials"></a>

サンプルコードを実行する前に、AWS の認証情報を設定します ([AWS SDK for PHP バージョン 3 AWS を使用した での認証](credentials.md) を参照)。AWS SDK for PHP からのインポート ([AWS SDK for PHP バージョン 3 のインストール](getting-started_installation.md) を参照)。

## キーペアを作成する
<a name="create-a-key-pair"></a>

 **インポート**。

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

 **サンプルコード** 

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

## キーペアの削除
<a name="delete-a-key-pair"></a>

 **インポート**。

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

 **サンプルコード** 

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

## キーペアの記述
<a name="describe-key-pairs"></a>

 **インポート**。

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

 **サンプルコード** 

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

$result = $ec2Client->describeKeyPairs();

var_dump($result);
```

# AWS SDK for PHP バージョン 3 を使用した Amazon EC2 のセキュリティグループでの作業
<a name="ec2-examples-using-security-groups"></a>

Amazon EC2 セキュリティグループは、1 つ以上のインスタンスのトラフィックを制御する仮想ファイアウォールとして機能します。各セキュリティグループに対してルールを追加し、関連付けられたインスタンスに対するトラフィックを許可します。セキュリティグループのルールはいつでも変更できます。新しいルールは、セキュリティグループに関連付けられたすべてのインスタンスに自動的に適用されます。

以下の例では、次の方法を示しています。
+ [DescribeSecurityGroups](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#describesecuritygroups) を使用して、1 つ以上のセキュリティグループを記述します。
+ [AuthorizeSecurityGroupIngress](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#authorizesecuritygroupingress) を使用して、セキュリティグループに進入ルールを追加します。
+ [CreateSecurityGroup](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#createsecuritygroup) を使用して、セキュリティグループを作成します。
+ [DeleteSecurityGroup](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#deletesecuritygroup) を使用して、セキュリティグループを削除します。

AWS SDK for PHP 用のすべてのサンプルコードは [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code) で入手できます。

## 認証情報
<a name="examplecredentials"></a>

サンプルコードを実行する前に、AWS の認証情報を設定します ([AWS SDK for PHP バージョン 3 AWS を使用した での認証](credentials.md) を参照)。AWS SDK for PHP からのインポート ([AWS SDK for PHP バージョン 3 のインストール](getting-started_installation.md) を参照)。

## セキュリティグループを記述する
<a name="describe-security-groups"></a>

 **インポート**。

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

 **サンプルコード** 

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

$result = $ec2Client->describeSecurityGroups();

var_dump($result);
```

## 進入ルールを追加する
<a name="add-an-ingress-rule"></a>

 **インポート**。

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

 **サンプルコード** 

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

## セキュリティグループの作成
<a name="create-a-security-group"></a>

 **インポート**。

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

 **サンプルコード** 

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

## セキュリティグループを削除する
<a name="delete-a-security-group"></a>

 **インポート**。

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

 **サンプルコード** 

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