Остановить и начать работу с эластичными бобамистами

Я хотел знать, есть ли опция STOP Amazon Elastic Beanstalk как атомная единица, как я могу делать с серверами EC2 вместо того, чтобы проходить через каждую службу (например, балансировщик нагрузки, EC2..) и STOP (и START) их независимо друг от друга?

Ответы

Ответ 1

Интерфейс командной строки EB имеет команду eb stop. Здесь немного сказано о том, что делает команда:

Команда eb stop удаляет ресурсы AWS, которые запускают ваше приложение (например, экземпляры ELB и EC2). Однако он оставляет все версии приложений и настройки конфигурации, которые были развернуты, поэтому вы можете быстро начать работу заново. Eb stop идеально подходит, когда вы разрабатываете и тестируете свое приложение и не нуждаетесь в ресурсах AWS, которые работают в течение ночи. Вы можете вернуться снова, просто запустив eb start.

ИЗМЕНИТЬ:

Как указано в следующем комментарии, это уже не команда в новом eb-cli.

Ответ 2

Если у вас есть сбалансированная по нагрузке среда, вы можете попробовать следующий трюк

$ aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name my-auto-scaling-group \
--min-size 0 --max-size 0 --desired-capacity 0

Он удалит все экземпляры из среды, но не удалит окружающую среду. К сожалению, вы по-прежнему будете платить за эластичную балансировку нагрузки. Но обычно EC2 является самой "тяжелой" частью.

Работает ли он на 0?

да, он делает

$ aws autoscaling describe-auto-scaling-groups --region us-east-1 \
--auto-scaling-group-name ASG_NAME \
--query "AutoScalingGroups[].{DesiredCapacity:DesiredCapacity,MinSize:MinSize,MaxSize:MaxSize}"

[
    {
        "MinSize": 2, 
        "MaxSize": 2, 
        "DesiredCapacity": 2
    }
]

$ aws autoscaling update-auto-scaling-group --region us-east-1 \
--auto-scaling-group-name ASG_NAME \
--min-size 0 --max-size 0 --desired-capacity 0

$ aws autoscaling describe-auto-scaling-groups --region us-east-1 \
--auto-scaling-group-name ASG_NAME \
--query "AutoScalingGroups[].{DesiredCapacity:DesiredCapacity,MinSize:MinSize,MaxSize:MaxSize}"

[
    {
        "MinSize": 0, 
        "MaxSize": 0, 
        "DesiredCapacity": 0
    }
]

И затем вы можете проверить статус среды

$ eb status -v
Environment details for: test
  Application name: TEST
  Region: us-east-1
  Deployed Version: app-170925_181953
  Environment ID: e-1234567890
  Platform: arn:aws:elasticbeanstalk:us-east-1::platform/Multi-container Docker running on 64bit Amazon Linux/2.7.4
  Tier: WebServer-Standard
  CNAME: test.us-east-1.elasticbeanstalk.com
  Updated: 2017-09-25 15:23:22.980000+00:00
  Status: Ready
  Health: Grey
  Running instances: 0

В веб-консоли beanstalk вы увидите следующее сообщение

INFO Environment health has transitioned from Ok to No Data. 
There are no instances. Auto Scaling group desired capacity is set to zero.

Ответ 3

eb stop устарел. У меня также была та же проблема, и единственным решением, которое я мог придумать, было создание резервной копии среды, а затем ее восстановление.

Вот сообщение в блоге, в котором я объясняю это: http://pminkov.github.io/blog/how-to-shut-down-and-restore-an-elastic-beanstalk-environment.html