Справочная информация
Я следовал этому руководству https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cli-tutorial-ec2.html, составил файл docker compose, создал веб-сайт A (составьте из 4 контейнеров) вверх и запустите обслуживание 1 моего клиента.
Однако теперь у меня есть другой клиент, которому нужно разместить другой веб-сайт B, используя стратегии, аналогичные описанным выше.
Вот текущая работающая служба ECS / EC2
, и вот здесь запущены и работают контейнеры, которые теперь обслуживают веб-сайт A
Вопросы и проблемы
- Веб-сайт A теперь расположен как 1 из службы в EC2 под моим единственным кластером, могу ли я использовать тот же экземпляр EC2 и веб-сайт B (как другая служба EC2)?
- Если это так, как управляются порты / входящий / исходящий трафик c? Теперь веб-сайт A уже занимает порты 80, 443, 27017 и 3002 экземпляра EC2 для входящего трафика c, если контейнеры веб-сайта B также работают в тех же экземплярах EC2, могу ли я по-прежнему использовать порты 80, 443, 27017 и 3002 для веб-сайта Б. Я прочитал документы ALB (Amazon Load Balancer), кажется, он может выполнить требование, я на правильном пути?
- И имя домена, по маршруту 53, я зарегистрировал домен www.websiteA.com для обслуживания 1-го веб-сайта, я также зарегистрировал еще одну www.websiteB.com, готовящуюся к обслуживанию веб-сайта B, в моем случае, мне кажется, мне нужно настроить новый домен B, указывающий на тот же IP-адрес EC2?
- Во время мое развертывание веб-сайта B, я не хочу влиять на доступность веб-сайта A, можно ли его поддерживать в процессе развертывания контейнеров веб-сайта B?
Я хочу очистить все концепции перед начало развертывания веб-сайта B, спасибо за любую помощь, спасибо
Последующие действия
Я пришел, решил использовать AWS приложение балансировки нагрузки для решения моей проблемы и настройки следующих конфигураций.
Сначала я смотрю на балансировщик нагрузки
И настроен следующим образом
Я устанавливаю балансировщик нагрузки, который прослушивает запросы, используя Протокол HTTP с входящим портом 80, когда есть доступ пользователей к веб-серверу (т. Е. К контейнеру внешнего интерфейса), слушатель перенаправляет этот запрос целевой группе (т. Е. Http-port-80-access)
А вот целевая группа (http-port-80-access), которая содержит зарегистрированную цель (в настоящее время мой экземпляр ec2, выполняющий контейнеры), порт хоста контейнера - 32849, который, в свою очередь, сделал используется связанным балансировщиком нагрузки (web-access-load-балансировщик) для динамического c сопоставления портов.
Я также настроил еще 1 правило поверх значения по умолчанию правило, когда пользователь получает доступ к URL-адресу сайта A, баланс нагрузки ancer перенаправит запрос целевой группе (http-port-80-access).
Все настроено, и проверка работоспособности также пройдена. Затем я использовал следующую команду ecs-cli compose service up
, чтобы подключить балансировщик нагрузки к службе
ecs-cli compose --file ./docker-compose-aws-prod.yml --cluster my-ecs-cluster-name --ecs-profile my-ecs-profile --cluster-config my-cluster --project-name my-project --ecs-params ./ecs-params.yml service up --target-group-arn arn:aws:elasticloadbalancing:us-east-2:xxxxxxxxx:targetgroup/http-port-80-access/xxxxxxxx --container-name frontend --container-port 80
, где frontend - это имя службы контейнера внешнего интерфейса веб-сайта A
Однако получим когда я получаю доступ к www.websiteA.com через браузер, ничего кроме ERR_CONNECTION_REFUSED, доступ к www.websiteA.com: 32849 сделал доступным, но это не то, что я хотел.
Мне интересно, какую часть я настроил неправильно