Я пытаюсь найти хороший способ обращения к моему экземпляру базы данных EC2 как внутри, так и за пределами центра обработки данных. Другие экземпляры EC2 должны иметь возможность обращаться к нему, а другим клиентам, таким как pgAdmin, может потребоваться подключение к нему из внешнего мира.
Насколько я понимаю, использование внутренних и внешних имен DNS является устойчивым в долгосрочной перспективе, поскольку каждая перезагрузка приводит к изменениям.
Я подумываю связать эластичный IP-адрес с экземпляром и дать ему запись A (скажем, db1.mydomain.com), которую я затем буду использовать как внутри, так и за пределами центра обработки данных. Остальные экземпляры с той же ролью получат такое же обращение и DNS-запись db2.mydomain.com и т. Д.
Есть ли более чистый и стабильный способ достижения этого результата? Я иду по неправильному пути? Предложения?
Связывание эластичного IP-адреса с экземпляром является как это делается.
Имейте в виду, что если вы не используете VPC, ваш эластичный IP-адрес отключится, если вы остановите экземпляр, и вам придется вручную повторно связать его при перезапуске экземпляра.
Вот стандартные передовые практики для наиболее гибкого, эффективного и экономичного подхода:
Создайте эластичный IP-адрес и свяжите его с экземпляром.
Создайте запись DNS, которая представляет собой CNAME, указывающую на внешнее DNS-имя для эластичного IP-адреса.
Всякий раз, когда вы останавливаете / запускаете экземпляр (или хотите указать имя для нового экземпляра), просто свяжите эластичный IP-адрес с желаемым экземпляром. Обновления DNS не требуются.
Используйте новое DNS-имя как внутри, так и вне EC2.
Когда DNS-имя используется за пределами EC2, оно преобразуется в общедоступный IP-адрес экземпляра (т. Е. Эластичный IP-адрес).
Когда DNS-имя используется внутри EC2 (в том же регионе, что и экземпляр), оно преобразуется в текущий частный IP-адрес экземпляра, с которым связан эластичный IP-адрес.
Это ускоряет и удешевляет ваш внутренний сетевой трафик между экземплярами EC2, обращающимися к серверу. Он также позволяет использовать группы безопасности, чтобы разрешить доступ к определенным портам из других экземпляров EC2.
Я подробно расскажу в этой статье: http://alestic.com/2009/06/ec2-elastic-ip-internal
Если вы используете VPC, вам не нужно повторно связывать эластичный IP-адрес после остановки / запуска, в противном случае все будет работать так же.