Я пытаюсь создать способ программно запускать / останавливать мои экземпляры EC2. Это код, который я использую:
<?php
$ec2 = new \Aws\Ec2\Ec2Client([
'credentials' => [
'key' => 'KEY_HERE',
'secret' => 'SECRET_HERE'
],
'region' => env('AWS_REGION', 'us-west-2'),
'version' => 'latest',
'ua_append' => [
'L5MOD/' . AwsServiceProvider::VERSION,
]
]);
$result = $ec2->describeInstanceStatus([
'InstanceIds' => ['i-c21a366e']
]);
?>
Конечно, я использую свои настоящие ключи вместо «KEY_HERE» и «SECRET_HERE».
Я получаю эту ошибку, как вы можете видеть на этом скриншоте:
Хочу отметить, что если я использую сервис S3, все работает нормально. У меня эта проблема только со службой EC2.
Есть идеи, что может быть не так?
Я наконец узнал, что происходит, и я смог это исправить.
Похоже, AWS использует серверные часы для авторизации доступа, и мне нужно было установить службу ntp и обновить ее, чтобы часы были правильно синхронизированы.
Я установил NTP-сервер, запустив:
sudo apt-get install ntp
Затем я обновил службы с помощью этих команд:
sudo service ntp stop
sudo ntpd -gq
sudo service ntp start
И проблема была исправлена.
Других решений пока нет …