AWS: Налаштування декількох регіонів за допомогою одного екземпляра RDS


11

Я намагаюся масштабувати наш веб-додаток (PHP, MySQL, memcache) у багаторегіональній схемі. В даний час ми використовуємо налаштування з двома екземплярами EC2 позаду ELB та екземпляром RDS, всі вони в регіоні US-EAST (Вірджинія).

Ми хотіли б мати присутність і в регіоні ЄС (Ірландія). Це означає щонайменше новий екземпляр EC2 (ідентичний іншим, що обслуговують ту саму програму).

Я скопіював потрібний AMI, встановив новий екземпляр, налаштував ту саму конфігурацію ELB (необхідна для завершення SSL) та налаштував маршрутизацію на основі затримки в Route53. І це працює, як було запропоновано.

Але клієнти з ЄС мають проблеми зі швидкістю. Це пов’язано з тим, що екземпляри ЄС EC2 підключаються до екземпляра RDS на базі США. Наскільки мені відомо, Amazon ще не ввімкнув багаторегіональну реплікацію RDS.

Чи є якісь пропозиції щодо того, як правильно пришвидшити всю установку під час використання одного екземпляра RDS?

Також будь-які ідеї взагалі про те, як масштабувати речі? В ідеалі ми хотіли б продовжувати використовувати технологію RDS з різних причин. Тим не менш, я відкритий для пропозицій (я думаю, наступною ідеєю було б розміщення власних серверів MySQL).

Відповіді:


5

Вам слід добре подумати, чому вам потрібно мати однакові дані і в США, і в ЄС. Адже це різні користувачі.

Бігати в багаторегіональному середовищі набагато складніше і, як правило, дає результативність через властиву затримку між США та ЄС.

Навіть якщо ви вийдете з RDS і спробуєте скопіювати свої дані між регіонами, будь то асинхронні чи синхронізовані, ви отримаєте проблеми із затримкою, які дадуть погані показники вашим користувачам.

Найпростіший спосіб - налаштувати в ЄС виділений сервер RDS і не ділитися між цими прикладами.


Привіт, хлопце, проблема полягає в тому, що клієнти ЄС та США повинні мати доступ до одних і тих же даних. Чи є якесь вирішення / ідея?
Іон

Як часто ці дані оновлюються (якщо не часто ви можете легко їх повторити між регіонами)?
Хлопець

Дані в цілому оновлюються часто. І вони почнуть оновлюватися частіше, оскільки додаток зростає у користувачів. Я думаю, що ми повинні шукати якісь інші рішення.
Іон

4

RDS відмінно підходить для розгортання в одній області через низьку затримку, але це стає іншою історією, коли ви починаєте розширюватися на різні регіони. Якщо ви хочете зберегти екземпляр RDS, ви можете створити власний сервер MySQL в регіоні ЄС і зробити реплікацію. Таким чином, швидкість буде куди більш прийнятною.


1
Чи є якийсь (напів) автоматичний спосіб копіювання екземпляра RDS через інтервал? Будь-які ідеї? Я припускаю, що ця репліка також буде читатися лише так, правда?
Іон

AWS за замовчуванням підтримує читання-репліки, це правильно: aws.amazon.com/rds/faqs/#86 - Я впевнений, що це можливо зробити реплікацію для читання / запису, але це поза сферою SF (я би перевірив наш Сайт DBA).
Натан C

Так, але репліки для читання створюються в одному регіоні. Нам потрібна репліка читання в іншому регіоні, і я востаннє перевіряв, чи не підтримують вони це.
Іон


1

Я вірю, що це те, чого ти хочеш. Реплікація RDS на керування mysql EC2 в іншому регіоні.

https://aws.amazon.com/about-aws/whats-new/2013/09/05/amazon-rds-new-data-migration-capa sposobnosti-mysql/


Ласкаво просимо до помилки сервера! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
slm

Дякую, здається цікавим! Це більш релевантне посилання: docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
Іон

0

Одним з можливих рішень для покращення затримки могло б стати використання Amazon ElastiCache (який в основному Memcached під обкладинками).

Вам потрібно буде створити вузол ElastiCache у кожному регіоні (США-EST та ЄС) і ваша логіка програми (EC2) використовувати вузол кешу, коли це можливо. Якщо ви підете цим маршрутом, вам доведеться перепрофілювати додаток 1) знати, що робити кешування, коли і 2), щоб схопити якнайбільше з локального вузла ElastiCache.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.