Дежол для интерфейсных разработчиков (5 частей серии)
Я предполагаю, что вы уже знаете, как контейнеризировать свое приложение React React, если нет, пожалуйста, прочитайте это сначала.
TL; доктор
В основном внутри ECS:
- Создать кластер
- Создать определение задачи
- Создайте службу внутри кластера, чтобы запустить задачу на основе определения задач (поэтому обслуживание похоже на задание, которое запускает задачи, где задачи представляют собой рабочие экземпляры определений задач и определение задач в основном, где вы определяете ваше изображение/контейнер/порты и т. Д. Отказ И кластер — это логическая группа услуг)
Что такое ECS?
Amazon Easic Container Container (Amazon ECS) — это услуга, предоставляемая AWS с оркестровым контейнерами. В условиях Лэймана считают его в качестве услуги, специально разработанной для перемещения ваших контейнерных приложений к производству.
Как развернуть REACT APP для AWS ECS для производства
Шаги довольно просты:
- Докерейте свое приложение ( Как? )
- Создайте изображение контейнера и нажмите его в ECR
- Создать кластер ECS
- Создать задачу в кластере
- Создайте упругий балансировщик нагрузки для доступа к контейнеру из Интернета
- Создайте сервис в кластере, чтобы запустить задачу
Ecr.
Реестр эластичного контейнера Amazon (ECR) — это услуга, в которой вы храните свои контейнерные изображения (например, Dockerhub). Рассмотреть это как NPMJS контейнеров вместо пакетов JS.
Войдите в свою консоль AWS и отправитесь на AWS ECR.
Нажмите на «Создать репозиторий» и добавьте новый репозиторий. Добавьте любое имя, которое вы хотели бы, ради демонстрации, я использую «My-App».
Как только репозиторий создан, он вернет вас обратно в список репозиториев. Выберите вновь созданный репозиторий, а затем нажмите кнопку «Просмотр командных команд».
Теперь нам нужно использовать эти команды один за другим, чтобы построить, течь и нажать наш цвет контейнера. Но прежде чем продолжить, убедитесь, что у вас есть последняя версия AWS CLI установлены.
Используйте следующую команду, чтобы убедиться, что AWS CLI правильно устанавливается в вашей системе.
AWS —version.
Это выводило бы что-то вроде этого. Ваша версия может быть разной, это зависит, когда вы читаете эту статью.
Далее нам нужно создать клавиши доступа. Для этого перейдите в «Мои учетные данные о безопасности» из раскрывающегося списка с вашим именем пользователя.
Нажмите на «Создать новый ключ доступа», это создаст новую клавишу для вас.
Скопируйте «Доступ к ключу идентификатора» и «ключ секретного доступа». Нам понадобится позже.
Теперь вернитесь к вашему терминалу и введите следующую команду AWS Configure
Он попросит «ключ доступа ID» и «ключ секретного доступа», предоставить им один за другим (скопирован на предыдущем шаге). Вы можете пропустить следующие два вопроса (регион по умолчанию и формат вывода по умолчанию).
Как только AWS CLI был настроен, теперь мы можем запустить команды push. Откройте терминал и убедитесь, что вы находитесь в каталоге ACT APP. Запустите каждую команду, показанную во всплывающем окне, открывшись, нажав кнопку «Просмотр командных команд». Обратите внимание, что команды на скриншоте могут быть разные, чем то, что вы видите в своем всплывающем окне И это совершенно нормально.
* Если ваш «Dockerfile» назван что-то, кроме «Dockerfile», вам придется указать его, используя -f
Флаг (см. Ниже).
Ecs.
После того, как наш контейнер был нажат, мы теперь готовы использовать ECS и все, что она должна предложить.
Перейдите к Amazon Easic Container Container (Amazon ECS) и создайте кластер.
Выберите «Только для сети» и нажмите «Следующий шаг».
Дайте любое имя, которое вы хотите (но помните его), выберите «Создать VPC», нажмите «Создать».
* Примечание. Вы также можете выбрать существующую VPC.
Как только кластер был создан, выберите «Просмотр кластера».
Выберите «Определения задач» с левой боковой панели.
Нажмите «Создать новое определение задачи»
Выберите «Fargate», нажмите «Следующий шаг»
Введите имя определения задачи, выберите «EcstaskexecutiveRule» в поля «Роль задачи» и «Роль выполнения задач». Выберите «0,5 ГБ RAM» и «0,25 VCPU». Нажмите «Добавить контейнер».
Теперь нам нужно добавить контейнер изображения, который мы нажали в ECR ранее. Дайте название контейнеру и копировать-вставьте URI Image (можно скопировать из списка репозиториев ECR). Введите «80» в поле отображения порта. Нажмите «Добавить».
Как только контейнер добавлен, нажмите «Создать», чтобы завершить создание задачи.
Как только задача создана, вы можете нажать «Просмотр определения задачи»
Теперь нам нужно создать сервис для запуска задачи в нашем контейнере. Но до этого нам нужно создать упругий балансировщик нагрузки.
Elb.
Нам нужно создать упругий балансировщик нагрузки (ELB), чтобы мы могли получить доступ к приложению APC в React, образующую браузер (а затем присоединиться к домену). Сделать это, отправляйтесь на EC2.
Выберите «Балансировщик нагрузки» снизу влево.
Нажмите на «Создать балансировщик нагрузки»
Выберите «HTTP/HTTPS» и нажмите «Создать»
Дайте имя вашего балансировщика нагрузки. Выберите VPC из раскрывающегося списка (он должен быть той, который был создан вашим кластером ECS ранее). Вы также должны выбрать оба подсети в VPC. Нажмите «Далее: настроить параметры безопасности» и игнорируйте предупреждение (мы добавим https позже) и нажать «Далее: настроить группы безопасности».
Нажмите «Создайте новую группу безопасности» и нажмите «Далее: настроить маршрутизацию».
Дайте название вашей целевой группе (целевая группа — это группа ресурсов, где ELB должна отправлять запросы). Выберите «IP» и нажмите «Далее: регистрировать цели».
В «Регистрация целей» оставь все, как есть, нажмите «Далее: Обзор». Просмотрите изменения и нажмите «Создать». Ваш ELB создан сейчас. Скопируйте «имя DNS», так как это будет URL для доступа к вашему контейнеру из браузера.
Как только ELB был создан, теперь мы можем создать «сервис», чтобы запустить «задачу», созданную в нашем «кластере».
Вернуться к ECS.
Идите в кластер, который мы создали. На вкладке «Услуги» нажмите «Создать».
Выберите «Fargate» в качестве типа запуска. Выберите определение задачи, которое мы создали выше (My-App-Task в моем случае), выберите Revision AS 1 (Weight). Выберите «Последние» в версии платформы, выберите кластер, который мы создали в «кластере». Дайте имя на ваш сервис. Введите «1» в поле «Количество задач». Нажмите «Следующий шаг».
В «кластере VPC» выберите VPC, который был создан нашим кластером. Выберите оба подсети в VPC. В типе балансировщика нагрузки выберите «Балансировщик нагрузки приложения». Выберите ELB, который мы создали ранее в поле «Название балансировщика нагрузки». Выберите контейнер, который мы создали в разделе «Контейнер для загрузки баланса» и нажмите «Добавить в баланс загрузки»
Как только вы нажмете «Добавить в баланс загрузки», раздел будет расширен. Из «Target Group Name» выберите «Целевую группу», которую мы создали при создании ELB раньше, и она заполнит остальные поля для этого раздела.
После завершения конфигурации «контейнера к загрузке баланса» завершены. Нажмите «Следующий шаг».
В разделе «Auto Casuring» оставь все как есть и нажмите «Следующий шаг». Просмотрите настройки и нажмите «Создать сервис». Как только служба создана, вы будете возвращаться на страницу списка услуг. Как только Служба, которую мы только что создали, имеет «активное» состояние, вы можете перейти в браузер и использовать DNS-имя ELB для доступа к контейнеру.
Чтобы получить DNS-имя ELB, выберите балансировщик нагрузки, который мы создали ранее, и имя DNS будет отображаться в описании ниже.
Используйте адрес в браузере для доступа к приложению React.
Далее: прикрепить домен к elb
Давайте подключимся:
LinkedIn: https://www.linkedin.com/in/mubbashir10/
Twitter: https://twitter.com/mubbashir100.
Дежол для интерфейсных разработчиков (5 частей серии)
Оригинал: «https://dev.to/mubbashir10/deploy-your-react-app-to-ecs-fargate-38p9»