Поиск по сайту:

Как настроить Elastic Container Service (ECS) на AWS


На этой странице

  1. Предварительные условия
  2. Что будем делать?
  3. Войти в AWS
  4. Создать кластер
  5. Создание роли IAM для выполнения задач
  6. Создание определения задачи
  7. Создать службу
  8. Доступ к созданной нами задаче
  9. Удалить кластер
  10. Заключение

Elastic Container Service — это полностью управляемая служба оркестрации контейнеров, предоставляемая AWS. Вы можете запускать контейнеры на AWS. Он поддерживает Fargate для предоставления бессерверных вычислений для контейнеров. Fargate устраняет необходимость выделения серверов и управления ими. ECS помогает сосредоточиться на создании приложений и управлении ими, а не на инфраструктуре. Это масштабируемая и быстрая служба управления контейнерами, которая упрощает запуск, остановку и управление контейнерами в кластере.

ECS поставляется с различными моделями ценообразования. Чтобы узнать о его ценах, посетите официальную страницу AWS здесь.

Основные термины в ECS.

  1. Кластер ECS. Это логическая группа задач или служб.
  2. Определение задачи. Описывает один или несколько контейнеров (максимум до десяти), которые формируют ваше приложение.
  3. Задача. Это выполняемая единица определения задачи.
  4. Служба. Используется для запуска и обслуживания определенного количества экземпляров определения задачи.

В этой статье мы создадим кластер ECS и развернем на нем пример приложения Nginx. Мы создадим тестовый кластер, чтобы понять настройку кластера. Рекомендуется настроить производственный кластер с индивидуальной конфигурацией в соответствии с требованиями.

Предпосылки

  1. Аккаунт AWS (создайте, если у вас его нет).
  2. Основное понимание роли IAM (нажмите здесь, чтобы узнать о IAM).
  3. Основные сведения о VPC (нажмите здесь, чтобы узнать о VPC)

Что мы будем делать?

  1. Войдите в AWS (создайте, если у вас его нет).
  2. Создать кластер
  3. Создание роли IAM для выполнения задач
  4. Создание определения задачи
  5. Создать службу
  6. Доступ к созданной нами задаче
  7. Удалить кластер

Войти в АВС

Нажмите здесь, чтобы перейти на страницу входа в AWS и ввести свои учетные данные.

После входа в учетную запись вы увидите основную консоль управления AWS, как показано ниже.

Создать кластер

Чтобы перейти к ECS, щелкните службы в левом верхнем углу экрана и в разделе Контейнеры выберите Служба эластичных контейнеров.

Вы увидите главную панель инструментов ECS, как показано ниже. Нажмите на \Кластеры\ на левой панели.

Поскольку я не создал ни одного кластера, мы ничего не видим в списке. Создайте свой первый кластер, нажав кнопку «Создать кластер».

Здесь выберите вариант \EC2 Linux + Сеть\ и нажмите кнопку \Следующий шаг\.

Дайте имя кластеру, выберите тип экземпляра EC2. Экземпляры EC2 в кластере будут созданы того типа, который мы выберем. Выберите модель предоставления экземпляров EC2, которые нужно создать. Укажите другие конфигурации в соответствии с вашими требованиями.

Вы можете либо создать новый компьютер, либо выбрать существующий. Если вы не знакомы с VPC и сетью и хотели бы узнать об этом больше, я бы порекомендовал вам ознакомиться со статьей здесь.

Вы можете указать теги, если хотите, или оставить его пустым, так как это необязательная конфигурация. Нажмите на кнопку «Создать», которая создаст для вас кластер.

Это займет несколько минут, и после того, как кластер будет создан, вы увидите статус \Статус ECS -3 из 3..\ на той же странице. Нажмите кнопку \Просмотреть кластер\, чтобы перейти к кластеру.

Создание роли IAM для выполнения задач

Прежде чем приступить к дальнейшей настройке, вам понадобится роль, которая будет использоваться для выполнения задачи. Итак, перейдите в IAM и создайте новую роль со следующей политикой. Нажмите здесь, если вы не знакомы с IAM и хотели бы узнать о нем больше.

Создайте роль: ecsTaskExecutionRole со следующей политикой.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

Создав роль, вы увидите ее в консоли IAM следующим образом.

Создать определение задачи

Если вы готовы к роли IAM, теперь вы можете приступить к созданию определения задачи.

До этого момента у вас был просто пустой кластер, в котором не было запущено ваше контейнерное приложение.

Следующим шагом является создание определения задачи. Чтобы создать свое первое определение задачи, нажмите «Определения задач» на левой панели в разделе «Кластеры».

Здесь нажмите кнопку «Создать новые определения задач».

На этой странице выберите тип запуска «EC2». Затем нажмите кнопку «Далее».

Помните, мы создали роль IAM на предыдущем шаге? Теперь нам нужно указать роль, которую мы создали для роли задачи. Дайте имя определению задачи.

Когда вы прокрутите немного вниз, вы увидите кнопку \Добавить контейнер\, нажмите на нее, и вы увидите новый всплывающий экран, как показано ниже.

На этом экране дано имя контейнеру, укажите изображение, которое будет использоваться для контейнера. Вы также можете указать ограничения памяти, сопоставления портов, проверки работоспособности. Если вы закончили настройку, нажмите кнопку «Добавить».

Укажите «Память задачи» и «ЦП задачи», которые будут использоваться задачей.

Теперь вы готовы с базовой и обязательной конфигурацией задачи, нажмите кнопку «Создать», которая создаст определение задачи.

Вы увидите сообщение «Успешно создано определение задачи».

Создать службу

На данный момент у нас есть кластер и определение задачи. Следующим шагом будет создание службы. Вернитесь к созданному нами кластеру и на вкладке «Сервис» нажмите кнопку «Создать», чтобы создать сервис.

Выберите тип запуска как EC2, выберите созданное определение задачи, вы можете выбрать имя кластера из раскрывающегося списка, даже имя для службы, которую мы создаем, укажите количество задач как 2, которые создадут 2 копии вашего применение.

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

Если у вас есть какой-либо балансировщик нагрузки, вы можете выбрать его для маршрутизации внешнего трафика к вашему приложению через него. Нажмите кнопку \Следующий шаг\.

Если вы не хотите, чтобы ваша служба масштабировалась, используйте конфигурацию по умолчанию: \Не настраивать желаемое количество служб\.

Просмотрите конфигурацию, которую мы только что сделали для создаваемой службы, нажмите кнопку «Создать службу».

Вы видите статус «Статус службы ECS — 1 из 1 завершено», если служба была успешно создана.

Доступ к задаче, которую мы создали

Вернитесь в кластер и на вкладке \Задачи\ теперь вы можете увидеть 2 запущенных задачи. Эти задачи содержат ваше приложение.

Нажмите на одну из задач, чтобы узнать о ней больше.

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

В разделе «Сетевые привязки» вы можете найти внешнюю ссылку задачи. Эта конкретная задача будет доступна только по ссылке, доступной здесь. Скопируйте ссылку, чтобы проверить, запущено ли приложение Nginx, которое мы указали в определении задачи.

Перейдите в браузер и перейдите по ссылке, которую мы скопировали на предыдущем шаге. Вы можете увидеть страницу Nginx по умолчанию. Это означает, что наше приложение Nginx успешно развернуто.

Удалить кластер

Если вам больше не нужен кластер, вы можете удалить его одним щелчком мыши. Вернитесь к кластеру и нажмите кнопку «Удалить кластер».

Подтвердите удаление, введя «удалить меня» в текстовом поле и нажав кнопку «Удалить». Это навсегда удалит кластер, и после удаления вы не сможете его восстановить. Поэтому будьте осторожны при удалении кластера, если вы работаете с приложениями реального времени.

Заключение

В этой статье мы увидели шаги по созданию кластера, определению задачи и службе. Шаги, которые мы видели, можно использовать для создания тестового кластера. Если вы хотите создать кластер с приложением реального времени, вам нужно более подробно остановиться на конфигурациях, которые мы видели.