AWS анонсував попередній перегляд Amazon Aurora DSQL на AWS re:Invent 2024, нової розподіленої безсерверної SQL бази даних з високою доступністю в режимі "active-active", що створена для полегшення масштабування та забезпечення стійкості ваших додатків. З Aurora DSQL можливо досягти високої доступності (99.999%) за допомогою багаторегіональних кластерів в режимі "active-active".
Aurora DSQL сумісний з PostgreSQL, пропонуючи практично необмежене масштабування і нульове управління інфраструктурою. Ми можемо створити кластер просто натиснувши кнопку, без турбот про налаштування кластерів, версії, сховище чи VPC.
Однією з важливих особливостей є сильна консистентність даних. Це означає, що ви можете запускати додатки в кількох регіонах, і всі читачі отримуватимуть однакові дані.
Aurora DSQL наразі доступний в попередньому перегляді в наступних регіонах AWS: US East (N. Virginia), US East (Ohio) та US West (Oregon).
Детальніше можна прочитати за наступним посиланням:
Отже, давайте дослідимо та перевіримо новий Aurora DSQL.
1. Створення кластера Aurora DSQL
Процес створення цього кластера дуже простий. Все, що потрібно, це знайти сервіс Amazon Aurora DSQL та натиснути "Створити кластер".
Я виберу опцію Multi-Region і вкажу регіон для зв'язуваного кластера та свідка.
Регіон зв'язуваного кластера: це регіон, де дані будуть репліковані, дозволяючи виконувати операції читання та запису на обох кластерах.
Регіон свідка: це третій регіон, який відіграє ключову роль у підтримці багаторегіональної стійкості та доступності. Він отримує всі дані, записані до зв'язуваних кластерів, але сам не дозволяє записів. Замість цього він зберігає обмежену кількість зашифрованих транзакційних журналів. Така конфігурація допомагає забезпечити консистентність та доступність ваших даних у кількох регіонах, навіть у разі відмов.
Через кілька хвилин кластер буде в статусі Active, і ми зможемо побачити два зв'язуваних регіони.
Тепер ми можемо перевірити з'єднання та реплікацію.
2. Генерація токена
Aurora DSQL використовує ролі та політики IAM для авторизації кластерів. Тому потрібно згенерувати токен і використовувати його для підключення. Токен можна згенерувати кількома способами, наприклад, за допомогою AWS CLI, AWS Cloudshell, SDK або AWS Console.
Якщо ви хочете згенерувати його через AWS CLI за допомогою команди “aws dsql generate-db-connect-admin-auth-token”, вам, можливо, потрібно буде оновити AWS CLI, оскільки DSQL — це нова послуга. Ми можемо оновити AWS CLI, слідуючи інструкціям за посиланням: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
Я використаю Console для цього. Просто виберіть ваш кластер і натисніть Connect.
Відкриється нове вікно, в якому ви зможете побачити і скопіювати токен. Цей токен буде паролем для підключення до кластера.
3. Підключення до кластера
Ми можемо підключитися до нашого кластера за допомогою SDK або за допомогою SQL-клієнта. Я використаю DBeaver.
Спочатку потрібно завантажити DBeaver за посиланням: Download | DBeaver Community
Після встановлення відкрийте DBeaver і слідуйте інструкціям:
- Перейдіть до New Database Connection і виберіть PostgreSQL.
- У вкладці Main, Connect by буде Host.
- Для Host вставте endpoint кластера.
- Для Database введіть postgres.
- Username буде admin
6.
Пароль буде токеном, який ми отримали на кроці 2.
Після підключення ми створимо схему, таблицю та вставимо деякі дані.
4. Вставка даних
Перейдіть до SQL редактора та використайте наступні команди:
CREATE SCHEMA ecommerce;
CREATE TABLE ecommerce.products (
product_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
product_description VARCHAR(250),
product_color VARCHAR(250),
product_value DECIMAL(18,2)
);
Давайте вставимо 2 продукти:
insert into ecommerce.products (product_description, product_color, product_value) values ('Laptop Dell', 'Black', 1200)
insert into ecommerce.products (product_description, product_color, product_value) values ('SmartTV Samsung 55', 'Black', 850)
Якщо ми виконаємо команду нижче, ми побачимо два продукти:
select * from ecommerce.products
Тепер перевіримо, чи ці два продукти були репліковані до кластера в іншому регіоні.
Повторіть кроки 2 та 3 для отримання токену та підключення до кластера в іншому регіоні. Після підключення перейдіть до SQL редактора та виконайте команду:
select * from ecommerce.products
Ми можемо побачити, що два продукти були успішно репліковані.
Тепер давайте додамо новий продукт, використовуючи другий кластер.
insert into ecommerce.products (product_description, product_color, product_value) values ('IPhone 15', 'White', 1600)
Якщо ми повернемося до основного кластера, цей продукт буде реплікований. Це демонструє, що ми можемо записувати в обидва кластери, і дані будуть репліковані до іншого кластера.
Чудово! З цією простою демонстрацією ми можемо зрозуміти, як можна використати переваги Aurora DSQL з Multi-Region для реплікації даних в інший регіон, підвищуючи продуктивність, стійкість і відмовостійкість.
Що з ціноутворенням? На даний момент Aurora DSQL доступний у режимі попереднього перегляду безкоштовно. AWS опублікує додаткову інформацію про модель білінгу, коли Aurora DSQL стане загальнодоступним.
Перекладено з: Amazon Aurora DSQL: New Serverless, Distributed and Multi-Region SQL Database