📓 AWS Fault Isolation Boundaries:
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 53Route 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.
🔸 S3S3 региональный сервис, но из-за того, что у
S3 все имена должны быть уникальные, то не получится создать или удалить бакет во время проблем в
us-east-1. Кроме того все операции по изменению конфигурации бакета (bucket policy, настройки CORS, ACL, шифрования, репликации, логирования и др.) тоже зависят от
us-east-1.
👉
Рекомендация: для критичных DR схем создавать
S3 бакеты заранее. Не получится во время проблем в
us-east-1 создать новый
S3 бакет или срочно прикрутить к нему репликацию.
🔹
CloudFrontCloudFront используется для
API Gateway with edge-optimized endpoints.
👉
Рекомендация: создавать заранее все нужные
API Gateway with edge-optimized endpoints.
🔸
AWS STSIAM сервис глобальный, получить временные 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