Что такое AWS Outposts и для каких DevOps-сценариев он используется?

«Что такое AWS Outposts и для каких DevOps-сценариев он используется?» — вопрос из категории Облачные платформы, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

AWS Outposts — это гибридное облачное решение, представляющее собой стойку с серверами от AWS, которая физически размещается в дата-центре заказчика (on-premises) или на edge-локации. С точки зрения DevOps, Outposts — это логическое расширение региона AWS, которое позволяет использовать единый набор API, инструментов управления и сервисов (EC2, EBS, ECS, EKS, RDS) как в публичном облаке, так и локально.

Ключевые характеристики с DevOps-перспективы:

  • Единая плоскость управления: Управление через AWS Console, CLI, SDK и Terraform. Инфраструктура на Outposts описывается тем же кодом (IaC), что и в облаке.
  • Полная интеграция сервисов: Запуск контейнеров (EKS Anywhere, ECS), управляемых БД (RDS on Outposts), объектного хранилища (S3 on Outposts).
  • Автоматические обновления: AWS отвечает за обновление firmware, гипервизора и сервисного ПО, что снижает операционную нагрузку.

Типичные DevOps-сценарии использования:

  1. Low-latency приложения: Размещение front-end или кэширующего слоя (например, Redis на EC2) рядом с локальными пользователями или производственными системами для задержек в единицы миллисекунд.
  2. Локальная обработка данных: Запуск ETL-задач или аналитических workloads на данных, которые не могут покидать периметр из-за нормативных требований (GDPR, ФЗ-152).
  3. Гибридный Kubernetes: Создание единого EKS-кластера, ноды которого размещены как в AWS Region, так и на Outposts, с помощью EKS Anywhere или EKS Distro.
  4. Миграция и аварийное восстановление (DR): Поэтапный lift-and-shift с возможностью отката. Outposts может быть целевой средой для репликации или площадкой для DR.

Пример: Развертывание EC2-инстанса на Outposts с помощью Terraform

resource "aws_instance" "on_prem_app" {
  ami           = data.aws_ami.amazon_linux_2.id
  instance_type = "m5.large"
  # Критичный параметр: указание Outposts
  outpost_arn   = "arn:aws:outposts:us-west-2:123456789012:outpost/op-0abcdef1234567890"

  tags = {
    Name = "Hybrid-App-Server"
    Environment = "Production-OnPrem"
  }
}

Операционные аспекты: Необходимо планировать емкость (Outposts поставляется предконфигурированными стойками), учитывать задержку связи с регионом AWS для операций управления и обеспечивать физическую безопасность и питание стойки.