Недавно я познакомился с AWS, и мне очень понравилось. Тем не менее, я задаю себе несколько вопросов (что может быть глупо) об архитектуре для нескольких регионов.
Скажем, приложение используется европейцами и азиатами. Моя первая идея заключалась в том, чтобы добавить экземпляры EC2 в Европе, а также ведро S3 для хранения статических данных и очереди SQS и ElastiCache в Европе. Это будет невероятно быстро для европейских людей, но медленнее для азиатов.
Чтобы решить эту проблему, я бы добавил CloudFront для статических данных, чтобы изображения были быстро отправлены и для азиатов. Однако запросы на сервер (запросы Ajax...) все еще будут иметь некоторые задержки, поэтому решение должно было бы добавить экземпляр EC2 в регионе Сингапур/Токио.
Однако возникает новая проблема: если запрос отправляется в экземпляр Tokyo EC2, то если ему нужно получить сообщение из SQS, которое хранится в Европе, или снова получить доступ к данным ElastiCache = > задержка + затраты на передачу между регионами. Итак, нам нужно добавить SQS и ElastiCache в Азии?
Возможно, я что-то пропустил, и запросы AWS по кросс-регионам очень быстрые, но из того, что я понял, если мы хотим получить быстрый опыт для нескольких регионов, нам в основном нужно дублировать все сервисы тоже в каждом регионе (кроме S3 возможно, поскольку мы можем использовать CloudFront для этого, и я полагаю, что мы можем жить с задержкой, если работа SQS в Азии должна получить доступ к ресурсу S3 в Европе).
В любом случае, правильно ли я это понял? Есть ли у вас какие-либо ресурсы о том, как приложения архитектуры, ориентированные на несколько регионов?
Спасибо:)