Terraform: создание GitHub Actions ранеров с автоматическим масштабированием на AWS

Terraform: создание GitHub Actions ранеров с автоматическим масштабированием на AWS

Terraform модуль для создания масштабируемых GitHub Actions ранеров на AWS.

Проект упрощает развертывание самоуправляемых ранеров для GitHub Actions с автоматическим масштабированием на AWS, используя спотовые инстансы. Это позволяет снизить затраты на CI/CD, так как ты платишь только за фактическое использование. Модуль отличается от стандартных подходов тем, что ориентирован на использование инфраструктуры как кода с помощью Terraform, что делает настройку более гибкой и поддающейся автоматизации.

Для запуска проекта потребуется Terraform. Документация подробно описывает шаги развертывания, однако, учти, что проект на текущий момент поддерживается на основе обратной связи от сообщества и находится в открытом доступе, что может подразумевать некоторые недочёты. Также, имей в виду, что необходимо учитывать особенности работы с AWS и ограничения использования спотовых инстансов.

Описание проекта

Модуль Terraform для создания самоуправляемых и масштабируемых раннеров GitHub Actions на AWS. Он разрабатывает необходимую инфраструктуру для размещения таких раннеров на временных экземплярах AWS (spot instances). Модуль также включает логику для автоматического масштабирования, позволяя запускать раннеры только в необходимые моменты времени, сокращая затраты на неиспользуемые ресурсы.

Основные возможности

  • Масштабирование: Автоматическое увеличении и уменьшение количества раннеров на основе событий из GitHub.
  • Оптимизация затрат: Использование временных экземпляров для снижения цен на вычисления.
  • Безопасность: Раннеры создаются по запросу и удаляются после использования.
  • Поддержка различных операционных систем: Linux и Windows.
  • Масштабируемость: Возможность создания нескольких конфигураций раннеров в одной настройке.
  • Гибкая конфигурация: Возможность настраивать AMI, типы экземпляров и подсети.

Установка и запуск

Чтобы начать использовать модуль, следуй следующим шагам:

  • Настрой свою учетную запись AWS.
  • Создай и настрой GitHub App.
  • Скачай или собери необходимые функции AWS Lambda.
  • Разверни модуль с помощью Terraform.
  • Установи GitHub App на свои организации или репозитории и добавь их в группы раннеров.

Подробные инструкции можно найти в разделе Getting Started на сайте документации.

Конфигурация

Модуль предоставляет множество параметров конфигурации, которые можно настроить в зависимости от потребностей. Например, ты можешь определять типы экземпляров, параметры безопасности, настройки сетевых интерфейсов и параметры AMI. Полный список доступных опций доступен в документации проекта.

Ограничения

Некоторые ограничения модуля включают:

  • На данный момент не поддерживаются раннеры на уровне предприятий (Enterprise level).
  • Обратите внимание, что работа с временными экземплярами может иметь ограничения по доступным ресурсам в зависимости от региона AWS.
  • Раннеры могут быть зависимы от стабильных сетевых подключений, так как взаимодействуют с GitHub событиями и API.

Открыть на GitHub: github-aws-runners/terraform-aws-github-runner →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте