必要環境の確認
SDKのインストール
クレデンシャルの作成
は割愛
デプロイツールでよくあるEC2のRoleを元にデプロイ先のIPを取得する感じです。
require_once(realpath(__DIR__ ."/../vendor/autoload.php")); // 別の階層で利用するので
use Aws\Ec2\Ec2Client;
$keys = array(
'key' => '**********************',
'secret' => '*********************************',
);
$config = array(
'credentials' => $keys,
'region' => 'ap-northeast-1',
'version' => 'latest',
);
$ec2 = new Ec2Client($config);
$instances = $ec2->describeInstances(array(
'Filters' => array(
array(
'Name' => 'instance-state-name','Values' => array('running'),
),
),
));
$role = 'app'; // 探したいRole
$hosts = array();
$reservations = $instances['Reservations'];
foreach ($reservations as $reservation) {
$instances = $reservation['Instances'];
foreach ($instances as $instance) {
foreach ($instance['Tags'] as $tag) {
if ($tag['Key'] === 'Role') {
if ($tag['Value'] === $role) {
$hosts[] = $instance['PrivateIpAddress'];
break;
}
}
}
}
}
var_dump($hosts);