Назад | Перейти на главную страницу

Проектирование EC2 для региональной балансировки нагрузки и единой БД

Раньше я создавал решения для хостинга EC2, но приложение, которое я создаю сейчас, является более продвинутым, и мне хотелось бы получить некоторое представление о том, на правильном ли я пути. В системе размещен API мобильного приложения, трафик которого, вероятно, будет поступать со всей Северной Америки. Мы все еще сужаем ожидаемые уровни, но ожидаем серьезного трафика. Основные операции - это чтение из БД, но также включает и пропорционально небольшие записи.

Вот макет, который я ожидаю. Есть ли серьезные проблемы или что еще можно сделать, чтобы это исправить?

Наш API не содержит статического контента, такого как изображения, поэтому каждый экземпляр EC2 может указывать на основной том RDS, а балансировщик нагрузки может переключаться между ними. Разумно ли делать что-то подобное или мне нужно войти в конфигурацию главного / подчиненного базы данных? Хотя ожидается, что трафик будет достаточно высоким, я не думаю, что он будет который высокая.

Основываясь на предоставленной информации, придерживайтесь одного региона: us-east-1 или us-west-2. Задержка в пределах Северной Америки до любого из этих регионов должна быть разумной.

  1. Используйте несколько экземпляров EC2, распределенных по нескольким зонам доступности.
  2. Используйте ELB для распределения трафика между вашими инстансами EC2.
  3. Используйте экземпляр RDS для своей базы данных. Воспользуйтесь преимуществами Multi-AZ. Это повышает доступность вашего уровня данных, а также помогает во время технического обслуживания, когда ваш экземпляр RDS необходимо обновить или иным образом сделать недоступным.

Позже вы можете перейти в другой регион:

  1. Используйте маршрутизацию Route 53 на основе задержки, чтобы пользователи переходили в ближайший регион
  2. Используйте реплику чтения RDS во втором регионе, чтобы чтение было быстрее.