Рубрики
Uncategorized

Развертывание рельсов в Amazon ECS: часть 4 — Создать кластер ECS

Создайте кластер ECS и подключите базу данных RDS и балансировку нагрузки. Помечено с AWS, Ruby, Docker, Devops.

Это четвертая часть Развертывать Рельсы в Amazon ECS сообщение. Это часть более широкой серии называется Больше, чем «Hello World» в Docker Отказ Серия поможет вам готовить ваше приложение: от настройки его локально, чтобы развернуть его как рабочая нагрузка на производственную класс в AWS.

  • Создание рельсов + веб-приложения Sidekiq в Docker
  • Развертывание рельсов в Amazon ECS
    • Концепции
    • Нажмите на изображение в ECR
    • Создайте базу данных RDS, определение задачи и балансировку нагрузки
    • Создайте кластер ECS и соедините все вместе — мы здесь
    • Настроить Sidekiq.
  • Автоматизация развертываний с AWS CodeDey
    • Глубокое погружение на AWS CodeBuild
  • Расширенные концепции ECS:
    • Обзорное открытие и автоматическое масштабирование — скоро

Кластер ECS — это сборник задач и услуг. При использовании служб ECS-EC2 кластер также является коллекцией экземпляров EC2. Ваши контейнеры работают на этих экземплярах EC2. Проверьте этот пост для более тщательного объяснения.

(9.0) На вкладке «Услуги» ищите EC2 и нажмите на нее. Затем нажмите Ключевые пары на меню левого бока. Нажмите на кнопку «Создать ключ» и добавьте название «Rails-Docker». Это скачат Rails-docker.pem файл на свой локальный. Мы создаем ключевую пару, потому что мы хотим иметь возможность получить доступ к экземплярам EC2, что наши кластеры создадут позже. Без ключевой пары эти экземпляры EC2 не будут доступны через SSH

(9.1) На вкладке «Услуги» ищите ECS и нажмите на нее. Затем нажмите «Создать кластеры». На следующей странице нажмите EC2 Linux + Networking Отказ

(9.2) На следующей странице добавьте My-Simple-Ruby-App как имя кластера. Измените тип экземпляра EC2 на M3.Medium и установите ключевую пару на Rails-docker.pem (или все, что вы установили на шаге 9.0). Обратите внимание, что использование M3.Medium не понравится сборы на вашей учетной записи AWS. Если вы следуете вдоль учебного пособия и сделали свои собственные простой приложение Rails с нуля, хватит тип экземпляра T2.Micro EC2. Экземпляр T2.Micro — единственный экземпляр, который находится под свободным уровнем. Однако, если вы развертываете приложение с большим количеством функций и драгоценных камней, я предлагаю вам попробовать M3.Medium первым, прежде чем экспериментировать с T2.Micro.

(9.3) Прокрутите вниз по странице. В разделе «Сетевой раздел» убедитесь, что вы используете тот же VPC, что и тот, который вы использовали в 6.2. В поле подсети добавьте все подсети внутри VPC.

(9.4) Прокрутите дальше вниз. Галочка Включить контейнерные идеи Таким образом, ECS соберет данные CPU и памяти из ваших контейнеров. Затем нажмите «Создать». Вы должны увидеть что-то вроде этого:

Когда все проверено, нажмите «Просмотр кластера»

Служба ECS отвечает за сохранение установленного количества задач и постоянно работает. Задача — это коллекция контейнеров, которые должны работать вместе. Чтобы узнать больше о услугах, нажмите здесь.

(10.1) На вкладке «Службы» нажмите «Создать»

(10.2) Затем выберите тип запуска EC2. Выберите определение задачи семьи Docker-Rails-App и его последнее версия (которое должно быть 1, если вы делаете это впервые).

(10.3) В разделе «Настроить сетевую сеть», «Балансировщик нагрузки приложения». Затем выберите балансировщик нагрузки, который мы создали в разделе 8. Затем добавьте Container_Name: порт Веб: 0: 8080 Отказ

(10.4)

Открывать Включить интеграцию обнаружения услуг и нажмите Далее. На следующей странице нажмите Не корректируйте желаемое количество услуг Затем нажмите Далее.

(10.5) Просмотрите свой сервис ECS. Это должно выглядеть что-то подобное.

Затем нажмите «Создать сервис». Вы должны увидеть что-то вроде этого:

Мы создали все компоненты, необходимые для нашей установки ECS. Проблема в том, что они в настоящее время существуют в изоляции. В настоящее время их нет способа общаться друг с другом. Это потому, что Группы безопасности Из каждого из наших компонентов не устанавливаются для них, чтобы общаться друг с другом. Группы безопасности являются набором правил входящего и исходящего трафика. Они указывают, какие ресурсы могут общаться с определенным набором ресурсов. Например. Группа безопасности для кластера ECS указывает, какие ресурсы могут взаимодействовать с ним.

Мы должны настроить группу безопасности нашего кластера ECS, чтобы иметь возможность принимать трафик SSH (поэтому мы можем подключиться к контейнеру через SSH) и принять трафик от всех портов из балансировщика нагрузки (для включения динамического отображения порта). Мы также должны настроить группу безопасности базы данных, которую мы создали в разделе 6, чтобы иметь возможность принять трафик от кластера ECS.

(11.1) На вкладке «Услуги» ищите ECS и нажмите на нее. Затем нажмите «Кластеры», а затем найдите кластер, который мы только что создали в разделе 9. Затем нажмите на вкладку «Эквименты ECS». Это должно перечислить экземпляры EC2, которые были созданы для кластера. Нажмите экземпляр EC2.

(11.2) Это должно направить вас на страницу EC2. Нажмите на экземпляр и на панели сведений ниже, найдите группу безопасности и нажмите на нее. Обратите внимание на эту группу безопасности. Эта группа безопасности определяет, какие ресурсы могут общаться с нашим кластером ECS.

(11.3) Это должно направить вас на страницу Группы безопасности EC2. Нажмите на вкладку «Входящие», а затем нажмите «Изменить». Добавьте правило, позволяющее SSH трафик из любого места.

Добавьте другое правило, позволяющее всем трафику TCP из группы безопасности, которую мы создали для ALB. Имя группы безопасности — Rails-Docker-Alb-SG Отказ В качестве альтернативы положите имя группы безопасности, которое вы ввели на шаге 8.3.

(11.4) На вкладке «Услуги» ищите RDS и нажмите на нее. В меню левого бока нажмите «Базы данных». Затем найдите и нажмите на базу данных, которую вы создали на шаге 6.

(11.5) На Соединение и безопасность Вкладка, щелкните группу безопасности на группах безопасности VPC. Эта группа безопасности определяет, какие ресурсы могут общаться с базой данных.

(11.6) Это должно перенаправить вас на страницу Группы безопасности EC2 для этой конкретной группы безопасности. Нажмите на вкладку «Входящие» и нажмите «Изменить». Добавьте правило, чтобы разрешить «PostgreSQL» трафик (порт 5432) в группе безопасности, которую вы приняли к сведению на шаге 11.2.

(11.7) Далее мы повторяем шаг 11.1, чтобы перейти к экземпляру EC2, созданный для кластера. Затем мы нажимаем «Connect». Это должно сообщить нам конкретные инструкции о том, как подключиться к нашему экземпляру.

На нашем местном терминале перейдите к папке, где PEM Файл был загружен на шаге 9.0. Затем, выполните Chmod 400 Rails-docker.pem Чтобы закрепить файл PEM. Команда ограничивает разрешения файла, чтобы быть доступным только по текущему пользователю. Затем запустите команду ssh на панели, но измените root к EC2-пользователь Отказ

Для меня команда выглядит что-то подобное:

ssh -i "rails-docker.pem" ec2-user@ec2-18-139-219-189.ap-southeast-1.compute.amazonaws.com

(11.8) Как только вы внутри экземпляра, сделайте Docker PS Чтобы перечислить контейнеры, которые в данный момент работают. Найти контейнер с образец-докера-рельс-приложение: v1.0.0 в его названии. Обратите внимание на Container_id этого контейнера.

Затем введите контейнер через эту команду Docker Exec -it << Container_id >>/bin/bash . Заменить << Continateer_id >> с контейнером_ИД выше.

(11.9) Вы можете выгнать несколько раз из контейнера. Повторите с шага 11.8, пока вы успешно не выполнили команды ниже.

rake db:create && rake db:migrate && rake db:seed

(12.1) На вкладке «Услуги» ищите EC2 и нажмите на нее. Найдите балансировщик нагрузки, который мы создали в разделе 8 и нажмите на него. Затем скопируйте вставьте имя DNS на другую вкладку в вашем браузере.

(12.2) Вы должны увидеть рабочее приложение!

(12.3) Нажмите кнопку «Мне нравится», мы видим, у нас есть ошибка. Это потому, что мы не настроили Redis и Sidekiq.

В следующем посте мы исправим проблему Sidekiq, создавая Redis и сервис Sidekiq. Это все еще в работах, хотя. Это будет в течение нескольких дней. Тем временем вы можете следовать за мной здесь, чтобы быть обновленным.

Или, как вызов, выясните, как сделать подобную кнопку работать. Подсказка — это служба Redis, создана как отдельный экземпляр EC2

Особая благодарность, мой редактор, мой редактор, чтобы помочь этому посту стать более последовательным. Также, особенное благодаря Tanmmz для указывания, что только тип экземпляра T2.Micro находится под свободным уровнем EC2.

Я рад принять ваши комментарии/отзывы на этом посте. Просто комментируйте ниже, или напишите мне!

Оригинал: «https://dev.to/raphael_jambalos/deploy-rails-in-amazon-ecs-part-4-create-an-ecs-cluster-338f»