Вопрос или проблема
Долгая история, но нам нужно что-то, что будет слушать на статическом IPv4 в подсети VPC и отвечать на ICMP Ping. В идеале это не должен быть экземпляр EC2. Вот что я подумал, но это не работает:
- NLB, NAT Gateways, VPC Endpoints не отвечают на ping
- ALB отвечает на ping, но его IP-адрес нельзя задать
- ECS / Fargate: требуют больше усилий и координации, чем просто использование EC2
Основные причины, по которым я предпочел бы не использовать экземпляр EC2, если смогу, – это просто управление им, обновления ОС и необходимость downtime для этого. Мне также нужно будет поместить его в ASG для защиты от завершения и сделать так, чтобы он подключал ENI при загрузке. Все это вполне выполнимо, но кажется, что должно быть что-то, что будет просто реагировать на ping по определенному IP.
Есть ли какие-то креативные решения?
Ответ или решение
Создать AWS ресурс, который отвечает на ICMP ping, без использования EC2 — это достаточно сложная задача, поскольку большинство стандартных решений AWS, таких как Load Balancers (NLB, ALB), NAT Gateways и VPC Endpoints, не поддерживают эту функциональность. Однако, давайте рассмотрим несколько возможных решений.
1. Использование AWS Lambda с API Gateway
Хотя AWS Lambda сама по себе не отвечает на ICMP ping, вы можете создать API Gateway, который будет вызывать Lambda функцию. Однако, это не совсем то, что вам нужно, так как API Gateway также не поддерживает ICMP ping.
2. Прямое использование EC2
К сожалению, если обсуждать только ресурсы, которые отвечают на ICMP ping, без использования EC2 просто не удастся найти подходящее решение в рамках существующих сервисов AWS. Существует необходимость в том, чтобы хоть какой-то ресурс управлял стеком сетевых протоколов.
3. Elastic IP и EC2 малый экземпляр
Если вы хотите минимизировать управление EC2, вы можете рассмотреть использование очень маленького экземпляра EC2 с назначенным Elastic IP. Это создаст статический IP-адрес, который будет отвечать на ICMP ping. В этом случае вам всего лишь нужно будет настроить минимальное количество управления сервером. Вы можете использовать:
- t4g.nano (если не требуется много ресурсов).
- Включить автоматические обновления системы (если вас это беспокоит).
- Настроить CloudWatch для мониторинга и автоматического перезапуска в случае каких-либо проблем.
4. Эксплорация других облачных провайдеров
Если ваша архитектура позволяет использование других облачных провайдеров, вы можете рассмотреть такие платформы, как DigitalOcean или Google Cloud Platform, которые могут предоставить более легкие решения для настройки ресурсов, отвечающих на ICMP ping.
Заключение
К сожалению, в рамках AWS на текущий момент нет легкого способа создать ресурс, который отвечал бы на ICMP ping, помимо использования экземпляра EC2. Обратите внимание на возможности автоматизации управления (например, с помощью AWS Systems Manager), чтобы минимизировать затраты времени на обслуживание. Выбор оптимального решения может зависеть от вашего бюджета и уровня приемлемого управления.