Каковы некоторые шаблоны и антишаблоны для развертывания зеркальных сред в AWS (или других поставщиках облачных услуг)?

Каковы некоторые шаблоны и антишаблоны для развертывания зеркальных сред в AWS (или других поставщиках облачных услуг)?

Я ищу несколько хороших шаблонов и антишаблонов для развертывания зеркальных сред (для простоты предположим, что это EC2 Instance, RDS и S3 bucket, что является довольно распространенной настройкой). Допустим, нам нужно сделать это сотни или даже тысячи раз. Я обдумывал некоторые идеи, например

  • Несколько учетных записей - Одна цель - Использовать все регионы

    • Мы развертываем один экземпляр VPC на регион и развертываем наш набор сервисов в этом регионе.
    • Хорошо, гарантирует изоляцию и отсутствие noisy neighbors, модули TF или шаблоны CloudFormation не будут сложными
    • Плохо, чертов кошмар для менеджмента
  • Единый счет - многоцелевой

    • Мы разделяем наш VPC на несколько подсетей и развертываем ресурсы для каждой группы подсетей.
    • Хорошо, проще в управлении, больше за меньшие деньги
    • Плохо, вы ограничены 20 подсетями на регион (16 регионов * 20), возможны шумные соседи, сетевое взаимодействие может превратиться в спагетти

Я ищу другие способы сделать это и почему они будут плохими (технический долг, невозможность поддержки) или хорошими (легко повторное использование и т. д.)

Бесконечно благодарен

решение1

Итак, несколько общих моментов, которые стоит сказать по этой довольно сложной теме: все во многом зависит от того, чего вы на самом деле пытаетесь достичь.

У вас есть три варианта:

  1. Один VPC — один набор больших подсетей — в вашем примере это будет 4 — 2 «публичные» подсети и 2 «частные» подсети. Затем используйте группы безопасности для изоляции «развертываний» — я не вижу никакой выгоды в использовании подсетей для разделения, кроме необходимости управлять пространством IP-адресов и множеством подсетей. В конечном счете, единственное различие между подсетями обычно заключается в следующем: AZ/route-table/nacl/dhcp-options — используйте новую подсеть только в случае изменения одного из них. Подсеть сама по себе не создает проблем с «шумными соседями». Это не домен уровня 2 в классическом смысле «vlan», а восходящий интернет-шлюз горизонтально масштабируется без ограничений, как указано ниже:Часто задаваемые вопросы об Amazon VPC

  2. Несколько VPC — если у вас одна учетная запись, вы можете иметь несколько VPC в регионе, мягкий предел составляет 5 VPC, но жесткий максимум составляет:

    Количество VPC в регионе, умноженное на количество групп безопасности на VPC, не может превышать 10000.

    Ограничения Amazon VPC

    Что довольно много, в вашем примере можно сказать, что может быть 4 группы безопасности (ELB, EC2 ASG, RDS, доступ администратора), так что теоретически это означает 2500 VPC? Я не слышал, чтобы кто-то имел такое, но это может быть вариантом.

    Однако есть еще одна вещь, о которой стоит подумать, в зависимости от того, насколько масштабируема ваша платформа автоматически, некоторые ограничения являются общими для всего аккаунта, и если вы достигнете их для одного развертывания, то это может повлиять на другое — например, просто на количество экземпляров определенного типа — или ограничения на параллельное выполнение Lambda. Так что это приводит нас к третьему варианту...

  3. Несколько учетных записей - Теперь вы можете создавать новые учетные записи через API благодаря API организаций AWS, однако страница «Ограничения», к сожалению, не дает четкого представления о том, что это за ограничение по количеству учетных записей. Хотя я слышал о крупных предприятиях, имеющих тысячи учетных записей. Смотрите:Ограничения организаций AWSиКак использовать AWS Organizations для автоматизации сквозного создания аккаунтов

В целом для вашего варианта использования вам понадобится чистый стек CloudFormation, который можно полностью повторно использовать с минимальными изменениями — просто для согласованности развертывания, эксплуатации и поддержки. Для меня это указывает либо на VPC как единицу развертывания, либо на Account как единицу развертывания. Вам нужно будет внимательно следить за ограничениями в обоих случаях. Выполнение этого в VPC, либо с большими подсетями, либо с разделением по подсетям, в конечном итоге станет запутанным в обслуживании — мое субъективное мнение.

Связанный контент