В настоящее время я пытаюсь найти подходящую конфигурацию для обеспечения высокой доступности хоста Bastion. Я хочу достичь следующих целей:
Моя текущая настройка выглядит следующим образом: хост Bastion в группе автоматического масштабирования в двух зонах доступности, ELB перед группой автоматического масштабирования.
Эта установка имеет несколько преимуществ:
Также у него есть недостатки:
Другое очевидное решение - использовать ElasticIP, который, на мой взгляд, имеет несколько недостатков:
Каковы лучшие практики для экземпляров SSH с высокой доступностью, то есть хостов-бастионов?
Похоже, что требуется обеспечить функциональность бастиона по минимально разумной цене с RTO, скажем, 5 минут. Нет RPO, поскольку это фактически прокси без сохранения состояния, который можно легко перестроить.
У меня был бы хост-бастион, определяемый либо как сценарий AMI, либо как CloudFormation (AMI быстрее), внутри группы автомасштабирования с минимальным / максимальным / целевым значением, установленным на 1. У меня не было бы балансировщика нагрузки, поскольку в этом нет необходимости насколько я вижу. Этот экземпляр будет зарегистрирован в Route53 с именем общедоступного домена, поэтому, даже если экземпляр изменится, вы сможете получить к нему доступ, и это должно устранить предупреждения SSH. Я мог бы начать с одного экземпляра в каждой подсети, но, вероятно, отключил бы один, если они достаточно надежны - они должны быть.
Развертывание хостов-бастионов CloudFormation описано Amazon Вот. У Amazon есть руководство по передовой практике Вот. Вы не должны обращаться к внутренним ресурсам, используя их эластичный IP-адрес, поскольку это общедоступные IP-адреса и трафик к ним платный, тогда как частный IP-трафик не взимается. Доменные имена дешевле. Это может потребовать некоторой настройки скрипта CloudFormation.