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