В конце концов, я застрял на многих этапах , официальной документации почему-то не хватает, поэтому я решил документировать свои выводы:
Чтобы перевести экземпляр в спящий режим, он долженбыть типа C3, C4, C5, M3, M4, M5, R3, R4 или R5 .Кроме того, это должен быть Amazon Linux 1 AMI (это может быть устаревшим, см. здесь для получения обновленного списка).Я начал с Linux 2 AMI и не получил никакого предупреждения, пока он просто не работал в конце (показывал только Suspend key pressed.
, Requested operation not supported, ignoring.
в / var / log / messages), даже их предлагаемые шагидля включения гибернации не работал, так как ec2-hibinit-agent
не является доступным пакетом в Amazon Linux 2.
Гибернация требует, чтобы загрузочный том был зашифрован.Для этого необходимо зашифровать AWS Linux 1 AMI перед запуском мастера запуска :
- создать ключ KMS с помощью консоли AWS
- найдите ami id, если в вашем регионе AWS Linux 1 (не 2!), например, с помощью мастера запуска ec2.В моем случае (eu-central-1) это было
ami-0cfbf4f6db41068ac
- создать свой собственный, зашифрованный ami (замените
eu-central-1
, ami
и kms
ключ своим собственным
aws ec2 copy-image --source-region eu-central-1 --source-image-id ami-0cfbf4f6db41068ac \
--region eu-central-1 --name "LinuxAMIEncrypted" --encrypted \
--kms-key-id arn:aws:kms:eu-central-1:123412341234:key/aaaaaaaa-1234-abce-abcd-1234abcdef01
Подождите несколько минут, пока не увидите новый AMI, отображаемый в EC2 -> AMI
- С
AMIs
(в консоли AWS EC2)запустите ваш новый AMI - выберите C3, C4, C5, M3, M4, M5, R3, R4 или R5
- нажмите
Enable hibernation as an additional stop behavior
Чтобы проверить его:
- запустите
tail -f /var/log/messages
на экземпляре ec2 для проверки ошибок - запустите
aws ec2 stop-instances --instance-ids "i-…" --hibernate
для перехода в спящий режим через терминал или, альтернативно, через консоль aws
Кроме того, я видел эту ошибку в /var/log/messages
:
Agent hibernate - AccessDeniedException: User: arn:… is not authorized to perform: ssm:UpdateInstanceInformation on resource: ssm:UpdateInstanceInformation
. Мне нужно было присоединить AmazonEC2RoleforSSM
и AmazonSSMAutomationRole
, чтобы эти ошибки исчезли.