https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/abstract-and-introduction.html
Очень полезный для понимания работы AWS на глобальном уровне документ. Важный при проектировании архитектуры и принципиально важный при построении Disaster Recovery схемы.
Основная мысль такая. Если падает
us-east-1, где располагается control plane большинства глобальных сервисов, то операции по их созданию, изменению, удалению перестанут работать (могут перестать, полагаться на это нельзя). При этом сервисы в регионах с нагрузками будут работать. Поэтому нужно планировать Disaster Recovery схему так, чтобы она не зависела от control plane.В переводе на сервисы это означает следующее.
🔹 Route 53
Route 53 задействован под капотом самого AWS при создании многих сервисов, которым он должен сделать DNS собственные записи, в том числе хелсчеки, поэтому при проблемах в
us-east-1 у Route 53 может не быть возможности создать нужные записи и потому запросы на создание большинства популярных ресурсов вернут ошибку. Это верно как минимум для следующего списка (список не полный):▪️ API Gateway
▪️ CloudFront
▪️ DynamoDB Accelerator (DAX)
▪️ Global Accelerator
▪️ ECS with DNS-based Service Discovery
▪️ EKS Kubernetes control plane
▪️ ElastiCache
▪️ ELB load balancers
▪️ Lambda URLs
▪️ MemoryDB for Redis
▪️ Neptune
▪️ OpenSearch
▪️ PrivateLink VPC endpoints
▪️ RDS/Aurora
👉 Рекомендация: для критичных Disaster Recovery схем нужно создавать ресурсы заранее. Не получится во время проблем в
us-east-1 поднять RDS базу данных из бэкапа. Не получится создать балансеры, Redis или CloudFront.🔸 S3
S3 региональный сервис, но из-за того, что у S3 все имена должны быть уникальные, то не получится создать или удалить бакет во время проблем в
us-east-1. Кроме того все операции по изменению конфигурации бакета (bucket policy, настройки CORS, ACL, шифрования, репликации, логирования и др.) тоже зависят от us-east-1.👉 Рекомендация: для критичных DR схем создавать S3 бакеты заранее. Не получится во время проблем в
us-east-1 создать новый S3 бакет или срочно прикрутить к нему репликацию.🔹 CloudFront
CloudFront используется для API Gateway with edge-optimized endpoints.
👉 Рекомендация: создавать заранее все нужные API Gateway with edge-optimized endpoints.
🔸 AWS STS
IAM сервис глобальный, получить временные credentials через STS можно из любого региона. Если у вас захардкожен
us-east-1, то когда у него проблемы, вы получите ошибки, в то время как региональный STS будет работать.👉 Рекомендация: изменить в AWS CLI / AWS SDK захардкоженный
us-east-1 на регион с нагрузкой.🔹 IAM Identity Center (AWS SSO) / Federated SAML
SSO может пострадать, если в том регионе, где он настроен, проблемы.
👉 Рекомендация: создайте IAM юзеров на случай, если вы, как я, слишком уж стараетесь соблюдать security best practices. По-другому зайти в систему во время проблем с SSO не получится, потому для критических случаев нужно создать рабочекрестьянского IAM user-а.
Ужас какой. Короче, типа — WiFi это конечно очень круто, но бухту кабеля и обжим всё-таки пока не выбрасывайте.
🔸 S3 Storage Lens
Дефолтная борда и её метрики располагаются в
us-east-1, поэтому при проблемах они могут быть не доступны.👉 Рекомендация: если для вас критичны S3 Storage Lens, то нужно создать свои собственные дашборды, указав при создании свой регион.
#design