Подключите том EBS к AutoScalingGroup - PullRequest
2 голосов
/ 28 марта 2020

Мне нужно настроить экземпляр EC2 и подключить существующий том EBS через CloudFormation.

В настоящее время существует группа AutoScalingGroup для экземпляра EC2 с minsize=1 и maxsize=1. Я не могу подключить том EBS к LaunchConfiguration для AutoScalingGroup. Причина в том, что я не могу найти опцию, похожую на AWS :: EC2 :: VolumeAttachment.

Вопросы:

  • Имеет ли смысл текущая настройка с min и max 1? Целью является автоматическое воссоздание виртуальной машины при сбое. Есть ли лучший способ?
  • Можно ли подключить том EBS к экземпляру с CloudFormation с текущей настройкой AutoScaling?

Ответы [ 3 ]

3 голосов
/ 01 апреля 2020

Что касается вашего второго вопроса,

Я думаю, было бы намного проще сделать это с помощью пользовательских данных. мы не нашли опцию вложения тома для конфигурации запуска.

Таким образом, в пользовательских данных вы можете извлечь идентификатор экземпляра, используя следующую команду:

$ instanceId = Invoke-WebRequest -Uri http://169.254.169.254/latest/meta-data/instance-id

Затем вы можете использовать команду AWS CLI для подключения тома EBS.

Пример команды:

aws ec2 attach-volume - volume-id vol-1234567890abcdef0 --instance-id i-01474ef662b89480 --device / dev / sdf

Что касается журнала отладки, вы всегда можете настроить журнал выполнения пользовательских данных или перенаправить вывод команды в какой-либо файл для получения отладочная информация.

2 голосов
/ 28 марта 2020

Похоже, вы sh присоедините существующий том Amazon EBS к экземпляру Amazon EC2, который запускается с помощью автоматического масштабирования.

Обычной практикой является использование автоматического масштабирования с минимальным / максимальным значением 1 Это гарантирует, что экземпляр работает даже в случае сбоя или в случае сбоя зоны доступности.

Однако я не думаю, что вы найдете вариант автоматического масштабирования или CloudFormation для подключения существующего тома Amazon EBS. Группа автоматического масштабирования используется для запуска множества идентичных экземпляров для горизонтального масштабирования. У них будут свои собственные тома EBS, но они не будут «совместно использовать» том EBS.

Вместо того, чтобы пытаться подключить его через конфигурацию автоматического масштабирования / CloudFormation, вы можете использовать сценарий пользовательских данных , который запускается при запуске экземпляра. Он может использовать CLI AWS для подключения тома к себе. Сценарию потребуется извлечь InstanceId экземпляра через метаданные, а затем передать его вызову вложения.

1 голос
/ 28 марта 2020

Вы говорите: «Я не могу подключить том EBS к LaunchConfiguration», но не говорите, почему. Поэтому я не уверен, что вы говорите, что не можете заставить экземпляры EC2 подготовить и смонтировать том EBS, или вы говорите, что уже пытались создать LaunchConfiguration для AutoScalingGroup, но это не сработало. Я предполагаю, что первое, но если это было последним, пожалуйста, предоставьте сообщение об ошибке или некоторые журналы отладки, чтобы мы могли устранить его, поскольку это - способ достижения sh ваших целей. Кроме того, вы должны знать, что по возможности лучше использовать LaunchTemplate вместо конфигурации LaunchConfiguration.

Вам необходимо создать запись CloudFormation для LaunchTemplate, которая задает BlockDeviceMapping . В пределах которого вы будете ссылаться на ARN вашего тома EBS. По-видимому, вы также создали с CloudFormation.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...