Сеть для веб-сервиса в облаке
Вопрос
Интервьюер: «Нарисуйте словами сеть в облаке для веб-сервиса: балансировщик, приложения, PostgreSQL, Redis. Как обеспечите безопасность и отказоустойчивость?»
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
VPC с публичными и приватными подсетями в 2-3 зонах
Балансировщик в публичных подсетях, приложения и базы в приватных
Выход в интернет через NAT, доступ админов через бастион или VPN
Группы безопасности по цепочке: LB к приложению, приложение к базе и Redis
Managed PostgreSQL и Redis с репликой в другой зоне
Права приложения через сервисный аккаунт, без статических ключей
Что могут спросить следом
- Как админ попадёт на ВМ приложения?
- Что будет при отказе одной зоны?
Разбор
Образцовый ответ: «Одна VPC 10.0.0.0/16, в каждой из трёх зон публичная и приватная подсеть. В публичных только балансировщик. Приложения в группе ВМ или managed Kubernetes в приватных подсетях всех трёх зон, наружу ходят через NAT-шлюз. PostgreSQL и Redis managed, в приватных подсетях, с репликой в другой зоне и автоматическим failover. Группы безопасности цепочкой: на приложение пускаем 8080 только от группы балансировщика, на базу 5432 только от группы приложений. Публичных IP у приложений и баз нет, админы заходят через VPN или бастион с короткими сертификатами. Доступ к бакетам и секретам через сервисный аккаунт ВМ. При отказе зоны балансировщик перестанет слать туда трафик, автоскейлинг доберёт мощности в остальных, база переключится на реплику».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.