Amazon Aurora DSQL: Нова безсерверна, розподілена та багаторегіональна SQL база даних

AWS анонсував попередній перегляд Amazon Aurora DSQL на AWS re:Invent 2024, нової розподіленої безсерверної SQL бази даних з високою доступністю в режимі "active-active", що створена для полегшення масштабування та забезпечення стійкості ваших додатків. З Aurora DSQL можливо досягти високої доступності (99.999%) за допомогою багаторегіональних кластерів в режимі "active-active".

pic

Aurora DSQL сумісний з PostgreSQL, пропонуючи практично необмежене масштабування і нульове управління інфраструктурою. Ми можемо створити кластер просто натиснувши кнопку, без турбот про налаштування кластерів, версії, сховище чи VPC.

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

Aurora DSQL наразі доступний в попередньому перегляді в наступних регіонах AWS: US East (N. Virginia), US East (Ohio) та US West (Oregon).

Детальніше можна прочитати за наступним посиланням:

Що таке Amazon Aurora DSQL? — Amazon Aurora DSQL

Отже, давайте дослідимо та перевіримо новий Aurora DSQL.

1. Створення кластера Aurora DSQL

Процес створення цього кластера дуже простий. Все, що потрібно, це знайти сервіс Amazon Aurora DSQL та натиснути "Створити кластер".

Я виберу опцію Multi-Region і вкажу регіон для зв'язуваного кластера та свідка.

Регіон зв'язуваного кластера: це регіон, де дані будуть репліковані, дозволяючи виконувати операції читання та запису на обох кластерах.

Регіон свідка: це третій регіон, який відіграє ключову роль у підтримці багаторегіональної стійкості та доступності. Він отримує всі дані, записані до зв'язуваних кластерів, але сам не дозволяє записів. Замість цього він зберігає обмежену кількість зашифрованих транзакційних журналів. Така конфігурація допомагає забезпечити консистентність та доступність ваших даних у кількох регіонах, навіть у разі відмов.

pic

Через кілька хвилин кластер буде в статусі Active, і ми зможемо побачити два зв'язуваних регіони.

pic

Тепер ми можемо перевірити з'єднання та реплікацію.

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.

pic

Відкриється нове вікно, в якому ви зможете побачити і скопіювати токен. Цей токен буде паролем для підключення до кластера.

3. Підключення до кластера

Ми можемо підключитися до нашого кластера за допомогою SDK або за допомогою SQL-клієнта. Я використаю DBeaver.

Спочатку потрібно завантажити DBeaver за посиланням: Download | DBeaver Community

Після встановлення відкрийте DBeaver і слідуйте інструкціям:

  1. Перейдіть до New Database Connection і виберіть PostgreSQL.
  2. У вкладці Main, Connect by буде Host.
  3. Для Host вставте endpoint кластера.
  4. Для Database введіть postgres.
  5. Username буде admin
    6.
    Пароль буде токеном, який ми отримали на кроці 2.

pic

Після підключення ми створимо схему, таблицю та вставимо деякі дані.

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

pic

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

Повторіть кроки 2 та 3 для отримання токену та підключення до кластера в іншому регіоні. Після підключення перейдіть до SQL редактора та виконайте команду:

select * from ecommerce.products

Ми можемо побачити, що два продукти були успішно репліковані.

pic

Тепер давайте додамо новий продукт, використовуючи другий кластер.

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

Leave a Reply

Your email address will not be published. Required fields are marked *