Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/8612
Title: Дослідження та оптимізація методів синхронізації баз даних різних типів з використанням рішень AWS
Authors: РУДНИЦЬКИЙ, Володимир
СТРАТІЛАТОВА, Анжеліка
Issue Date: 2024
Abstract: Дослідження та оптимізація методів синхронізації баз даних різних типів з використанням рішень AWS є важливим кроком до створення ефективних систем для обробки та аналізу даних. У роботі розглядається розробка системи, що забезпечує зручний доступ до інформації через інтеграцію даних з різних джерел, спрощення аналізу та інтуїтивний інтерфейс для пошуку і візуалізації результатів. Система покликана підвищити ефективність обробки даних, прийняття рішень і продуктивність підприємств, скорочуючи час на аналіз і пошук необхідної інформації. Основою системи є інфраструктура AWS, яка надає можливості для надійного зберігання, обробки та масштабування даних, забезпечуючи високу доступність і безпеку. Використання хмарних технологій дозволяє знизити витрати на апаратне забезпечення і звільняє підприємства від необхідності підтримки складної внутрішньої інфраструктури, що сприяє зосередженню на розвитку бізнес-процесів. Мета кваліфікаційної роботи полягає в тому, щоб розробити систему, що забезпечує зручний доступ до інформації через інтеграцію даних з різних джерел, спрощення аналізу та інтуїтивний інтерфейс для пошуку і візуалізації даних. Система покликана підвищити ефективність обробки даних, прийняття рішень та продуктивність підприємств, скорочуючи час на аналіз і пошук необхідної інформації. Вона базується на інфраструктурі AWS, що забезпечує надійність, масштабованість, безпеку та зниження витрат на апаратне забезпечення, дозволяючи підприємствам зосередитися на вдосконаленні інших процесів. Об’єкт дослідження – методи синхронізації та інтеграції баз даних різних типів з використанням рішень AWS, а також ефективність застосування хмарної інфраструктури для обробки та зберігання даних. Предмет дослідження - процеси синхронізації баз даних різних типів, методи оптимізації інтеграції даних та використання рішень AWS для підвищення ефективності обробки, аналізу та доступу до інформації. Наукова новизна полягає в комплексному підході щодо синхронізації баз даних різних типів за допомогою рішень AWS, що дозволяє забезпечити високу ефективність інтеграції та обробки даних. Вдосконалення інтерфейсу для пошуку і візуалізації результатів, а також використання хмарних технологій AWS для зберігання та обробки даних відкриває нові можливості для масштабованості, безпеки та економії витрат на інфраструктуру підприємств. Цей підхід дозволяє значно скоротити час на обробку даних, підвищуючи загальну продуктивність і точність прийняття рішень у бізнес- процесах. Практична цінність результатів полягає в розробці ефективної системи синхронізації баз даних різних типів, що використовує рішення AWS для інтеграції, обробки та аналізу даних. Запропонована система дозволяє підприємствам значно знизити витрати на підтримку інфраструктури, оскільки хмарні технології AWS забезпечують високу доступність, масштабованість та безпеку без необхідності складного апаратного забезпечення. Зручний інтерфейс для пошуку і візуалізації даних сприяє зниженню часу на прийняття рішень та покращенню загальної ефективності бізнес-процесів. Це дозволяє організаціям підвищити продуктивність, зменшити витрати на обробку даних та зосередитися на розвитку стратегічних напрямків діяльності. У першому розділі розглядається аналіз предметної області та постановка задачі дослідження. У другому розділі описується вибір технології та інструментальних засобів розробки системи. У третьому розділі наводиться оптимізація методів синхронізації баз даних різних типів з використанням рішень AWS. Висновки містять основні результати роботи. У додатках наведено специфікацію, текст програми та інструкцію користувача. Загальний обсяг роботи становить 94 сторінки. У випускній кваліфікаційній роботі магістра 14 рисунків, 1 таблиця, 3 додатки. Для виконання роботи використано 23 літературних джерела.
URI: https://er.chdtu.edu.ua/handle/ChSTU/8612
Appears in Collections:123 Комп’ютерна інженерія (Системне програмування)

Files in This Item:
File Description SizeFormat 
1_ТИТУЛКА_Стратілатова-merged.pdf
  Restricted Access
2.54 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ
Пояснювальна записка
до кваліфікаційної роботи магістра
на тему: «Дослідження та оптимізація методів
синхронізації баз даних різних типів з
використанням рішень AWS»
ЧДТУ. 242328.003 ПЗ
Виконала: студентка 2 курсу, групи МСП-2306
спеціальності 123 – Комп’ютерна інженерія
за освітньою програмою – Системне
програмування
Анжеліка СТРАТІЛАТОВА
Керівник
доктор технічних наук, професор
Володимир РУДНИЦЬКИЙ
Н. контроль
Світлана ГРЕСЬКО
Рецензент
начальник відділу персоналу Черкаського
інституту пожежної безпеки імені Героїв
Чорнобиля НУЦЗ України, к.т.н., доцент
Віталій ЗАЖОМА
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ___________ Віра БАБЕНКО
Черкаси 2024 року
Форма № Н-9.01
Черкаський державний технологічний університет
Факультет інформаційних технологій і систем
Кафедра інформаційної безпеки та комп‘ютерної інженерії
Освітньо-кваліфікаційний рівень Магістр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Системне програмування
«ЗАТВЕРДЖУЮ»
Завідувач кафедри _____ Віра БАБЕНКО
«10» жовтня 2024 року
ЗАВДАННЯ
на кваліфікаційну роботу магістра студенту
Стратілатовій Анжеліці Миколаївні
(прізвище, ім‘я, по батькові)
1. Тема роботи Дослідження та оптимізація методів синхронізації баз даних різних
типів з використанням рішень AWS
Керівник роботи Рудницький Володимир Миколайович, доктор технічних наук, професор
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «07» жовтня 2024 р. № 299/04
2. Строк подання студентом роботи
3. Вихідні дані до роботи:
Дані, MySQL, PostgreSQL, MongoDB, Redshift синхронізація, AWS, DMS, оптимізація,
міграція, хмара, інфраструктура, автоматизація, BigData.
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
Розділ 1 Аналіз предметної області та постановка задачі дослідження
Розділ 2 Вибір технології та інструментальних засобів розробки системи
Розділ 3 Оптимізація методів синхронізації баз даних різних типів з використанням рішень AWS
Висновки
Перелік скорочень та умовних позначень
Додатки
Список використаних джерел
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
Додаток А Специфікація
Додаток Б Текст програм
Додаток В Інструкція користувача
6. Консультанти розділів роботи
Підпис, дата
Розділ Прізвище, ініціали та
посада завдання видав завдання прийняв
консультанта
7. Дата видачі завдання 10 жовтня 2024 року
КАЛЕНДАРНИЙ ПЛАН
№ з/п Назва етапів кваліфікаційної роботи магістра Строк виконання
етапів роботи Примітка
1 Збір матеріалу 03.09 – 10.09 виконано
2 Обробка матеріалу 11.09 – 30.09 виконано
3 Обґрунтування актуальності виконання
досліджень 10.10 – 15.10 виконано
4 Оцінка стану проблеми, виокремлення виконано
дослідницьких задач, постановка задачі 16.10 – 25.10
дослідження
5 Викладення сутності і результатів дослідження 26.10 – 28.10 виконано
6 Практичне застосування результатів виконано
дослідження 29.10 – 05.11
7 Оформлення результатів в пояснювальну записку 06.11 – 15.11 виконано
8 Подання роботи на відгук та рецензування 16.11 – 30.11 виконано
9 Подання роботи на відгук та рецензування 03.12.24 виконано
10 Захист роботи 17.12.2024
Студент-магістрант __________________________ Анжеліка СТРАТІЛАТОВА
(підпис)
Керівник роботи ___________________________ Володимир РУДНИЦЬКИЙ
(підпис)
АНОТАЦІЯ
Дослідження та оптимізація методів синхронізації баз даних різних
типів з використанням рішень AWS є важливим кроком до створення
ефективних систем для обробки та аналізу даних. У роботі розглядається
розробка системи, що забезпечує зручний доступ до інформації через
інтеграцію даних з різних джерел, спрощення аналізу та інтуїтивний інтерфейс
для пошуку і візуалізації результатів. Система покликана підвищити
ефективність обробки даних, прийняття рішень і продуктивність підприємств,
скорочуючи час на аналіз і пошук необхідної інформації.
Основою системи є інфраструктура AWS, яка надає можливості для
надійного зберігання, обробки та масштабування даних, забезпечуючи високу
доступність і безпеку. Використання хмарних технологій дозволяє знизити
витрати на апаратне забезпечення і звільняє підприємства від необхідності
підтримки складної внутрішньої інфраструктури, що сприяє зосередженню на
розвитку бізнес-процесів.
Мета кваліфікаційної роботи полягає в тому, щоб розробити систему,
що забезпечує зручний доступ до інформації через інтеграцію даних з різних
джерел, спрощення аналізу та інтуїтивний інтерфейс для пошуку і візуалізації
даних. Система покликана підвищити ефективність обробки даних, прийняття
рішень та продуктивність підприємств, скорочуючи час на аналіз і пошук
необхідної інформації. Вона базується на інфраструктурі AWS, що забезпечує
надійність, масштабованість, безпеку та зниження витрат на апаратне
забезпечення, дозволяючи підприємствам зосередитися на вдосконаленні
інших процесів.
Об’єкт дослідження – методи синхронізації та інтеграції баз даних
різних типів з використанням рішень AWS, а також ефективність застосування
хмарної інфраструктури для обробки та зберігання даних.
Предмет дослідження - процеси синхронізації баз даних різних типів,
методи оптимізації інтеграції даних та використання рішень AWS для
підвищення ефективності обробки, аналізу та доступу до інформації.
Наукова новизна полягає в комплексному підході щодо синхронізації
баз даних різних типів за допомогою рішень AWS, що дозволяє забезпечити
високу ефективність інтеграції та обробки даних. Вдосконалення інтерфейсу
для пошуку і візуалізації результатів, а також використання хмарних
технологій AWS для зберігання та обробки даних відкриває нові можливості
для масштабованості, безпеки та економії витрат на інфраструктуру
підприємств. Цей підхід дозволяє значно скоротити час на обробку даних,
підвищуючи загальну продуктивність і точність прийняття рішень у бізнес-
процесах.
Практична цінність результатів полягає в розробці ефективної системи
синхронізації баз даних різних типів, що використовує рішення AWS для
інтеграції, обробки та аналізу даних. Запропонована система дозволяє
підприємствам значно знизити витрати на підтримку інфраструктури, оскільки
хмарні технології AWS забезпечують високу доступність, масштабованість та
безпеку без необхідності складного апаратного забезпечення. Зручний
інтерфейс для пошуку і візуалізації даних сприяє зниженню часу на прийняття
рішень та покращенню загальної ефективності бізнес-процесів. Це дозволяє
організаціям підвищити продуктивність, зменшити витрати на обробку даних
та зосередитися на розвитку стратегічних напрямків діяльності.
У першому розділі розглядається аналіз предметної області та
постановка задачі дослідження.
У другому розділі описується вибір технології та інструментальних
засобів розробки системи.
У третьому розділі наводиться оптимізація методів синхронізації баз
даних різних типів з використанням рішень AWS.
Висновки містять основні результати роботи. У додатках наведено
специфікацію, текст програми та інструкцію користувача. Загальний обсяг
роботи становить 94 сторінки. У випускній кваліфікаційній роботі магістра
14 рисунків, 1 таблиця, 3 додатки. Для виконання роботи використано 23
літературних джерела.
ANOTATION
Research and optimization of methods for synchronizing databases of various
types using AWS solutions is an important step towards creating effective systems
for data processing and analysis. The work considers the development of a system
that provides convenient access to information through the integration of data from
various sources, simplification of analysis and an intuitive interface for searching
and visualizing results. The system is designed to increase the efficiency of data
processing, decision-making and productivity of enterprises, reducing the time for
analysis and searching for the necessary information.
The basis of the system is the AWS infrastructure, which provides
opportunities for reliable storage, processing and scaling of data, ensuring high
availability and security. The use of cloud technologies allows you to reduce
hardware costs and frees enterprises from the need to maintain a complex internal
infrastructure, which helps to focus on the development of business processes.
The purpose of the qualification work is to develop a system that provides
convenient access to information through the integration of data from various
sources, simplification of analysis and an intuitive interface for searching and
visualizing. The system is designed to increase the efficiency of data processing,
decision-making and productivity of enterprises, reducing the time for analysis and
searching.
It is based on the AWS infrastructure, which provides reliability, scalability,
security and reduced hardware costs, allowing enterprises to focus on improving
business processes.
The object of research is methods for synchronizing and integrating databases
of various types using AWS solutions, as well as the effectiveness of using cloud
infrastructure for data processing and storage.
Research subject - the processes of synchronizing databases of various types,
methods for optimizing data integration and using AWS solutions to increase the
efficiency of processing, analysis and access to information.
The scientific novelty lies in an integrated approach to synchronizing
databases of various types using AWS solutions, which allows for high efficiency
of data integration and processing. Improving the interface for searching and
visualizing results, as well as using AWS cloud technologies for data storage and
processing opens up new opportunities for scalability, security and cost savings for
enterprise infrastructure. This approach allows to significantly reduce the time for
data processing, increasing the overall productivity and accuracy of decision-making
in business processes.
The practical value of the results lies in the development of an effective system
for synchronizing databases of various types, which uses AWS solutions for data
integration, processing and analysis. The proposed system allows enterprises to
significantly reduce the costs of infrastructure support, since AWS cloud
technologies provide high availability, scalability and security without the need for
complex hardware. A convenient interface for searching and visualizing data helps
to reduce the time for decision-making and improve the overall efficiency of
business processes. This allows organizations to increase productivity, reduce data
processing costs and focus on the development of strategic areas of activity.
The first section considers the analysis of the subject area and the formulation
of the research problem.
The second section selects the technology and tools for system development
The third section optimizes the methods for synchronizing databases of
various types using AWS solutions.
The conclusions include the main results of the work. The appendices contain
the specification, program text and user manual. The total volume of the work is 94
pages. The master's qualification work contains 14 figures, 1 table, 3 appendices. 23
literary sources were used to complete the work.
2
ЗМІСТ
ВСТУП………………………………………………………………………… 4
РОЗДІЛ 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА
ЗАДАЧІ ДОСЛІДЖЕННЯ…………………………………………………..... 7
1.1 Аналіз предметної області……………………………………..... 7
1.2 Вибір напряму дослідження…………………………………….. 14
1.3 Постановка задачі……………………………………………….. 24
1.4 Висновки до розділу 1…………………………………………… 27
РОЗДІЛ 2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ………………………………………………………. 29
2.1 Огляд існуючих технологій…………………………………………. 29
2.2 Вибір технологій…………………………………………………….. 35
2.3 Висновки до розділу 2……………………………………………….. 47
РОЗДІЛ 3 ОПТИМІЗАЦІЯ МЕТОДІВ СИНХРОНІЗАЦІЇ БАЗ ДАНИХ
РІЗНИХТИПІВ З ВИКОРИСТАННЯМРІШЕНЬAWS……………………. 49
3.1 Структура системи………………………………………………....... 49
3.2 Опис функцій системи………………………………………………. 57
3.3 Забезпечення захисту інформації при роботі зі створеною
системою…………………………………………………………………. 63
3.4 Технічні вимоги для роботи з системою………………………......... 67
3.5 Оцінка ефективності застосування оптимізації методів
синхронізації баз даних різних типів з використанням рішень
AWS……………………………………………………………………… 70
3.6 Висновки до розділу 3……………………………………………….. 72
ВИСНОВКИ…………………………………………………………………… 74
ПЕРЕЛІК СКОРОЧЕНЬ ТАУМОВНИХПОЗНАЧЕНЬ…………………..... 76
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ…………………………………….. 77
3
ДОДАТКИ:
А – 482.ЧДТУ.42328-01 Дослідження та оптимізація методів
синхронізації баз даних різних типів з використанням рішень AWS
4
ВСТУП
Актуальність теми дослідження обумовлена сучасними викликами,
які постають перед компаніями у сфері управління великими обсягами даних.
У світі, де діджиталізація торкається всіх галузей, організації часто
використовують бази даних різних типів, наприклад, реляційні (MySQL,
PostgreSQL) та нереляційні (MongoDB). Забезпечення ефективної
синхронізації цих баз є ключовим для інтеграції даних, підвищення точності
аналітики та забезпечення швидкого доступу до інформації.
Рішення AWS [1], такі як Database Migration Service (DMS) та Redshift
[2,3,13,14], пропонують високоефективні інструменти для автоматизації
міграції, інтеграції та синхронізації даних між різними платформами. Це
дозволяє компаніям мінімізувати втрати даних, оптимізувати процеси та
забезпечити високу продуктивність. Крім того, із зростанням популярності
хмарних обчислень, таких як AWS, потреба в інструментах, які дозволяють
плавно переходити на хмарні платформи, значно зростає.
Дослідження цієї теми є важливим для вирішення задач, пов’язаних із
Big Data, автоматизацією, інтеграцією складних систем та покращенням
бізнес-процесів [3]. Оптимізація методів синхронізації баз даних відкриває
нові можливості для компаній, допомагає скоротити витрати та підвищити
конкурентоспроможність. У цьому контексті рішення AWS стають не лише
інструментом, але й стратегічним ресурсом для сучасних організацій. [3-7]
Мета кваліфікаційної роботи полягає в тому, щоб розробити систему,
що забезпечує зручний доступ до інформації через інтеграцію даних з різних
джерел, спрощення аналізу та забезпечення інтуїтивного інтерфейсу для
пошуку і візуалізації.
5
Система покликана підвищити ефективність обробки даних, прийняття
рішень та продуктивність підприємств, скорочуючи час на аналіз і пошук.
Система, що розробляється, базується на інфраструктурі AWS (Amazon
Web Services), що забезпечує надійність, масштабованість, безпеку та
зниження витрат на апаратне забезпечення, дозволяючи підприємствам
зосередитися на вдосконаленні інших процесів.
Основні завдання та цілі роботи включають:
1. Дослідити технології, доступні для роботи з базами даних різних
типів (MySQL, PostgreSQL, MongoDB).
2. Розглянути можливості автоматизації процесів за допомогою
AWS Database Migration Service (DMS).
3. Провести аналіз ефективності рішень AWS для міграції та
синхронізації даних.
4. Вивчити можливі обмеження та виклики, пов’язані з інтеграцією
баз даних у хмарному середовищі.
5. Провести тестування запропонованих рішень для оцінки їх
продуктивності.
На цей час існує багато джерел інформації, наприклад книга “AWS
Database Migration Service: Step-by-Step Guide”, присвячена міграції баз даних
з використанням AWS DMS. У ній детально описуються процеси
налаштування джерел і цільових баз, автоматизація синхронізації, а також
інтеграція даних у хмару. Автори діляться прикладами реальних кейсів,
зосереджуючись на оптимізації продуктивності. А в “Big Data Integration with
AWS” висвітлюються методи інтеграції великих даних у хмарній екосистемі
AWS. Основна увага приділяється використанню Redshift для аналітики, Step
Functions для оркестрації процесів і автоматизації роботи з різними типами
баз даних.
6
Об’єкт дослідження – методи синхронізації та інтеграції баз даних
різних типів з використанням рішень AWS, а також ефективність застосування
хмарної інфраструктури для обробки та зберігання даних.
Предмет дослідження – процеси синхронізації баз даних різних типів,
методи оптимізації інтеграції даних та використання рішень AWS для
підвищення ефективності обробки, аналізу та доступу до інформації.
Наукова новизна полягає в комплексному підході до синхронізації баз
даних різних типів за допомогою рішень AWS, що дозволяє забезпечити
високу ефективність інтеграції та обробки даних. Вдосконалення інтерфейсу
для пошуку і візуалізації результатів, а також використання хмарних
технологій AWS для зберігання та обробки даних відкриває нові можливості
для масштабованості, безпеки та економії витрат на інфраструктуру
підприємств. Цей підхід дозволяє значно скоротити час на обробку даних,
підвищуючи загальну продуктивність і точність прийняття рішень у бізнес-
процесах. Це дослідження робить вагомий внесок у розвиток сучасних
технологій хмарного обчислення та інтеграції даних.
Кваліфікаційна робота складається з 3-х розділів, в яких подається
інформація таким чином:
1. У першому розділі розглядається аналіз предметної області та
постановка задач.
2. У другому розділі описано вибір технології та інструментальних
засобів розробки системи.
3. У третьому розділі наведена оптимізація методів синхронізації
баз даних різних типів з використанням рішень AWS.
Використана література, під час написання кваліфікаційної роботи,
досить добре розкриває тему та відображає потреби для аналізу.
7
РОЗДІЛ 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА
ЗАДАЧІ ДОСЛІДЖЕННЯ
1.1 Аналіз предметної області
Бази даних (БД) – це структуровані сховища інформації, організовані
таким чином, щоб спростити доступ, обробку та управління даними. Вони є
основою для зберігання даних в інформаційних системах та служать для
забезпечення швидкого пошуку, аналізу і синхронізації інформації. [6]
Дослідження та оптимізації методів синхронізації баз даних різних типів
для використання БД дозволяє [1-3]:
1. Забезпечити централізоване сховище даних.
2. Забезпечити актуальність даних у реальному часі.
3. Полегшити обмін даними між системами різного типу через
інтеграційні рішення, такі як AWS.
Бази даних потрібні для забезпечення ефективного зберігання даних у
цифровій формі. Полегшують пошук, оновлення, видалення та додавання
інформації. Дозволяють здійснювати складні аналітичні запити для прийняття
рішень. Використовуються для обміну інформацією між різними додатками
чи організаціями. Підтримують процеси автоматизації бізнесу, науки та інших
сфер діяльності. Забезпечують цілісність і безпеку даних, а також створення
резервних копій. [2,4]
Бази даних є основою сучасних інформаційних систем і широко
використовуються у фінансах, медицині, електронній комерції, науці,
виробництві та інших галузях. Вони особливо важливі для оптимізації
процесів синхронізації даних між різними системами, що є ключовим
аспектом роботи з хмарними рішеннями, такими як AWS. [5,6]
8
MySQL – це реляційна система управління базами даних (RDBMS), що
використовує мову SQL (Structured Query Language) для управління даними.
Архітектура Microsoft SQL зображена на рисунку 1.1. [10]
Рисунок 1.1 – Архітектура MySQL
На зображенні рис. 1.1 представлена архітектура Microsoft SQL Server,
яка демонструє взаємодію між основними компонентами. Інтерфейси, через
які користувачі взаємодіють із базою даних.
SQL Server Network Interface (SNI) забезпечує комунікацію між клієнтом
і сервером. Реляційний двигун відповідає за обробку запитів, управління
транзакціями та оптимізацію виконання. Двигун збереження управляє
збереженням і отриманням даних. Містить об’єкти бази даних і пов’язані з
ними дані. Ця структура забезпечує ефективну обробку запитів і управління
даними. [10]
9
Особливості:
1. Підтримка ACID-транзакцій (через InnoDB).
2. Реплікація та кластеризація.
3. Висока сумісність із іншими мовами програмування.
Вона є однією з найпоширеніших завдяки своїй продуктивності,
масштабованості та простоті. MySQL підтримує транзакції, цілісність даних
та індексацію для швидкого доступу до великих обсягів даних.
Використовується у веб-додатках (WordPress, Joomla) та корпоративних
системах.
PostgreSQL – це потужна об’єктно-реляційна база даних, яка підтримує
стандарт SQL та розширені функції, такі як робота з JSON, створення складних
індексів і розширення, архітектура зображена на рисунку 1.2. [6,10]
Рисунок 1.2 – Архітектура PostgreSQL
На зображенні рис. 1.2 представлена архітектура PostgreSQL. Клієнтські
додатки відправляють запити через драйвери (JDBC, ODBC тощо). Postmaster
основний процес, який керує іншими компонентами. Background Writer і
Checkpointer оптимізують запис даних у файли. Shared Buffers
10
використовуються для зберігання тимчасових даних. WAL (Write-Ahead
Logging) забезпечує стійкість транзакцій.
Ця архітектура забезпечує масштабованість, стійкість та високу
продуктивність. [6,10]
Особливості:
1. Робота з об’єктами та нереляційними структурами.
2. Підтримка багаторівневої транзакційної ізоляції.
3. Вбудовані механізми резервування та масштабування.
Вона оптимально підходить для обробки великих обсягів даних та
складних аналітичних задач. PostgreSQL відома своєю надійністю,
стабільністю та відкритістю коду.
MongoDB – це нереляційна база даних, яка працює з даними у форматі
BSON (аналог JSON). Вона спеціалізується на роботі з великими обсягами
неструктурованих даних і є популярною у проектах, де важлива гнучкість
структури. [1,6,10]
Рисунок 1.3 – АрхітектураMongoDB
11
Зображення рис. 1.3 демонструє основну архітектуру MongoDB, яка включає
клієнтський рівень, звідки запити відправляються до бази. Mongos (Query
Router) відповідає за маршрутизацію запитів до відповідних серверів. Shard
дані розподілені між шардами для масштабування. Replica Set реплікація
забезпечує резервування даних кожного шарду. Config Servers зберігають
інформацію про розподіл даних у системі. [10-12]
Ця архітектура підтримує високу доступність і масштабованість.
MongoDB зберігає документи, що дозволяє швидко змінювати схеми та
обробляти дані у реальному часі.
Особливості:
1. Відсутність жорсткої схеми.
2. Широкі можливості масштабування (шардінг).
3. Підтримка агрегування даних та роботи з геолокацією.
Ці бази даних обирають залежно від потреб проєкту: для класичних
структурованих даних підійдуть MySQL і PostgreSQL, тоді як MongoDB
ідеально підходить для роботи з нереляційними даними.
Amazon Redshift – це хмарне рішення для аналітичних баз даних, яке
входить до складу AWS (Amazon Web Services). Це високопродуктивний
сервіс, що дозволяє здійснювати обробку великих обсягів даних (Big Data) для
бізнес-аналітики. Redshift базується на концепції колонкових баз даних, що
значно підвищує ефективність запитів, які агрегують дані, роблячи його
ідеальним для аналітичних задач. [13]
Зберігає дані в колонках замість рядків, що зменшує обсяг пам’яті та
підвищує швидкість обробки запитів. Оптимізований для операцій з великими
наборами даних. Redshift дозволяє горизонтально масштабувати
обчислювальні та зберігальні ресурси, додаючи вузли в кластер або
збільшуючи їх продуктивність. Підтримка розподілення даних між вузлами
для балансування навантаження.
Підтримує стандарт SQL для виконання запитів і сумісність із
популярними бізнес-інтелект інструментами, такими як Tableau, Power BI
12
тощо. Тісно інтегрується з іншими сервісами AWS, такими як Amazon S3 (для
завантаження даних), AWS Glue (ETL-процеси) і Amazon SageMaker (для
машинного навчання). Включає механізми автоматичної реплікації даних між
вузлами та резервування у фоні для забезпечення високої доступності та
відмовостійкості. [9-13]
Завдяки функції Redshift Spectrum можна виконувати запити до даних,
що зберігаються на Amazon S3, без попереднього імпорту в базу. [13]
Переваги використання колонкового зберігання та стиснення значно
підвищує швидкість обробки аналітичних запитів. Здатність легко змінювати
ресурси відповідно до обсягів даних. Підтримка режиму оплати лише за
використані ресурси. Підтримка шифрування даних під час передачі та
зберігання, відповідність стандартам GDPR, HIPAA. [11,12,14]
Сфери застосування:
1. Аналіз поведінки користувачів.
2. Створення звітів і панелей моніторингу для бізнесу.
3. Маркетинговий аналіз.
4. Обробка великих даних у фінансах, охороні здоров’я,
виробництві.
Amazon Redshift є ключовим компонентом у побудові хмарних дата-
центрів для аналітики, забезпечуючи швидкість, гнучкість і безпеку.
Архітектура Amazon Redshift демонструє, як сервіс обробляє дані, зображений
на рисунку 1.4. [13]
13
Рисунок 1.4 – Архітектура Amazon Redshift
Дані надходять з різних джерел (бази даних, файли в Amazon S3, потоки
даних). Дані імпортуються через сервіси ETL або за допомогою SQL-запитів.
Потім розподіляються між вузлами кластеру Redshift. Запити виконуються за
допомогою SQL, з можливістю обробки даних з Amazon S3 через Redshift
Spectrum. Дані передаються в BI-інструменти (наприклад, Tableau). [13]
Синхронізація баз даних є важливим процесом для забезпечення
узгодженості даних між різними системами або локаціями. Amazon Redshift
надає можливості ефективної синхронізації даних завдяки своїй архітектурі та
функціоналу. [6]
Бази даних, що обслуговують транзакції (OLTP), можуть бути
синхронізовані з Redshift, оптимізованим для аналітики (OLAP). Це дозволяє
агрегувати, аналізувати та отримувати інсайти з даних без впливу на основну
систему. Дані можуть надходити з різних джерел: реляційних баз (MySQL,
PostgreSQL), NoSQL (MongoDB), або файлових сховищ (Amazon S3). [6-10]
Redshift забезпечує їх централізовану синхронізацію, об’єднуючи дані
в одному сховищі для подальшого аналізу. З використанням таких
14
інструментів, як AWS Glue або власних функцій копіювання (COPY), дані
завантажуються та синхронізуються з мінімальними затримками. [13]
Завдяки синхронізації баз з Redshift можна уникнути дублювання,
розбіжностей або втрати інформації під час обробки великих обсягів даних.
Redshift дозволяє синхронізувати дані між локальними серверами,
хмарними платформами та зовнішніми базами для створення єдиного джерела
правди (single source of truth). Інтеграція з AWS DMS (Database Migration
Service) спрощує процеси міграції й синхронізації баз даних. Синхронізація в
Redshift дозволяє адаптуватися до змін у розмірах даних, динамічно додаючи
ресурси для обробки нових потоків інформації. [13]
Amazon Redshift відіграє ключову роль у сучасній обробці даних,
роблячи процес синхронізації швидким, надійним і оптимізованим для
аналітики. [10-14]
1.2 Вибір напряму дослідження
Big Data – це великий обсяг структурованих, напівструктурованих та
неструктурованих даних, які настільки великі, що традиційні методи обробки
не можуть ефективно працювати з ними [12,15,17]. На рисунку 1.5 зображено
концепцію “V” [12].
Рисунок 1.5 – Концепція “V”
15
Основними характеристиками великих даних є [12]:
1. Volume (Обсяг): Великі дані охоплюють масивні обсяги
інформації (терабайти чи петабайти), що походять із численних джерел:
сенсори, соціальні мережі, транзакції тощо.
2. Variety (Різноманітність): Дані можуть бути структурованими
(таблиці баз даних) і неструктурованими (тексти, відео, графіки).
3. Velocity (Швидкість): Дані часто обробляються в режимі
реального часу для швидкого реагування.
4. Veracity (Достовірність): Надійність даних важлива для
коректного аналізу та уникнення помилкових рішень.
5. Variability (Мінливість): Дані змінюються з часом, вимагаючи
адаптивного підходу до їх аналізу.
Великі дані допомагають аналізувати маршрути й оптимізувати їх
завдяки даним із GPS і сенсорів транспортних засобів. Наприклад, Uber
використовує ці дані для управління попитом і пропозицією через мобільний
застосунок. [17,21]
Big Data дають змогу аналізувати клінічні дані, розробляючи
індивідуальні методи лікування. IBM Watson Health використовує ці
технології для інноваційних рішень у боротьбі з хворобами. [17,21]
Роздрібні компанії аналізують покупки клієнтів для створення
персоналізованих пропозицій. Netflix використовує Big Data для
рекомендаційного контенту. Аналіз даних із Facebook, Twitter або Instagram
дозволяє вивчати поведінку, тренди та настрої користувачів. [17,21,23]
Геномні дані дозволяють досліджувати генетичні захворювання,
створюючи персоналізовані методи лікування. Платформи, такі як Google та
YouTube, аналізують мільярди дій користувачів, оптимізуючи алгоритми
пошуку, рекомендації й персоналізацію. [17,21]
Переваги використання Big Data є в аналізі великих даних, що сприяє
оптимізації процесів, управлінню ресурсами та підвищенню ефективності
роботи організацій.
16
Використання Big Data дозволяє компаніям краще розуміти поведінку
та уподобання клієнтів, створювати персоналізовані продукти й послуги.
Можливість аналізувати дані в реальному часі дає бізнесу перевагу в
швидкості реагування на ринкові зміни.
Аналіз великих даних відкриває нові можливості для розробки сучасних
продуктів та технологій, які відповідають ринковим вимогам.
Недоліки використання Big Data полягає в тому, що обробка великих
обсягів даних може порушити конфіденційність особистої інформації,
підвищуючи ризики витоків та зловживань. [12]
Неповні, застарілі чи неточні дані можуть викликати помилкові
аналітичні висновки, що шкодить стратегіям компанії.
Реалізація технологій для роботи з Big Data потребує значних
фінансових вкладень у програмне забезпечення, обладнання та кваліфікований
персонал.
Використання персональних даних породжує етичні дилеми, зокрема
ризик упередженості чи дискримінації.
Обробка надмірного обсягу даних ускладнює ідентифікацію важливих
відомостей серед менш значущої інформації.
Майбутнє великих даних відкриває надзвичайні перспективи.
Збільшення обсягу інформації створює нові можливості для аналізу
залежностей між явищами в різних галузях, від бізнесу до медицини. [17,23]
Сучасні технології обробки даних дозволяють аналізувати їх швидше й
точніше, а інструменти штучного інтелекту та машинного навчання
забезпечують автоматизацію процесів і відкривають нові закономірності.
Опанування навичок роботи з великими даними стає життєво важливим.
Це сприяє розвитку кар’єри та створює більш інформований і краще
організований світ.
Великі дані є фундаментальною складовою сучасного бізнесу та
суспільства. Їхній аналіз дає компаніям змогу отримувати стратегічно важливу
інформацію, що сприяє прийняттю ефективних рішень і збереженню
17
конкурентних переваг. Постійний розвиток технологій і збільшення обсягів
даних вказує на подальше зростання важливості Big Data. Це відкриває нові
горизонти для інновацій та прогресу, формуючи майбутнє багатьох сфер
життя.
Amazon Redshift є одним із найпопулярніших рішень для обробки та
аналізу великих даних у бізнес-аналітиці. Redshift оптимізовано для
аналітичних запитів. Він працює з колонковою структурою даних, що
дозволяє швидко аналізувати великі набори. [13]
Підтримує масштабування від кількох гігабайтів до петабайтів, що
забезпечує гнучкість для зростання компанії.
Легка інтеграція з іншими сервісами Amazon, такими як S3 або Glue,
спрощує завантаження, обробку та візуалізацію даних.
Redshift пропонує економічно вигідні рішення для зберігання та аналізу,
що робить його доступним навіть для середнього бізнесу.
Інтегрується з популярними бізнес-аналітичними інструментами,
такими як Tableau, Power BI, і Qlik, для зручного створення звітів і дашбордів.
Використовує розподілену обробку даних, дозволяючи виконувати
запити швидше та з більшою точністю.
Таким чином, Redshift допомагає бізнес-аналітикам оперативно
отримувати інсайти з великих даних, приймати стратегічні рішення та
ефективно управляти бізнес-процесами. [13,23]
Синхронізація даних між різними базами даних може стати викликом
через кілька причин. [14,16,23]
По-перше, бази даних можуть бути побудовані на різних платформах
(SQL, NoSQL, або спеціалізовані рішення), які мають несумісні формати
зберігання та структуру даних. Це ускладнює автоматизацію процесів,
вимагаючи ручного налаштування експорту й імпорту даних.
18
По-друге, великий обсяг даних потребує значних ресурсів для обробки.
Процес експорту, трансформації та імпорту може бути повільним і забирати
багато часу, особливо якщо використовуються неефективні інструменти.
По-третє, ручна робота підвищує ризик помилок. Дані можуть бути
втрачені, дубльовані або змінені через людський фактор. Крім того, підтримка
актуальності даних у реальному часі в різних системах стає складною без
автоматизованих механізмів.
Необхідність синхронізувати не лише структуру, а й метадані (правила
валідації, типи даних, залежності) додає додатковий рівень складності. Це
ускладнює інтеграцію різнорідних джерел даних у єдину узгоджену систему.
AWS (Amazon Web Services) – провідна хмарна платформа, яка надає
широкий спектр інструментів для зберігання, обробки та управління даними.
AWS дозволяє компаніям масштабувати інфраструктуру, створювати сучасні
застосунки, знижувати витрати на підтримку серверів і збільшувати
продуктивність. Перелік сервісів зображено на рисунку 1.6. [18,19]
Рисунок 1.6 – AWS сервіси
19
Amazon EC2 – віртуальні сервери з налаштуванням потужностей для
запуску веб-додатків, великих аналітичних проєктів чи хостингу баз даних.
AWS Lambda – виконання коду без управління серверами (serverless),
корисно для масштабованих програм і мікросервісів.
Amazon S3 – надійне сховище для файлів, що забезпечує швидкий
доступ, високу доступність і автоматичне резервне копіювання.
Amazon Glacier – архівне зберігання для довгострокового утримання
даних за низькими цінами.
Amazon RDS – повністю керовані реляційні бази даних, які підтримують
MySQL, PostgreSQL, SQL Server та інші.
Amazon DynamoDB – нереляційна база даних із низькою затримкою, яка
ідеально підходить для великих обсягів даних.
Amazon Redshift – хмарний сховище для аналітики великих даних.
Amazon EMR – платформа для обробки великих даних із використанням
Apache Hadoop, Spark.
Amazon SageMaker – інструмент для створення, навчання та розгортання
моделей машинного навчання.
AWS Glue – автоматизація обробки даних для ETL (витяг, перетворення,
завантаження).
Amazon CloudFront – мережа доставки контенту (CDN) для швидкої
передачі відео, вебсторінок чи API-запитів.
Amazon VPC – створення ізольованих мережевих середовищ.
Інструменти AWS дозволяють шифрувати дані, створювати резервні
копії та забезпечувати контроль доступу.
AWS IAM – управління доступом до ресурсів із налаштуванням політик
безпеки.
Переваги AWS [12,18,19]:
1. Ресурси адаптуються під зростаючі потреби бізнесу;
2. Оплата лише за використані ресурси (pay-as-you-go);
3. Дата-центри AWS розташовані у всьому світі.
20
4. Інтеграція з сотнями сервісів і технологій.
AWS пропонує низку інструментів, які значно спрощують і
автоматизують процес синхронізації баз даних, усуваючи більшу частину
ручної роботи з експорту та імпорту даних. [16]
AWS Database Migration Service (DMS) цей сервіс дозволяє
автоматично переносити дані між базами даних із мінімальними простоями.
Він підтримує як однорідну міграцію (наприклад, з MySQL у MySQL), так і
гетерогенну (наприклад, з Oracle у PostgreSQL). DMS також підтримує
постійну реплікацію даних, забезпечуючи їхню актуальність у реальному часі.
Архітектуру або процес реплікації даних за допомогою AWS Database
Migration Service (DMS) зображено на рисунку 1.7 [12,17]
Рисунок 1.7 – Архітектура або процес реплікації даних за допомогою AWS
Database Migration Service.
Демонструє, як сервіс може синхронізувати дані між джерелом
(наприклад, локальною базою даних або хмарною службою) і цільовою базою
даних у AWS. Також показано підтримку постійного потоку даних (реплікації)
або одноразового перенесення.
AWS Glue – цей сервіс автоматизує процеси ETL (витяг, трансформація
та завантаження). Glue дозволяє інтегрувати дані з різних джерел, готуючи їх
для подальшого аналізу чи перенесення. Завдяки каталогу метаданих, Glue
спрощує ідентифікацію, доступ та синхронізацію даних між системами.
Компоненти зображені на рисунку 1.8. [21,22]
21
Рисунок 1.7 – Компоненти AWS Glue
Зображенні компоненти AWS Glue включають [17]:
1. Glue Data Catalog – централізоване сховище метаданих.
2. ETL Jobs – інструменти для витягування, трансформації та
завантаження даних.
3. Glue Crawlers – автоматизація збору метаданих із джерел даних.
4. Triggers and Workflows – керування послідовністю виконання
ETL-завдань.
Ці компоненти працюють разом для автоматизації обробки та
синхронізації даних у великих масштабах.
Amazon RDS – автоматизує управління реплікаціями баз даних,
забезпечуючи синхронізацію між основною базою та її репліками. Це включає
автоматичне оновлення даних і резервне копіювання, що знижує ймовірність
втрат або розбіжностей даних. Ключові аспекти представлені на рисунку 1.8.
[21-23]
22
Рисунок 1.8 – Ключові аспекти Amazon RDS
Ця платформа спрощує управління базами даних, оптимізуючи їх роботу
в хмарі.
Amazon DataSync – цей сервіс автоматизує перенесення даних між
локальними базами даних і хмарними сервісами AWS. Принцип роботи
зображено на рисунку 1.9. [21,22]
DataSync забезпечує високу швидкість і точність синхронізації,
підтримуючи регулярне оновлення даних без втручання людини.
23
Рисунок 1.9 – Принцип роботи Amazon DataSync
Lambda та EventBridge – дозволяє створювати автоматичні тригери
для синхронізації, наприклад, коли в базі даних відбувається оновлення. Її
архітектуру зображено на рисунку 1.10. [7,8]
Рисунок 1.10 – Архітектура Lambda та EventBridge
24
Разом із EventBridge можна організувати складні робочі процеси для
узгодження даних між різними базами.
S3 та Redshift для аналітики – для сховищ даних AWS S3 і Redshift
підтримують автоматизовані інструменти для завантаження, зберігання та
аналізу даних із різних джерел, зводячи до мінімуму ручне управління. [14,15]
Ці інструменти AWS не лише автоматизують синхронізацію даних, а й
підвищують ефективність, надійність та безпеку роботи з ними.
1.3 Постановка задачі
Головна задача випускної кваліфікаційної роботи магістра стосується
актуальної проблеми інтеграції даних у сучасному бізнес-середовищі, де
великі обсяги інформації вимагають ефективного управління, синхронізації та
аналізу.
Мета випускної кваліфікаційної роботи магістра полягає в тому, щоб
розробити систему, що забезпечує зручний доступ до інформації через
інтеграцію даних з різних джерел, спрощення аналізу та інтуїтивний інтерфейс
для пошуку і візуалізації даних. Система покликана підвищити ефективність
обробки даних, прийняття рішень та продуктивність підприємств, скорочуючи
час на аналіз і пошук необхідної інформації. Вона базується на інфраструктурі
AWS, що забезпечує надійність, масштабованість, безпеку та зниження витрат
на апаратне забезпечення, дозволяючи підприємствам зосередитися на
вдосконаленні інших процесів.
Для виконання поставленої мети у випускній роботі потрібно виконати
такі задачі: провести огляд баз даних як ключового елементу зберігання й
обробки даних; визначити як специфічні переваги так і недоліки популярних
систем, таких як MySQL, PostgreSQL і MongoDB, зокрема розглянути
проблему синхронізації між ними; запропонувати для вирішення визначених
проблем використання рішень AWS; розглянути існуючі технології та їх
порівняння для вибору хмарної інфраструктури AWS як основи для розробки
25
системи з метою забезпечення високої продуктивності, масштабованості,
безпеки, а також зниження витрат у порівнянні з традиційними підходами.
AWS Database Migration Service (DMS) – це хмарний сервіс, що
спрощує процес міграції даних між базами даних різних типів або версій. Він
дозволяє швидко й безперервно переносити дані з вихідної бази даних (source)
до цільової (target) із мінімальним простоєм для бізнесу. [11,14]
AWS DMS підтримує міграцію як для однорідних баз даних (наприклад,
зMySQL уMySQL), так і для неоднорідних (наприклад, з Oracle у PostgreSQL).
Сервіс забезпечує синхронізацію в реальному часі, дозволяючи користувачам
продовжувати працювати з базою даних навіть під час процесу міграції. Може
копіювати лише ті дані, які змінилися після початкового переносу, що значно
прискорює процес оновлення даних у цільовій базі. Сервіс автоматично
виконує всі необхідні операції міграції, включаючи моніторинг і повторне
підключення у разі збоїв. AWS DMS легко інтегрується з іншими сервісами
AWS, такими як Amazon RDS, Amazon Aurora, Amazon Redshift, що дозволяє
створювати комплексні рішення для зберігання та аналізу даних.
Переваги використання AWS DMS полягає в тому, що бази даних
залишаються доступними під час міграції. Підтримка великого спектру
реляційних баз даних (Oracle, SQL Server, MySQL, PostgreSQL) та
нереляційних баз (MongoDB, DynamoDB). Платіж здійснюється лише за
ресурси, використані під час міграції. Відсутність необхідності в складній
конфігурації або встановленні додаткового програмного забезпечення.
Міграція виконується з автоматичним відновленням у разі несправностей, що
забезпечує цілісність даних.
Сценарії використання AWS DMS можуть бути різні. Наприклад
перенесення баз даних з локальних серверів у хмару AWS, міграція з
застарілих баз даних на сучасніші або більш продуктивні або підтримка
гібридних середовищ із частковою міграцією або реплікацією даних між
локальними та хмарними базами.
26
AWS DMS є надійним та зручним рішенням для організацій, які хочуть
мінімізувати складність і ризики міграції баз даних, забезпечуючи
безперебійну роботу своїх додатків під час цього процесу. [11]
AWS Step Functions – це сервіс від Amazon Web Services, який спрощує
оркестрацію кількох AWS сервісів для виконання завдань. За допомогою Step
Functions можна створювати етапи в робочому процесі, де вихід одного етапу
стає вхідним для наступного, використовуючи візуальний редактор.
Сервіс пропонує корисні функції, такі як автоматичне повторення спроб,
відстеження та запуск кожного кроку, а також забезпечення правильного
порядку виконання етапів. Це особливо корисно для складних робочих
процесів з десятками кроків та сотнями паралельних виконань, що раніше
потребували значних зусиль у програмуванні. Архітектуру AWS Step
Functions зображено на рисунку 1.11. [10,16]
Рисунок 1.11 – Архітектура AWS Step Functions
Step Functions працює як автомат станів, де основні абстракції — це
стани. Конфігурація Step Functions являє собою карту всіх можливих етапів і
переходів між ними.
27
Ці стани і переходи визначаються за допомогою Amazon States Language
– мови, основаної на JSON, що є власністю Amazon. Можна знайти приклади
конфігурацій цієї мови в документації Step Functions.
При створенні безсерверних додатків розробники зазвичай прагнуть
масштабувати їх відповідно до зростаючого навантаження, зберігаючи низькі
витрати та дозволяючи кільком командам працювати одночасно над різними
частинами додатку. Для досягнення цих цілей найкраща практика в
безсерверній моделі – це розділення бізнес-логіки додатку на набір
роз’єднаних сервісів. Однак проблема виникає, коли ці сервіси потребують
доступу до спільного стану та управління потоком даних, що забезпечує AWS
Step Functions, дозволяючи ефективно керувати сервісами на великому
масштабі.
AWS Step Functions спрощує роботу безсерверних розробників,
дозволяючи швидко створювати складні послідовності завдань у AWS [23].
Вона автоматизує обробку помилок і логіку повторних спроб, відокремлюючи
бізнес-логіку додатка від логіки оркестрації. Від простого управління станом
між викликами безстанних функцій до паралельного виконання завдань – Step
Functions допомагає масштабувати додатки без значних операційних
навантажень. Це важливий інструмент для збереження ефективності та
простоти у складних безсерверних системах.
1.4 Висновки до розділу 1
Бази даних є критично важливими для зберігання, управління та
організації інформації. Вони використовуються для зберігання великих
обсягів даних, забезпечуючи ефективний доступ і обробку інформації.
Популярні системи баз даних, такі як MySQL, PostgreSQL та MongoDB,
використовуються для різних задач: від реляційних до документоорієнтованих
систем.
28
Redshift є масштабованим сервісом для зберігання і аналітики великих
даних, що дозволяє бізнес-аналітикам ефективно працювати з великими
обсягами інформації. Однак синхронізація різних баз даних потребує значних
зусиль, таких як ручний експорт і імпорт даних. Сервіси AWS, зокрема AWS
DMS і Step Functions, автоматизують ці процеси, спрощуючи синхронізацію
та знижуючи час і витрати.
29
РОЗДІЛ 2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ
2.1 Огляд існуючих технологій
Amazon Web Services (AWS) є однією з найбільших хмарних платформ
у світі, яка надає широкий спектр послуг для бізнесів будь-якого розміру [1-
3,11]. З моменту свого запуску в 2006 році AWS значно змінив ландшафт
хмарних обчислень, пропонуючи інфраструктуру як послугу (IaaS),
платформу як послугу (PaaS) і програмне забезпечення як послугу (SaaS) [4].
Вона дає компаніям доступ до різноманітних інструментів і технологій для
обробки даних, зберігання, аналітики, машинного навчання, обчислювальних
потужностей і багато іншого. [11]
Однією з основних переваг AWS є її масштабованість. Платформа
дозволяє компаніям орендувати необхідні обчислювальні ресурси, такі як
віртуальні сервери або бази даних, на вимогу, а також автоматично
масштабувати їх залежно від потреб. Це дає бізнесам можливість знижувати
витрати на інфраструктуру, оскільки вони платять лише за використані
ресурси. AWS також дозволяє користувачам створювати і управляти
складними рішеннями без необхідності закуповувати фізичне обладнання або
витрачати час на його налаштування та підтримку. [4-6]
AWS пропонує кілька основних категорій послуг, що охоплюють різні
аспекти бізнесу.
Обчислювальні ресурси одним із найвідоміших сервісів AWS є Amazon
EC2 (Elastic Compute Cloud). Це дозволяє користувачам орендувати віртуальні
машини для виконання різноманітних обчислювальних завдань, таких як
хостинг вебсайтів, запуск додатків або обробка даних. EC2 надає високий
рівень гнучкості, що дозволяє змінювати типи інстансів (віртуальних машин)
в залежності від вимог навантаження. Інші сервіси, як AWS Lambda,
30
забезпечують можливість запускати функції без необхідності керувати
серверами (безсерверна обробка), що є зручним для виконання малих і
середніх завдань на вимогу. [7-10]
Зберігання даних Amazon S3 (Simple Storage Service) дозволяє зберігати
неструктуровані дані, такі як зображення, відео та резервні копії, на
масштабованих серверах. Він дає змогу легко управляти великими обсягами
даних без необхідності фізично зберігати їх на власних серверах. Інші рішення
для зберігання включають Amazon EBS (Elastic Block Store), що дозволяє
використовувати дискові сховища для EC2, і Amazon Glacier, що
спеціалізується на довготривалому зберіганні даних за нижчими цінами. [7-
10]
Бази даних AWS також надає широкий вибір баз даних для різних
потреб. Amazon RDS (Relational Database Service) забезпечує управління
реляційними базами даних, такими як MySQL, PostgreSQL, Oracle та SQL
Server. Для більш масштабованих і специфічних завдань AWS пропонує
Amazon DynamoDB, що є повністю керованою NoSQL базою даних для
мобільних додатків і вебсайтів, і Amazon Redshift, що спеціалізується на
аналітиці великих даних. Redshift є одним із провідних рішень для аналізу Big
Data, оскільки дозволяє обробляти величезні обсяги даних і швидко
отримувати аналітичні висновки. [10,11]
Мережі та безпека AWS надає сервіси для побудови безпечних і
масштабованих мереж, зокрема AWS VPC (Virtual Private Cloud), що дозволяє
створювати ізольовані віртуальні мережі в хмарі. Для забезпечення безпеки
даних і доступу використовуються інструменти, як AWS IAM (Identity and
Access Management), що дозволяє управляти правами доступу та
ідентифікацією користувачів.
Машинне навчання та штучний інтелект одним із важливих напрямків
AWS є машинне навчання та штучний інтелект. Сервіс Amazon SageMaker
надає все необхідне для створення, тренування та розгортання моделей
машинного навчання. AWS також пропонує сервіси для аналізу даних, що
31
генеруються IoT пристроями (інтернет речей), та для створення чат-ботів (за
допомогою Amazon Lex). [12]
Інтеграція інтернету речей (IoT) є ще однією важливою частиною
екосистеми AWS. Сервіс AWS IoT дозволяє підключати пристрої, збирати
дані та аналізувати їх у реальному часі. Це забезпечує створення
інтелектуальних рішень для автоматизації та моніторингу різноманітних
систем. [19,20]
Для розробників мобільних і веб-додатків AWS пропонує інструменти
для створення та масштабування додатків. Наприклад, AWS Amplify дозволяє
швидко створювати додатки, інтегруючи бекенд-сервіси, бази даних і функції
хмарного обчислення без необхідності розгортання серверів. [19]
AWS працює з великою кількістю дата-центрів по всьому світу, що
дозволяє забезпечити високу доступність і відмовостійкість для користувачів.
Користувачі можуть обирати, де саме зберігати свої дані, гарантуючи
мінімальні затримки і високий рівень безпеки.
AWS постійно працює над забезпеченням високого рівня безпеки своїх
сервісів. Всі дані зашифровані за допомогою сучасних методів шифрування,
а доступ до них здійснюється за допомогою багаторівневої аутентифікації.
Крім того, AWS має сертифікацію від численних організацій і регулюючих
органів, що підтверджує відповідність міжнародним стандартам безпеки. [20]
Однією з головних переваг AWS є її масштабованість. Користувачі
можуть збільшувати або зменшувати обсяги використаних ресурсів в
реальному часі, що дозволяє значно зменшити витрати. AWS працює за
моделлю «оплати по факту споживання», де компанії платять лише за
використані ресурси. Це дає змогу бізнесам ефективно управляти витратами
та адаптувати хмарну інфраструктуру до своїх потреб. [21-23]
Amazon Web Services пропонує широкий спектр потужних інструментів
для хмарних обчислень, що дозволяє підприємствам скорочувати витрати,
підвищувати ефективність та швидко адаптуватися до змін. За допомогою
таких рішень, як Amazon EC2, S3, Redshift, Lambda, а також безлічі інших
32
сервісів, AWS забезпечує можливості для масштабування, зберігання та
аналізу даних, а також для впровадження інновацій у сферах, таких як
штучний інтелект і машинне навчання. Платформа надає компаніям всю
необхідну інфраструктуру для ефективної роботи в сучасному цифровому
середовищі, а її можливості безперервно вдосконалюються, що дозволяє
користувачам залишатися на передовій технологічного прогресу. [21-23]
AWS RDS (Relational Database Service) – це керований сервіс баз даних
від Amazon, який спрощує налаштування, експлуатацію та масштабування
реляційних баз даних у хмарі. Він підтримує кілька популярних СУБД, таких
як MySQL, PostgreSQL, MariaDB, Oracle і SQL Server, що дає змогу вибирати
найбільш підходящий інструмент для конкретних завдань
MySQL в AWS RDS є однією з найпоширеніших реляційних баз даних,
використовується для веб-додатків, що потребують високої продуктивності та
масштабованості. AWS RDS автоматизує багато рутинних операцій, таких як
оновлення, резервне копіювання та відновлення даних, що значно спрощує
адміністрування.
PostgreSQL – це потужна об’єктно-реляційна база даних, яка підтримує
складні запити та транзакції. Вона ідеально підходить для застосунків, що
вимагають високої надійності та точності. За допомогою AWS RDS для
PostgreSQL можна масштабувати базу, автоматизувати резервне копіювання
та оптимізувати продуктивність.
MongoDB, хоча це NoSQL база даних, може бути використана в рамках
AWS RDS через Amazon DocumentDB, який є сумісним з MongoDB. Це
дозволяє користувачам зберігати неструктуровані дані, такі як JSON-
документи, і використовувати потужні функції для обробки великих обсягів
даних. Amazon DocumentDB автоматизує масштабування, забезпечує високу
доступність і забезпечує захист даних.
AWSRDS дозволяє автоматизувати управління базами даних, знижуючи
адміністративне навантаження на користувачів та забезпечуючи високу
33
продуктивність, безпеку та масштабованість для підприємств будь-якого
розміру.
AWS Database Migration Service (DMS) дозволяє легко переносити
дані до Amazon Redshift, спрощуючи інтеграцію даних для аналітики. DMS
підтримує міграцію даних з різних джерел, таких як реляційні бази даних
(MySQL, PostgreSQL) або NoSQL, у Redshift для аналітичної обробки великих
обсягів даних. Це дозволяє ефективно масштабувати аналітичні системи,
зменшуючи час на міграцію та підтримуючи актуальність даних під час
переходу. Процес міграції зображено на рисунку 2.1. [13,16,18]
Рисунок 2.1. – Міграція AWS Database Migration Service
AWS Database Migration Service допомагає переносити дані між
найбільш популярними базами даних. Сервіс підтримує два типи міграцій:
1. Гомогенні міграції, наприклад, Oracle до Oracle.
2. Гетерогенні міграції між різними платформами баз даних,
наприклад, Oracle до MySQL або MySQL до Redshift MySQL-Compatible
Edition.
Процес міграції зазвичай виглядає так: створюється джерело та кінцеву
точку для міграції даних, планується задача для переносу, після чого DMS
автоматично створює таблиці та схеми на цільовому сервері або за потреби
можна зробити це вручну.
Перед підключенням Amazon Redshift за допомогою AWS DMS
необхідно надати основну інформацію про ваш обліковий запис AWS та
кластер Amazon Redshift, таку як пароль, ім’я користувача та ім’я бази даних.
34
Кластер Redshift має бути в тому ж обліковому записі AWS та регіоні, що й
екземпляр реплікації. Також необхідно надати специфічні привілеї для
таблиць, баз даних, схем, функцій, процедур або привілеїв рівня мови для
таблиць і подань Amazon Redshift. [13]
AWS DMS має кілька обмежень: підтримує лише певні версії та редакції
баз даних, не працює з певними типами таблиць (наприклад, вкладеними або
тимчасовими) та не підтримує довгі імена об’єктів (більше 30 байт), що
вимагає ручного експорту. Крім того, один з кінцевих точок має бути на AWS,
і міграція між двома локальними базами неможлива. Amazon Redshift не
підтримує VARCHAR понад 64 КБ і не може зберігати LOB з традиційних баз
даних.
AWS Step Functions – це потужний інструмент для оркестрації та
автоматизації процесів у хмарі. У випадку з Amazon Redshift, Step Functions
може бути використаний для координації багатьох етапів обробки даних.
Наприклад, можна автоматизувати процеси збереження даних у Redshift після
їх обробки іншими AWS сервісами, як-от AWS Lambda або Glue. Завдяки своїй
здатності керувати багатьма кроками та зберігати стан, Step Functions дозволяє
ефективно масштабувати й координувати складні операції з даними, що
зберігаються в Redshift.
Step Functions можуть автоматизувати процес завантаження даних із S3
у кластер Redshift. Це відбувається через інтеграцію з іншими сервісами AWS,
такими як Lambda або Glue. Наприклад, робочий процес може починатися з
завантаження даних у S3, їх трансформації за допомогою Glue, а потім
передачі до Redshift для аналітичного оброблення. [13,18]
Step Functions дозволяють виконувати складні сценарії обробки даних у
Redshift. Наприклад [18]:
1. Спочатку завантажуються дані з кількох джерел.
2. Відбувається нормалізація та перевірка даних на цілісність.
3. Після обробки виконується аналіз за допомогою SQL-запитів у
Redshift.
35
4. Результати аналітики автоматично пересилаються до інших
систем.
Цей сервіс легко інтегрується з Lambda, DMS, Glue та іншими
компонентами AWS. Наприклад, за допомогою Step Functions можна
налаштувати багатоступеневий процес міграції даних із локальних баз даних
у кластер Redshift.
Однією з головних переваг Step Functions є вбудовані інструменти
моніторингу та обробки помилок. Якщо якийсь етап робочого процесу зазнає
невдачі, сервіс автоматично перезапускає його. Це особливо важливо для
обробки великих обсягів даних, де збої можуть бути критичними. [16]
Приклад реального сценарію включає такі завдання:
1. Підготовка та завантаження даних із S3 у Redshift.
2. Виконання складних ETL-процесів через Glue.
3. Обробка даних за допомогою SQL-запитів у Redshift.
4. Збереження результатів аналізу назад до S3 для подальшого
використання.
Переваги використання Step Functions із Redshift полягає, що робочі
процеси легко автоматизуються, зменшуючи необхідність ручного втручання.
Сервіс підтримує як прості, так і багатоступеневі робочі процеси. Вбудовані
механізми відновлення після помилок забезпечують надійність. Завдяки
підтримці паралельних процесів Step Functions легко обробляє великі обсяги
даних.
Таким чином, AWS Step Functions забезпечує ефективний спосіб
керування завантаженням, обробкою та аналітикою даних у Redshift, значно
спрощуючи складні процеси. [16-18]
2.2 Вибір технологій
У сучасному світі бази даних відіграють ключову роль у забезпеченні
ефективного зберігання, управління та аналізу інформації. З розвитком
36
цифрових технологій обсяг даних, що генерується щодня, зростає в
геометричній прогресії, і організації потребують надійних інструментів для їх
опрацювання. Бази даних дозволяють структурувати інформацію таким
чином, щоб до неї можна було швидко і зручно отримувати доступ,
оновлювати, видаляти або аналізувати.
У бізнесі бази даних є основою для прийняття рішень, управління
клієнтськими відносинами та оптимізації операційних процесів. Наприклад,
компанії використовують їх для аналізу споживчих уподобань, що дозволяє
розробляти персоналізовані пропозиції. У сфері охорони здоров’я бази даних
допомагають зберігати медичні записи пацієнтів, полегшуючи діагностику та
лікування. Водночас у державному управлінні вони забезпечують прозорість
і доступність публічних даних.
Без баз даних неможливо уявити роботу сучасних веб-сервісів,
соціальних мереж, онлайн-магазинів та хмарних платформ. Вони є серцем
багатьох інформаційних систем, сприяючи автоматизації процесів і
підвищенню продуктивності. У світі, де швидкість і точність обробки даних
часто визначають конкурентоспроможність, бази даних стають критично
важливими для успіху як окремих підприємств, так і цілих галузей.
У сучасному світі майже всі підприємства, незалежно від розміру чи
галузі, використовують бази даних для управління своїми операціями. Однак
типи баз даних можуть суттєво відрізнятися залежно від потреб організації.
Великі корпорації часто застосовують реляційні бази даних для обробки
величезних обсягів структурованої інформації, такої як фінансові записи або
дані клієнтів. У той же час невеликі підприємства можуть покладатися на
більш прості рішення, наприклад, хмарні бази даних або навіть локальні
системи для обліку товарів і послуг.
Для зберігання неструктурованих даних, таких як зображення, відео або
журнали подій, використовуються нереляційні бази даних. Наприклад,
інтернет-магазини використовують бази даних для управління каталогами
товарів, обробки замовлень і відстеження запасів, тоді як медичні установи –
37
для зберігання електронних медичних записів і забезпечення швидкого
доступу до них.
Різноманіття типів баз даних дозволяє підприємствам обирати
оптимальні рішення відповідно до своїх потреб, що сприяє підвищенню
ефективності їхньої діяльності та забезпечує конкурентні переваги.
Сучасні підприємства активно впроваджують новітні підходи до
зберігання та обробки даних, що дозволяє їм залишатися
конкурентоспроможними в умовах швидкого розвитку технологій. Зростання
обсягів інформації вимагає використання сучасних баз даних, які здатні
забезпечити високу продуктивність, масштабованість і надійність.
Сьогодні організації переходять від традиційних реляційних баз даних
до більш гнучких рішень, таких як нереляційні бази (NoSQL), які чудово
підходять для роботи з великими обсягами неструктурованих даних. Водночас
дедалі популярнішими стають хмарні бази даних, що дозволяють зберігати
інформацію на віддалених серверах, забезпечуючи доступ до даних у будь-
який час і з будь-якого місця. Це сприяє зниженню витрат на фізичне
обладнання та спрощує управління даними. [1-3]
Інтеграція баз даних із технологіями машинного навчання, великих
даних (Big Data) і штучного інтелекту дозволяє підприємствам отримувати
цінну аналітику, що допомагає приймати обґрунтовані бізнес-рішення.
Завдяки цьому сучасні бази даних стають не лише сховищем інформації, а й
важливим інструментом для розвитку бізнесу. [3]
Робота з Big Data передбачає обробку величезних обсягів інформації,
які часто надходять із різних джерел у різних форматах. Це вимагає
використання кількох типів баз даних, кожна з яких оптимізована для
зберігання і обробки певного виду даних. [11]
Наприклад, структуровані дані, такі як фінансові звіти чи транзакції,
зазвичай зберігаються в реляційних базах даних. Неструктуровані дані, як-от
текстові документи, зображення чи відео, потребують нереляційних баз, таких
як NoSQL. Для аналізу великих потоків даних у реальному часі
38
застосовуються спеціалізовані системи обробки потоків, а для
довгострокового зберігання великих архівів – розподілені файлові системи.
Цей багатокомпонентний підхід дозволяє ефективно керувати всіма
аспектами роботи з великими даними, забезпечуючи гнучкість,
масштабованість та оптимальну продуктивність у кожній конкретній задачі.
Для роботи з різними базами даних компанії змушені використовувати
різні системи управління базами даних (СУБД), оскільки кожен тип бази має
свої особливості та оптимізований для певних завдань. Наприклад, реляційні
бази даних найчастіше працюють з SQL, тоді як нереляційні бази, такі як
документоорієнтовані чи графові, використовують власні мови запитів і
методи доступу до даних.
У багатьох випадках компаніям необхідно інтегрувати кілька СУБД для
забезпечення комплексного підходу до обробки даних. Це створює додаткові
виклики, пов’язані з узгодженням різних форматів, протоколів доступу та
методів зберігання. Щоб подолати ці труднощі, деякі організації розробляють
власні інтерфейси або системи посередники, які забезпечують єдиний доступ
до різних баз даних.
Такі рішення дозволяють автоматизувати процеси, зменшити ризик
помилок і підвищити ефективність роботи з даними, забезпечуючи швидкий і
надійний доступ до необхідної інформації.
Для спрощення роботи з базами даних раціональним рішенням є
використання хмарного середовища. Хмарні платформи дозволяють об'єднати
різні типи баз даних в одному інтегрованому середовищі, що значно полегшує
управління даними та забезпечує зручний доступ до них. [1-5]
Хмарні сервіси пропонують інструменти для роботи як з реляційними,
так і з нереляційними базами, а також засоби для обробки великих даних і
аналізу в реальному часі. Це дозволяє компаніям легко масштабувати свої
системи відповідно до зростання обсягів даних і потреб у обчислювальних
ресурсах. Крім того, хмарні платформи забезпечують високий рівень безпеки,
резервне копіювання даних і зручність інтеграції з іншими сервісами. [2-4]
39
Таким чином, використання хмарного середовища дозволяє спростити
управління даними, зменшити витрати на інфраструктуру та забезпечити
високу продуктивність і гнучкість у роботі з різними типами баз даних.
На даний момент існує безліч хмарних рішень, які пропонують потужні
інструменти для зберігання, обробки та аналізу даних. Серед
найпопулярніших платформ можна виділити AWS (Amazon Web Services),
Microsoft Azure та Google Cloud. Кожна з цих платформ надає широкий спектр
послуг, що дозволяє організаціям вибирати рішення, які найкраще
відповідають їхнім потребам. [2-6]
Microsoft Azure – це потужна хмарна платформа, яка надає широкий
спектр рішень для обробки, зберігання та аналізу даних. Вона пропонує гнучку
інфраструктуру, що дозволяє підприємствам розгортати додатки, управляти
базами даних і виконувати обчислювальні завдання з мінімальними витратами
на апаратне забезпечення.
Однією з головних переваг Azure є її інтеграція з іншими продуктами
Microsoft, такими як Office 365, Dynamics 365 і Windows Server. Це забезпечує
зручний перехід для організацій, які вже використовують ці рішення, і
дозволяє створювати єдину екосистему для всіх бізнес-процесів. Крім того,
Azure підтримує безліч мов програмування, фреймворків і операційних
систем, що робить її універсальною платформою для розробників. [1-3]
Azure пропонує високу доступність і масштабованість, дозволяючи
компаніям легко адаптувати свої ресурси відповідно до змін в обсягах роботи.
Хмарна платформа також відома своїми сильними засобами безпеки,
включаючи шифрування даних, управління доступом і моніторинг загроз у
реальному часі. Це забезпечує захист даних на всіх етапах їхньої обробки.
Крім того, Azure активно підтримує сучасні технології, такі як штучний
інтелект, машинне навчання і аналіз великих даних, що відкриває нові
можливості для інновацій у бізнесі.
40
Google Cloud – це масштабована хмарна платформа, яка пропонує
різноманітні сервіси для зберігання даних, обчислень, аналізу та розробки
додатків. Вона відома своєю інноваційністю та високою продуктивністю, що
робить її ідеальним вибором для компаній, які прагнуть ефективно обробляти
великі обсяги даних і використовувати сучасні технології. [1-3]
Однією з ключових особливостей Google Cloud є її здатність працювати
з великими даними та аналітикою. Платформа надає інструменти, такі як
BigQuery, які дозволяють швидко аналізувати великі масиви інформації, що
важливо для компаній, які потребують оперативних рішень на основі даних.
Крім того, Google Cloud широко використовує штучний інтелект і машинне
навчання, пропонуючи користувачам готові моделі та інструменти для їхнього
створення.
Інфраструктура Google Cloud забезпечує високу доступність і
надійність. Платформа використовує розподілену архітектуру, що дозволяє
розгортати додатки та сервіси в різних регіонах світу. Це забезпечує низьку
затримку доступу до даних і стійкість до збоїв.
Ще однією перевагою є тісна інтеграція Google Cloud з іншими
продуктами Google, такими як Google Workspace, що робить її зручною для
організацій, які вже використовують ці інструменти. Платформа також
підтримує широкий спектр мов програмування, фреймворків і операційних
систем, що забезпечує гнучкість у розробці додатків.
Безпека є одним із пріоритетів Google Cloud. Платформа пропонує
розширені можливості шифрування, багаторівневий контроль доступу та
автоматизований моніторинг загроз, що забезпечує високий рівень захисту
даних.
AWS (Amazon Web Services) є однією з найпопулярніших і найбільш
потужних хмарних платформ у світі, що робить її лідером серед конкурентів,
таких як Microsoft Azure і Google Cloud. Її переваги охоплюють широкий
спектр функцій, масштабованість, гнучкість і глобальне охоплення, що
41
забезпечує користувачам винятковий рівень продуктивності та ефективності.
[1,3]
Однією з ключових причин, чому AWS вважається кращою за інші платформи,
є її найширший набір сервісів. AWS пропонує понад 200 хмарних рішень, які
включають віртуальні сервери, бази даних, аналітику, штучний інтелект,
машинне навчання, Інтернет речей (IoT) та багато іншого. Це дозволяє
підприємствам будь-якого розміру знайти саме ті інструменти, які
відповідають їхнім специфічним потребам. Жодна інша хмарна платформа не
пропонує такого обсягу сервісів з такою ж глибиною функціоналу.
AWS також забезпечує виняткову масштабованість. Її інфраструктура
дозволяє компаніям починати з мінімальних ресурсів і поступово збільшувати
їх у міру зростання обсягів роботи. При цьому AWS надає широкий вибір
регіонів і зон доступності, що дозволяє компаніям розгортати свої сервіси в
будь-якому куточку світу з мінімальною затримкою. Це робить платформу
ідеальною для глобальних компаній, яким потрібна безперебійна робота
додатків і доступність даних. [1,5]
Ще однією значною перевагою AWS є її високий рівень надійності та
безпеки. Компанія інвестує значні кошти в забезпечення безпеки своїх
сервісів, використовуючи передові засоби шифрування, багаторівневу
автентифікацію та комплексний моніторинг. Крім того, AWS відповідає
найвищим стандартам сертифікації безпеки, що робить її надійним вибором
навіть для найбільш регульованих галузей, таких як фінанси чи охорона
здоров’я.
AWS також вигідно відрізняється своїми економічними умовами.
Завдяки моделі оплати за використання, компанії можуть мінімізувати свої
витрати, оплачуючи лише ті ресурси, які вони дійсно використовують. Це
робить платформу доступною як для великих корпорацій, так і для стартапів.
Завдяки багаторічному досвіду роботи AWS має велику екосистему
партнерів і користувачів. Це означає, що компанії, які обирають цю
42
платформу, отримують доступ до широкої спільноти розробників,
консультантів та інших фахівців, які можуть допомогти з впровадженням та
оптимізацією сервісів. Інші платформи поки не досягли такого рівня зрілості
та масштабності. [1,4,11]
AWS має потужний сервіс Amazon RDS (Relational Database Service),
який дозволяє організаціям легко налаштовувати, експлуатувати та
масштабувати реляційні бази даних у хмарі. RDS спрощує управління базами
даних, автоматизуючи багато процесів, які зазвичай потребують значних
зусиль і ресурсів при використанні традиційних серверів.
Однією з головних переваг Amazon RDS є його здатність підтримувати
кілька популярних реляційних СУБД, таких як MySQL, PostgreSQL, MariaDB,
Oracle та Microsoft SQL Server. Це дозволяє користувачам вибирати ту
систему, яка найкраще підходить для їхніх специфічних потреб або сумісна з
існуючими додатками.
RDS автоматизує багато аспектів управління базою даних, таких як
резервне копіювання, патчинг, моніторинг і масштабування, що значно знижує
навантаження на адміністраторів баз даних. Наприклад, автоматичне резервне
копіювання даних відбувається без необхідності втручання користувача, і
резервні копії зберігаються протягом певного часу, що дозволяє легко
відновлювати систему у разі непередбачених збоїв. [2,3]
Сервіс також пропонує автоматичне масштабування, що дозволяє
безперебійно розширювати ресурси бази даних відповідно до зростання
обсягів даних та навантаження на систему. Amazon RDS підтримує як
вертикальне масштабування (збільшення потужностей існуючого
екземпляра), так і горизонтальне масштабування (збільшення кількості
екземплярів для підвищення доступності та продуктивності).
Завдяки інтеграції з іншими сервісами AWS, такими як Amazon
CloudWatch для моніторингу продуктивності та AWS IAM (Identity and Access
Management) для контролю доступу, RDS забезпечує високий рівень безпеки
43
та контролю. Система підтримує шифрування даних як при зберіганні, так і
під час передачі, що відповідає вимогам до безпеки та конфіденційності.
Amazon RDS ідеально підходить для тих компаній, які хочуть
зосередитися на розробці додатків та бізнес-процесах, а не на управлінні
інфраструктурою бази даних. Це робить RDS популярним вибором для
стартапів, середніх і великих компаній, яким потрібен масштабований і
надійний сервіс для зберігання реляційних даних у хмарі. [11,18]
AWS надає безліч додаткових функцій і сервісів, які можуть значно
полегшити розробку рішень для доступу до різних типів баз даних,
забезпечуючи високу продуктивність, безпеку та гнучкість. Одним із
ключових аспектів є інтеграція з іншими службами AWS, що дозволяє
створювати комплексні та масштабовані рішення.
Для доступу до різних типів баз даних AWS пропонує такі інструменти,
як AWS Lambda, який дозволяє запускати код без необхідності управління
серверами, а також AWS API Gateway, що дає змогу створювати та
публікувати RESTful API для доступу до даних. Ці сервіси допомагають
спростити процес інтеграції та доступу до баз даних, дозволяючи ефективно
використовувати різні типи даних (структуровані, неструктуровані та
графові). [7-9]
AWS також пропонує інструменти для створення кешування, такі як
Amazon ElastiCache, який дозволяє зберігати часто використовувані дані в
пам'яті для швидкого доступу. Це корисно при роботі з великими обсягами
даних і дозволяє зменшити навантаження на основні бази даних.
Іншою важливою функцією є AWS Data Pipeline, який дозволяє
автоматизувати переміщення та обробку даних між різними сервісами AWS,
включаючи бази даних. Це дозволяє створювати складні потоки обробки
даних, що включають кілька джерел і типів баз даних. [7]
Для підвищення безпеки доступу до даних AWS надає сервіси, такі як
AWS IAM (Identity and Access Management) для контролю доступу та AWS
44
KMS (Key Management Service) для управління шифруванням. Це дозволяє
розробникам створювати безпечні рішення для доступу до баз даних,
зберігаючи високий рівень конфіденційності та захисту даних. [7-9]
Завдяки таким інструментам AWS, компанії можуть будувати
високопродуктивні, масштабовані та безпечні системи для доступу до різних
типів баз даних, зберігаючи при цьому ефективність та зручність роботи з
даними.
Для підприємств важливо мати один універсальний інструмент, який
забезпечить доступ до всіх даних організації, дозволяючи ефективно
працювати з різними типами інформації без необхідності витрачати значні
ресурси на управління інфраструктурою та розробку окремих рішень для
кожної бази даних. Такий інструмент дозволяє централізувати доступ до даних
з різних джерел, що значно спрощує процеси прийняття рішень, аналітики та
звітності.
Наявність єдиного інтерфейсу для доступу до всіх даних підприємства
допомагає знизити витрати на підтримку кількох різних систем управління
базами даних і зменшити складність інтеграції. Це також дозволяє уникнути
проблем із сумісністю між різними СУБД і зменшити витрати на навчання
співробітників, оскільки всі дані можна отримувати через єдину точку
доступу.
Інструменти, що забезпечують інтеграцію різних типів баз даних,
стають важливими для компаній, які прагнуть зберігати високий рівень
продуктивності та зручності в роботі з даними, водночас мінімізуючи витрати
на технології та підтримку інфраструктури. Вибір такого інструменту
дозволяє оптимізувати бізнес-процеси та отримувати максимальну вигоду від
існуючих даних.
Таким інструментом для підприємства може бути Amazon Redshift –
потужний сервіс для аналітики великих даних, який дозволяє централізувати
доступ до всіх даних організації, зберігаючи при цьому високу продуктивність
і ефективність. Redshift дозволяє легко об'єднувати дані з різних джерел, таких
45
як реляційні бази даних, сховища даних, а також NoSQL-бази, що дає
можливість працювати з різними типами інформації в одному середовищі.
[13]
Один з головних переваг Redshift – це здатність швидко обробляти
великі обсяги даних завдяки розподіленій архітектурі та оптимізованим
алгоритмам для аналітики. Це дозволяє підприємствам ефективно аналізувати
дані без необхідності розгортати складні інфраструктурні рішення. Крім того,
Redshift інтегрується з іншими сервісами AWS, такими як Amazon S3, AWS
Glue і Amazon RDS, що забезпечує легкий доступ до даних з різних джерел.
Redshift дозволяє підприємствам зберігати великі обсяги
структурованих і частково структурованих даних, при цьому знижуючи
витрати на зберігання завдяки ефективній архітектурі та технологіям
стиснення. Цей сервіс також забезпечує високий рівень безпеки, з
шифруванням даних під час зберігання та передачі. [12,13]
Завдяки своїм можливостям по інтеграції, масштабованості та аналітиці
великих даних, Amazon Redshift є ідеальним інструментом для підприємств,
які прагнуть отримати доступ до всіх своїх даних без значних витрат на
інфраструктуру та управління окремими системами баз даних.
Amazon Redshift має прямий доступ до широкого спектра ресурсів AWS,
що робить його ідеальним інструментом для розробки рішень для доступу до
різних типів баз даних. Завдяки цьому інтегрованому підходу, підприємствам
не потрібно використовувати додаткові інструменти чи сервіси для об'єднання
даних з різних джерел.
Redshift легко інтегрується з іншими популярними сервісами AWS,
такими як Amazon S3 для зберігання великих обсягів даних, AWS Glue для
обробки і трансформації даних, та Amazon RDS для роботи з реляційними
базами даних. Ця гнучкість дозволяє розробникам створювати єдину систему
доступу до різних типів баз даних без потреби в додаткових налаштуваннях
чи сторонніх рішеннях. [13,14]
46
Завдяки такій інтеграції в межах екосистеми AWS, користувачі Redshift
можуть легко організувати централізований доступ до всіх даних
підприємства без значних зусиль і додаткових витрат на інтеграцію різних
інструментів чи платформ. Це дозволяє значно знизити складність управління
даними і забезпечує високий рівень продуктивності при роботі з великими
даними.
Також для автоматизації процесів міграції даних в розроблюваній
системі можна використовувати GitHub Actions. Цей інструмент дозволяє
створювати автоматизовані робочі процеси для виконання різних завдань,
включаючи міграцію даних, без необхідності втручання з боку користувача.
GitHub Actions дає змогу налаштувати автоматичне виконання сценаріїв
при кожному коміті або зміні в репозиторії, що дозволяє безперервно
інтегрувати та оновлювати систему. Наприклад, можна автоматизувати
процеси, пов'язані з міграцією баз даних, включаючи перенесення даних між
різними середовищами, оновлення схем бази даних або інтеграцію нових
версій бази даних у виробниче середовище. [15,16,18,19]
З GitHub Actions можна налаштувати публікацію та автоматичне
виконання скриптів для міграції даних у певні моменти часу або при
досягненні конкретних етапів розробки. Це значно спрощує підтримку
процесів міграції та знижує ризики помилок, пов'язаних з ручним втручанням,
забезпечуючи безперервну та ефективну роботу системи.
AWS надає можливість налаштувати автоматизацію інфраструктури за
допомогою AWS Cloud Development Kit (CDK), який дозволяє програмно
описувати ресурси AWS, використовуючи мови програмування, зокрема
TypeScript. CDK дає змогу створювати, налаштовувати та управляти хмарною
інфраструктурою за допомогою коду, що значно спрощує процес
автоматизації розгортання та управління ресурсами. [18,19]
Використовуючи AWS CDK з TypeScript, розробники можуть
створювати і налаштовувати інфраструктуру як код (IaC) для різних сервісів
AWS, таких як Amazon EC2, Amazon S3, Amazon RDS та інші, без необхідності
47
писати складні конфігураційні файли вручну. CDK забезпечує високу
гнучкість та зручність, дозволяючи використовувати властивості об'єктно-
орієнтованого підходу для більш ефективного управління ресурсами.
[18,19,23]
Завдяки підтримці TypeScript, який є популярною та потужною мовою
програмування, AWS CDK дає змогу розробникам використовувати знайомі
інструменти для автоматизації створення та конфігурації ресурсів, інтегруючи
ці процеси в існуючі робочі процеси розробки програмного забезпечення. Це
забезпечує більш швидке та надійне розгортання інфраструктури, знижуючи
ймовірність помилок і забезпечуючи кращу підтримку для складних хмарних
рішень.
З використанням обраних технологій та сервісів AWS можна створити
ефективне та масштабоване рішення для синхронізації баз даних різних типів.
Завдяки потужним інструментам, таким як Amazon Redshift, RDS, а також
можливостям автоматизації через CDK і GitHub Actions, підприємства можуть
забезпечити централізований доступ до своїх даних, автоматизувати процеси
міграції і синхронізації даних між різними середовищами та базами даних.
[18,19,21-23]
Інтеграція цих сервісів у рамках екосистеми AWS дозволяє знизити
складність управління інфраструктурою, зберігаючи при цьому високий
рівень продуктивності та безпеки. За допомогою таких рішень можна не тільки
організувати синхронізацію даних між реляційними та нереляційними базами,
але й забезпечити масштабованість, гнучкість та ефективність роботи з
великими обсягами даних. Ці технології дозволяють мінімізувати витрати на
підтримку інфраструктури і забезпечити високий рівень автоматизації, що є
важливим для сучасних підприємств, які прагнуть оптимізувати свої бізнес-
процеси та забезпечити доступ до даних у будь-який час і в будь-якому місці.
2.3 Висновки до розділу 2
48
У цьому розділі було проведено детальний огляд існуючих технологій і
інструментальних засобів, що використовуються для розробки систем
інтеграції та синхронізації баз даних. Розглянуто переваги та недоліки різних
підходів і рішень, таких як традиційні локальні сервери, хмарні сервіси,
технології обробки великих даних, а також специфічні сервіси AWS,
включаючи AWS DMS.
На основі аналізу та порівняння технологій обрано інструменти, що
найкраще відповідають вимогам розроблюваної системи. Основу системи
становить інфраструктура AWS, яка забезпечує високу продуктивність,
масштабованість, безпеку, зниження витрат та гнучкість у роботі з даними.
AWS DMS було визначено як ключовий інструмент для ефективної міграції
та синхронізації баз даних різних типів.
Таким чином, вибрані технології дозволяють створити надійну та
ефективну систему, здатну інтегрувати дані з різних джерел, забезпечити
зручний доступ до інформації та спростити процеси аналізу, що відповідає
меті роботи та сучасним потребам бізнесу.
49
РОЗДІЛ 3 ДОСЛІДЖЕННЯ ТА ОПТИМІЗАЦІЯ МЕТОДІВ
СИНХРОНІЗАЦІЇ БАЗ ДАНИХ РІЗНИХ ТИПІВ З ВИКОРИСТАННЯМ
РІШЕНЬ AWS
3.1 Структура системи
Для покращення роботи підприємств, що обробляють великі обсяги
даних та мають велику кількість різноманітних баз даних, була розроблена
система, яка дозволяє користувачам легко та зрозуміло отримувати необхідну
інформацію. Ця система інтегрує дані з різних джерел, спрощує процес їх
аналізу та надає зручний інтерфейс для пошуку і візуалізації результатів.
Завдяки такому підходу, підприємства можуть значно підвищити ефективність
обробки даних, прийняття рішень та загальну продуктивність, зменшуючи
час, необхідний для пошуку та аналізу необхідної інформації.
Розроблена система повністю базується на інфраструктурі AWS
(Amazon Web Services), що дозволяє ефективно використовувати потужності
хмарних сервісів для зберігання, обробки та аналізу великих обсягів даних.
AWS надає широкі можливості для масштабування, високої доступності та
безпеки, що робить систему надійною та гнучкою для підприємств різних
масштабів. Використання хмарних технологій дозволяє знизити витрати на
апаратне забезпечення та забезпечити безперервну роботу системи без
необхідності в складній внутрішній інфраструктурі. Це дозволяє
підприємствам зосередитися на розвитку своїх бізнес-процесів, покладаючись
на надійну й ефективну хмарну платформу для підтримки своїх операцій.
Хмарна інфраструктура, зокрема на базі AWS (Amazon Web Services),
дозволяє значно зменшити витрати на обслуговування систем завдяки
відсутності необхідності в закупівлі та обслуговуванні фізичного обладнання.
Традиційно, для створення та підтримки внутрішньої ІТ-інфраструктури,
підприємства повинні інвестувати значні кошти в сервери, мережеві пристрої,
50
а також витрачати ресурси на їх обслуговування та оновлення. Відповідно,
хмарна інфраструктура дозволяє підприємствам орендувати необхідні ресурси
за підпискою, що включає в себе сервери, зберігання даних, бази даних,
обчислювальні потужності та багато інших компонентів. Це дозволяє
уникнути великих початкових витрат і забезпечує високу масштабованість,
адже ресурси можна збільшувати або зменшувати залежно від потреб бізнесу.
Ще одним важливим аспектом є спрощення роботи з різними типами
даних. Підприємства часто працюють із великими обсягами структурованих
даних (таблиці, бази даних SQL) та неструктурованих даних (файли,
документи, відео, зображення, логи). Хмарні платформи, такі як AWS,
пропонують різноманітні інструменти для зберігання, обробки і аналізу обох
типів даних. Наприклад, сервіси зберігання даних, такі як Amazon S3,
дозволяють зберігати великі обсяги неструктурованих даних і забезпечують
їх швидкий доступ, а сервіси баз даних, як Amazon RDS або Amazon Aurora,
спрощують управління реляційними базами даних.
Більше того, AWS пропонує інструменти для обробки великих даних і
здійснення аналітики, наприклад, AWS Lambda для безсерверної обробки
даних, Amazon Redshift для аналітики на великих даних та AWS Glue для
інтеграції даних. Це дозволяє не лише зберігати і обробляти дані, але й
виконувати їх аналіз в реальному часі, отримуючи точну та актуальну
інформацію для прийняття управлінських рішень.
Завдяки використанню хмарної інфраструктури підприємства можуть
також значно підвищити рівень безпеки своїх даних. Хмарні платформи
пропонують передові механізми для шифрування даних, а також інструменти
для моніторингу і захисту від загроз. Наприклад, AWS надає можливості для
резервного копіювання, відновлення після збоїв, а також інтеграцію з
системами моніторингу та управління безпекою, що дозволяє забезпечити
захист даних на всіх етапах їх обробки.
Таким чином, хмарна інфраструктура значно спрощує управління IT-
ресурсами, зменшує витрати на обслуговування і дозволяє підприємствам
51
ефективно працювати з різними типами даних, забезпечуючи високу
продуктивність, безпеку та масштабованість.
Розроблена система передбачає, що підприємство буде використовувати
бази даних, розташовані в AWS RDS (Amazon Relational Database Service). Це
рішення забезпечує ефективне управління реляційними базами даних без
необхідності в складному налаштуванні та адмініструванні серверів.
Використання AWS RDS дозволяє підприємствам зосередитися на бізнес-
логіці та процесах, а не на технічних аспектах, таких як налаштування,
оновлення та резервне копіювання баз даних.
Незалежно від типу даних, розроблена система виконує експорт даних
з різних баз даних за допомогою сервісу AWS DMS (Database Migration
Service). Цей сервіс забезпечує простоту і ефективність при міграції та
експорті даних між різними типами баз даних, що дозволяє підприємствам
зберігати і використовувати дані з різних джерел, навіть якщо вони розміщені
в різних системах або на різних платформах.
AWS DMS підтримує міграцію даних з реляційних, NoSQL баз даних, а
також з різноманітних джерел, таких як файли або інші сторонні сервіси.
Завдяки цьому підприємства можуть без труднощів переміщати дані з
локальних баз даних в хмару або між різними хмарними середовищами. Сервіс
підтримує безперервну реплікацію, що дозволяє даним оновлюватися в
реальному часі, а також забезпечує високу доступність і надійність завдяки
вбудованим механізмам відновлення після збоїв.
За допомогою AWS DMS система може автоматично перенести всі
необхідні дані, зберігаючи їх цілісність та структуру. Це забезпечує зручний
спосіб інтеграції даних з різних джерел в єдину систему, що значно спрощує
роботу з великими обсягами інформації та дозволяє отримувати актуальну
інформацію для аналізу і прийняття рішень. Крім того, використання AWS
DMS дозволяє знизити час на виконання міграційних завдань і мінімізувати
вплив на продуктивність операцій в процесі переміщення даних.
52
Система налаштована таким чином, що експорт даних з усіх
інтегрованих баз даних виконується автоматично за визначеним графіком за
допомогою AWS DMS. Це дозволяє забезпечити регулярне та безперервне
оновлення даних без необхідності в ручному втручанні. Кожен експорт даних
з різних баз даних здійснюється в заздалегідь визначений час, що забезпечує
своєчасне оновлення інформації.
Результат експорту даних зберігається на AWS S3 (Simple Storage
Service), що гарантує надійне, масштабоване і безпечне зберігання великих
обсягів інформації. Використання S3 дає можливість ефективно керувати
даними, забезпечуючи їх доступність для подальшого аналізу, обробки або
інтеграції з іншими системами. Завдяки гнучким можливостям AWS S3,
підприємство може зберігати експортовані дані в різних форматах, легко
здійснювати їх пошук, а також налаштовувати автоматичні процеси для
архівування або очищення даних після певного часу.
Автоматизований експорт даних відбувається в форматі Parquet, що є
високоефективним стовпцевим форматом для зберігання даних. Використання
формату Parquet дозволяє значно зменшити обсяг збережених даних завдяки
стисненню, а також забезпечує високу швидкість читання та запису, що робить
його ідеальним для обробки великих обсягів даних.
Цей формат є оптимальним для подальшого аналізу та інтеграції з
різними аналітичними інструментами, такими як Amazon Redshift або Apache
Spark. Завдяки своїй структурі, Parquet дозволяє ефективно працювати з
великими наборами даних, що мають складні схеми, зберігаючи при цьому
високу продуктивність при запитах та обробці.
Автоматизація процесу експорту даних здійснюється з використанням
GitHub Actions, що дозволяє автоматизувати всі етапи без необхідності
ручного втручання. В рамках цього процесу налаштовується робочий процес
(workflow), який виконує скрипт для автоматичного налаштування та запуску
експорту даних.
53
Скрипт, що використовується в GitHub Actions, автоматизує процес
налаштування інфраструктури за допомогою AWS CDK (Cloud Development
Kit). AWS CDK дозволяє описувати хмарні ресурси (як, наприклад, сервіси
AWS DMS, S3, Lambda та інші) за допомогою коду, що забезпечує гнучкість і
зручність у налаштуванні інфраструктури.
За допомогою GitHub Actions і AWS CDK автоматично налаштовується
вся необхідна інфраструктура для експорту даних, зокрема конфігурація
служби AWS DMS для виконання регулярних експортів, а також створення
потрібних ресурсів в AWS, таких як S3-бакети для збереження даних у форматі
Parquet. Цей процес відбувається автоматично на заданому розкладі, що
дозволяє підприємствам отримувати актуальні дані без додаткових зусиль.
Завдяки такій автоматизації, весь цикл налаштування та виконання
експорту даних стає повністю автоматизованим, що значно підвищує
ефективність і знижує ризики, пов'язані з людським фактором.
Результат експорту даних зберігається в приватному S3-бакеті на
платформі AWS, що забезпечує високий рівень захисту та конфіденційності
інформації. Використання приватного бакету гарантує, що дані доступні лише
для авторизованих користувачів і служб, що захищає їх від несанкціонованого
доступу.
Для забезпечення безпеки даних застосовуються різні механізми
захисту, зокрема шифрування даних як в стані спокою, так і під час передачі.
AWS S3 підтримує шифрування даних за допомогою стандартів, таких як
AES-256 або KMS (AWS Key Management Service), що дозволяє захистити
дані навіть у випадку фізичного доступу до серверів.
Крім того, для контролю доступу до даних використовуються політики
доступу (IAM-політики), які визначають, хто і яким чином може взаємодіяти
з бакетом. Це дозволяє точно налаштувати права доступу до конкретних даних
і забезпечити найвищий рівень безпеки.
Для налаштування даних в Amazon Redshift використовується AWS Step
Functions, що дозволяє автоматизувати і оркеструвати різні етапи обробки та
54
завантаження даних. AWS Step Functions дає змогу створювати складні робочі
процеси, які включають кілька кроків, таких як експорт даних, їх обробка,
перетворення та завантаження в Redshift.
В рамках цього процесу Step Functions координує виконання різних
сервісів AWS, таких як AWS Lambda для обробки даних або AWS Glue для їх
трансформації перед завантаженням у Redshift. Кожен етап роботи, наприклад,
перетворення даних у формат Parquet або їх завантаження в Amazon S3, може
бути автоматизований в рамках одного робочого процесу, що забезпечує
зручну і безперебійну інтеграцію даних.
AWS Step Functions дозволяє також відслідковувати стан кожного етапу,
надаючи прозорість і контроль над виконанням процесів. Це забезпечує
надійність і масштабованість робочих процесів, дозволяючи ефективно
працювати з великими обсягами даних, що експортуються з різних джерел, і
забезпечує їх належне налаштування в Amazon Redshift для подальшого
аналізу.
Результатом роботи AWS Step Functions є дані, які успішно імпортовані
в Amazon Redshift. За допомогою Step Functions автоматизується весь процес,
включаючи попередню обробку, трансформацію та завантаження даних з
різних джерел. В результаті цього автоматизованого процесу дані
потрапляють в Amazon Redshift, де вони стають доступними для аналізу,
запитів та бізнес-інтелекту. Всі етапи контролюються і координуються AWS
Step Functions, що забезпечує надійність, відмовостійкість і масштабованість
при роботі з великими обсягами інформації. Це дозволяє підприємствам
автоматично і безпечно імпортувати дані в Redshift для подальшої роботи з
ними.
Amazon Redshift підтримує мову SQL (Structured Query Language), що
дає змогу виконувати запити до імпортованих даних і отримувати необхідні
результати. Використання SQL дозволяє здійснювати ефективний аналіз
даних, фільтрацію, агрегацію та з’єднання таблиць, що зберігаються в Redshift.
55
Завдяки високій продуктивності і масштабованості Redshift, запити можуть
виконуватись на великих обсягах даних швидко та ефективно.
SQL є стандартом для роботи з реляційними базами даних, тому
користувачі можуть використовувати знайомі інструменти та методи для
взаємодії з даними. Це дає можливість створювати складні аналітичні запити,
генерацію звітів і виконання бізнес-логіки на основі даних, що були
імпортовані з різних джерел і оброблені через Step Functions. Схема роботи
розробленої системи зображена на рисунку 3.1.
AWS Інфраструктура
AWS S3: зберігає
експортовані дані AWS
RDS: БД1
AWS Redshift: AWS DMS: виконує
синхронізовані експорт даних AWS
дані
RDS: БД2
AWS Step-function:
оркеструє процес AWS
міграції RDS: БД3
GitHub actions – ініціатор
розгортання інфраструктури
Користувач / Бізнес аналітик
Рисунок 3.1. – Схема роботи розробленої системи
56
Amazon Redshift часто використовують бізнес-аналітики, які можуть
будувати різні дашборди (інтерактивні панелі моніторингу) на базі даних, що
знаходяться в Redshift. Завдяки високій продуктивності Redshift і підтримці
SQL, аналітики можуть виконувати складні запити та агрегувати дані для
створення динамічних звітів і візуалізацій.
За допомогою інструментів бізнес-аналітики, таких як Amazon
QuickSight, Tableau, Power BI та інші, бізнес-аналітики можуть підключатися
до Redshift, створювати дашборди та отримувати візуальні представлення
важливих метрик, трендів і показників. Ці інструменти дозволяють легко
відображати дані з різних джерел у вигляді графіків, таблиць та інших
візуальних елементів, що спрощує процес прийняття рішень для керівників і
команди.
Завдяки Redshift бізнес-аналітики мають можливість ефективно
працювати з великими обсягами даних, виконувати аналітику та створювати
дашборди для моніторингу бізнес-процесів і прийняття обґрунтованих рішень.
Всі процеси для завантаження даних в Amazon Redshift запускаються
один раз на день, що дозволяє підтримувати дані в актуальному стані. Така
автоматизація забезпечує регулярне оновлення даних, що імпортуються з
різних джерел, і дає можливість бізнес-аналітикам та іншим користувачам
працювати з найсвіжішою інформацією.
Це дозволяє забезпечити високий рівень точності і своєчасності даних
для подальшого аналізу, звітності та прийняття рішень. Регулярне оновлення
даних також сприяє зменшенню ризику використання застарілої інформації,
що може вплинути на якість аналізу та бізнес-процеси.
Слід розуміти, що дані, які зберігаються в Amazon Redshift, можуть бути
неактуальними протягом робочого дня, оскільки вони оновлюються лише
один раз на день. Це означає, що на момент між оновленнями дані можуть
відставати від реального часу, що може вплинути на точність прийнятих
рішень, якщо необхідно працювати з найсвіжішою інформацією.
57
Для деяких бізнес-процесів або аналітичних задач, де потрібна миттєва
актуальність даних, цей підхід може бути обмеженням. Тому для таких
випадків може знадобитись налаштування додаткових процесів або
використання інших методів, щоб мати доступ до даних в реальному часі або
з меншою затримкою.
3.2 Опис функцій системи
Основна функція розробленої системи полягає в наданні бізнес-
аналітикам та всім зацікавленим сторонам доступу до різних типів баз даних
без необхідності використання складних систем або інтерфейсів. Система
забезпечує простоту у взаємодії з даними, дозволяючи користувачам
ефективно отримувати необхідну інформацію з різних джерел без зайвих
технічних знань.
Завдяки цьому бізнес-аналітики можуть зосередитися на аналізі та
прийнятті рішень, а не на технічних аспектах роботи з базами даних, що
значно спрощує їх роботу і підвищує ефективність процесів в організації.
Робота з Big Data завжди викликає значні проблеми та великі витрати
для компаній. Обробка і зберігання великих обсягів даних потребує
спеціалізованих технологій, інфраструктури та ресурсів, що збільшує витрати
на підтримку систем. Крім того, велика кількість даних потребує складних
алгоритмів для обробки, аналізу та збереження, що може призвести до
затримок у прийнятті рішень або до помилок у роботі систем.
Крім технічних складнощів, компанії також повинні враховувати
витрати на забезпечення безпеки, зберігання даних, а також на тренування
персоналу, який зможе ефективно працювати з великими даними. Це може
вимагати значних капіталовкладень і ресурсів, що для багатьох компаній є
серйозним викликом.
Розроблена система дозволяє користувачеві використовувати один
додаток, який надає доступ до всіх даних підприємства, незалежно від типу
58
бази даних, де ця інформація зберігається. Це значно спрощує процес доступу
до даних, оскільки користувачеві не потрібно взаємодіяти з різними
інтерфейсами для кожної окремої бази даних.
Завдяки єдиному додатку, підприємство забезпечує зручний доступ до
всієї інформації, що зберігається в різних системах – від реляційних баз даних
до NoSQL рішень – і це все можна здійснити через інтуїтивно зрозумілий
інтерфейс. Це дозволяє бізнес-аналітикам і іншим зацікавленим сторонам
ефективно отримувати необхідні дані для прийняття рішень без необхідності
глибоких технічних знань чи взаємодії з різними інтерфейсами.
Інтерфейсом розробленої системи є AWS Redshift, який дає
користувачеві можливість виконати SQL запит і отримати необхідні дані без
необхідності підключення до всіх існуючих баз даних. Завдяки цьому,
користувач може працювати з даними, що зберігаються в різних базах даних,
через єдиний доступний інтерфейс, не турбуючись про технічні аспекти
підключення до кожної з них.
AWS Redshift забезпечує потужні можливості для запитів і аналізу
даних, що зберігаються в різних джерелах, і дозволяє бізнес-аналітикам та
іншим користувачам отримувати необхідну інформацію за допомогою
простих SQL запитів. Це значно спрощує процес роботи з даними, дозволяючи
зосередитися на аналізі та прийнятті рішень без необхідності взаємодії з
кожною окремою базою даних.
Оскільки дані експортуються в Amazon Redshift автоматично, навіть
дані з NoSQL баз даних можуть бути доступні для користувачів через
виконання SQL запитів. Це досягається завдяки процесу інтеграції, коли дані
з різних джерел, включаючи NoSQL бази, трансформуються та імпортуються
в Redshift. У результаті цього, користувачі можуть отримувати дані з
різноманітних джерел за допомогою стандартних SQL запитів, не турбуючись
про специфіку кожної окремої бази даних. Такий підхід значно спрощує
роботу з різними типами даних і дозволяє бізнес-аналітикам та іншим
59
користувачам здійснювати аналіз і працювати з інформацією, що зберігається
в різних системах, використовуючи єдину платформу і інтерфейс.
Нижче наведено приклад простого SQL-запиту для отримання даних з
Amazon Redshift:
SELECT customer_id, first_name, last_name, email, total_spent FROM
customers WHERE total_spent > 1000 ORDER BY total_spent DESC;
У цьому запиті:
 customer_id, first_name, last_name, email, total_spent — це поля, які
вибираються з таблиці.
 customers — це ім’я таблиці в Redshift, де зберігаються дані клієнтів.
 WHERE total_spent > 1000 — умова, що обирає лише тих клієнтів, які
витратили більше 1000 одиниць валюти.
 ORDER BY total_spent DESC — сортування результатів за полем
total_spent у спадному порядку, тобто спочатку будуть показані
найбільші витрати.
Цей запит дозволяє отримати інформацію про клієнтів, які витратили
більше 1000 одиниць валюти, з таблиці customers в Redshift, з можливістю
подальшого аналізу та побудови звітів або візуалізацій.
Amazon Redshift оптимізовано для роботи з Big Data, що дозволяє
ефективно обробляти та аналізувати великі обсяги інформації. Завдяки
масштабованій архітектурі та високій продуктивності, Redshift здатний
обробляти та зберігати величезні масиви даних без значних проблем з
продуктивністю.
При використанні Redshift можна отримувати величезні обсяги
інформації з різних джерел даних, таких як AWS RDS, S3, та інших сховищ,
без серйозних затримок або скорочення швидкості запитів. Платформа
підтримує складні запити до великих наборів даних, завдяки оптимізації
запитів, індексації та вбудованим механізмам стиснення даних.
Завдяки такій архітектурі Redshift дозволяє компаніям працювати з
великими даними, зберігаючи високу швидкість обробки та зручність доступу
60
до інформації. Тому отримання та аналіз великих обсягів даних в Redshift не
повинно бути великою проблемою, навіть коли мова йде про терабайти або
петабайти даних. Приклад роботи з системою Redshift зображено на рисунку
3.2.
Рисунок 3.2. – Приклад роботи з системою Redshift
Система автоматично експортує дані з усіх баз даних один раз на день,
що забезпечує регулярне оновлення інформації в Amazon Redshift. Цей процес
автоматизує синхронізацію даних між різними джерелами та Redshift,
гарантуючи, що вся необхідна інформація завжди буде актуальною та готовою
до аналізу.
Регулярний експорт даних дозволяє уникнути проблем з застарілою
інформацією, підтримуючи ефективну роботу з даними, що зберігаються в
різних базах даних. Така автоматизація значно спрощує управління даними та
забезпечує їх доступність для бізнес-аналітиків і інших користувачів без
необхідності вручну синхронізувати дані.
Система працює з усіма базами даних, які підтримуються AWS RDS
(Amazon Relational Database Service). Це включає різні реляційні бази даних,
такі як MySQL, PostgreSQL, MariaDB, Oracle та SQL Server, що дозволяє
забезпечити безшовну інтеграцію з широким спектром джерел даних.
61
Завдяки цьому, система може автоматично експортувати дані з будь-
якої з цих баз даних, синхронізуючи їх з Amazon Redshift для подальшого
аналізу та роботи. Це забезпечує гнучкість і сумісність з різними типами баз
даних, що використовуються в організації.
Хмарна система AWS забезпечує найвищий рівень захисту даних, що
зберігаються в Amazon Redshift, завдяки використанню комплексних та
передових механізмів безпеки. AWS пропонує широкий набір інструментів
для захисту даних, що включають шифрування як під час зберігання, так і під
час передачі даних. Це гарантує, що інформація не буде доступна або змінена
без відповідного дозволу.
Шифрування даних в Amazon Redshift виконується за допомогою
алгоритмів шифрування, таких як AES-256, які використовуються для захисту
даних на рівні зберігання в базі даних. Додатково, усі дані, що передаються
між користувачами та Redshift, шифруються через SSL для забезпечення
конфіденційності та цілісності даних під час їх пересилання.
Мультифакторна аутентифікація (MFA) дозволяє додатково захистити
доступ до Redshift, вимагаючи від користувачів двоетапного підтвердження їх
особи при вході в систему. Це значно знижує ризик несанкціонованого
доступу до чутливих даних.
Контроль доступу на основі ролей (IAM) дає змогу адміністраторам
чітко визначати, хто має доступ до яких даних і що саме можна з ними робити.
Задаючи різні рівні доступу для користувачів і груп, можна гарантувати, що
лише авторизовані особи можуть виконувати операції з даними або
налаштуваннями системи.
Крім того, AWS CloudTrail та AWS CloudWatch дозволяють здійснювати
моніторинг та аудит всіх дій, які виконуються в Redshift, включаючи доступ
користувачів до даних, виконані запити та зміни в конфігурації. Це дає змогу
отримати повний журнал активності та забезпечити додатковий рівень захисту
через можливість виявлення несанкціонованих змін або аномальної поведінки.
62
Автоматичне резервне копіювання даних та відновлення після збоїв
також є важливою частиною інфраструктури безпеки AWS. Це дозволяє
швидко відновити дані в разі помилки чи збою в системі, що допомагає
уникнути втрати важливої інформації та забезпечує надійність роботи бізнесу.
Завдяки використанню цих технологій і практик, AWS забезпечує
високий рівень безпеки даних в Amazon Redshift, що відповідає найсуворішим
стандартам захисту інформації та дозволяє компаніям працювати з чутливими
даними, не побоюючись загроз безпеці.
У випадку втрати доступу до акаунту або виникнення проблем з
розробленою інфраструктурою, рішення, яке використовує GitHub Actions та
AWS CDK (Cloud Development Kit), дозволяє швидко відновити всі
налаштування та інфраструктуру протягом кількох хвилин. Завдяки
використанню цих інструментів, вся інфраструктура та налаштування
автоматизовані та зберігаються в коді, що дозволяє відновити середовище до
попереднього стану без необхідності вручну налаштовувати компоненти або
відновлювати дані.
AWS CDK дозволяє описувати інфраструктуру як код, що дає змогу
зберігати всі конфігурації, параметри та ресурси у вигляді коду, який можна
швидко повторно розгорнути в разі необхідності. GitHub Actions автоматизує
процеси деплоя, дозволяючи запускати необхідні скрипти для відновлення
інфраструктури з використанням CDK. Це забезпечує швидке відновлення
роботи системи і значно знижує час на відновлення після будь-яких збоїв або
втрати доступу.
Таким чином, навіть при серйозних проблемах з інфраструктурою або
доступом до акаунтів, система може бути відновлена майже миттєво, що
забезпечує високу надійність і мінімальні витрати часу на відновлення
працездатності інфраструктури.
63
3.3 Забезпечення захисту інформації при роботі зі створеною
системою
При роботі з базами даних надзвичайно важливо дотримуватись усіх
можливих технік захисту даних, щоб забезпечити їх конфіденційність,
цілісність та доступність. Одним з основних аспектів є шифрування даних, як
під час їх зберігання, так і під час передачі між системами. Це допомагає
запобігти несанкціонованому доступу до інформації. Контроль доступу також
є критичним: потрібно використовувати механізми управління доступом, які
дозволяють лише авторизованим користувачам отримувати доступ до
чутливих даних, при цьому кожному користувачу надаються лише ті права,
які необхідні для виконання їх обов'язків.
Аутентифікація та авторизація повинні бути налаштовані з
використанням багатофакторної аутентифікації для посилення безпеки при
доступі до бази даних. Регулярний моніторинг та аудит доступу до даних
допомагає виявляти можливі аномалії чи несанкціоновані спроби доступу, що
є важливим для запобігання загрозам безпеці. Також необхідно впровадити
ефективні механізми резервного копіювання даних і налаштувати процедури
для їх відновлення у разі виникнення проблем, таких як втрата чи
пошкодження інформації.
AWS надає користувачам потужну систему авторизації через AWS
Identity and Access Management (IAM), яка дозволяє налаштовувати доступ до
ресурсів на основі різних ролей та політик. Завдяки IAM, користувачі можуть
мати доступ до лише тих даних і ресурсів, які їм необхідні для виконання їх
завдань, що допомагає забезпечити високий рівень безпеки.
IAM дозволяє створювати різні ролі з визначеними правами доступу, які
можна призначити користувачам, групам або сервісам. Кожна роль має
специфічні дозволи на виконання певних операцій, таких як читання, запис
або адміністрування ресурсів, що дає змогу обмежити доступ до чутливих
даних і функціоналу. Це дозволяє точно контролювати, хто і з якими правами
64
взаємодіє з ресурсами в AWS, забезпечуючи безпеку та відповідність вимогам
регулювання.
Наприклад, бізнес-аналітику не потрібно мати доступ адміністратора
для виконання простого запиту до бази даних. Адміністративні права
надаються лише тим користувачам, які мають потребу в повному доступі для
управління інфраструктурою чи налаштуваннями системи. Водночас, для
бізнес-аналітика, який лише працює з даними для аналізу, достатньо
обмеженого доступу. Тому, для таких користувачів можна створити
спеціальну роль з типом доступу read-only, що дозволяє лише переглядати
інформацію в базі даних, виконувати SQL-запити для отримання необхідних
даних, але не змінювати або видаляти їх.
Такий підхід дозволяє обмежити доступ користувачів до чутливих чи
критичних операцій, зменшуючи ймовірність випадкових помилок або
несанкціонованих змін. Бізнес-аналітики можуть зручно працювати з
необхідними даними без зайвого ризику для цілісності бази даних або системи
в цілому. Це також допомагає забезпечити більший контроль над системою,
оскільки доступ до адміністративних функцій залишається обмеженим лише
для адміністраторів або інших користувачів з високим рівнем доступу.
З використанням AWS IAM та наданням специфічних ролей для
кожного користувача можна гнучко налаштувати доступ до даних в
залежності від потреб конкретного користувача, зберігаючи при цьому
високий рівень безпеки та конфіденційності даних.
AWS також надає можливість виконувати детальний моніторинг дій
користувачів, що є важливим інструментом для забезпечення безпеки. Завдяки
інтеграції з AWS CloudTrail, адміністратори можуть відстежувати всі операції,
які виконуються користувачами в системі, зокрема доступ до даних і
виконання запитів. Якщо бізнес-аналітик або інший користувач намагається
отримати доступ до забороненої або обмеженої інформації, CloudTrail фіксує
таку спробу.
65
Ця інформація може бути використана для сповіщення адміністратора
про несанкціоновану активність або порушення політик безпеки через AWS
CloudWatch. Використовуючи CloudWatch Alarms, адміністратори можуть
налаштувати автоматичні сповіщення, що дозволяє швидко реагувати на
потенційні загрози або порушення доступу. Це дає змогу своєчасно виявити і
зупинити спроби несанкціонованого доступу до чутливих даних,
забезпечуючи більш високий рівень безпеки і захисту корпоративної
інформації.
Всі користувачі AWS підключаються до AWSManagement Console через
захищене з’єднання за допомогою HTTPS (Hypertext Transfer Protocol Secure).
HTTPS використовує SSL/TLS (Secure Sockets Layer/Transport Layer Security)
для забезпечення шифрування даних, що передаються між клієнтом
(користувачем) і серверами AWS. Це означає, що всі запити та відповіді,
включаючи облікові дані користувачів і інформацію про ресурси, передаються
в зашифрованому вигляді, що значно ускладнює доступ сторонніх осіб до
чутливої інформації.
Ключовою перевагою використання HTTPS є забезпечення
конфіденційності та цілісності даних. Це гарантує, що дані не можуть бути
прочитані або змінені під час передачі через мережу, навіть якщо з’єднання
здійснюється через публічні чи менш захищені канали зв’язку, такі як Wi-Fi
або інтернет. SSL/TLS протоколи підтверджують автентичність серверів AWS,
що захищає від атак типу "man-in-the-middle", де зловмисники можуть
перехопити і змінити дані.
Крім того, захищене HTTPS з’єднання з AWS Console допомагає
уникнути витоків чутливої інформації, таких як логіни, паролі та інші дані для
автентифікації. У разі спроби підключення до AWS Management Console без
використання HTTPS з’єднання, користувач отримає попередження про
небезпечне з’єднання, що дозволяє йому уникнути підключення до непевних
ресурсів.
66
Це підвищує рівень безпеки всієї інфраструктури AWS, гарантуючи, що
дані користувачів і ресурси не піддаються загрозам з боку третіх осіб, і
підтверджує відповідність сучасним вимогам безпеки для корпоративних
даних та інфраструктури.
Використання баз даних в системі AWS RDS (Relational Database
Service) значно підвищує рівень захисту даних у порівнянні з використанням
традиційних баз даних, розміщених на звичайних серверах. AWS RDS надає
низку вбудованих механізмів безпеки, які забезпечують захист даних на всіх
етапах їх обробки та зберігання.
Одним з основних переваг є автоматичне шифрування даних. AWS RDS
підтримує шифрування даних як під час їх зберігання, так і під час передачі.
Використовуються AES-256 для шифрування даних в стані спокою та SSL/TLS
для захищених з'єднань з базою даних, що значно знижує ризик
несанкціонованого доступу або перехоплення даних. Крім того, за допомогою
AWS KMS (Key Management Service) можна керувати шифрувальними
ключами, що дає можливість налаштувати доступ до зашифрованих даних.
AWS RDS також включає в себе вбудовані механізми для управління
доступом, які дозволяють точніше контролювати, хто має доступ до бази
даних. За допомогою AWS IAM (Identity and Access Management) можна
визначити ролі та політики доступу для різних користувачів, надаючи тільки
ті права, які необхідні для виконання конкретних завдань, що мінімізує ризик
несанкціонованого доступу.
До того ж, AWSRDS забезпечує автоматичне створення резервних копій
бази даних, що дозволяє легко відновлювати дані в разі збою або втрати
інформації. Крім того, дані зберігаються в кількох регіонах за допомогою
функцій Multi-AZ та Read Replicas, що підвищує доступність і знижує ризики
втрати даних.
В порівнянні з традиційними серверами, де адміністратори повинні
самостійно налаштовувати шифрування, резервні копії та механізми доступу,
AWS RDS автоматизує багато аспектів безпеки, знижуючи ймовірність
67
помилок і людського фактора, а також забезпечує високий рівень захисту
даних без необхідності складної ручної конфігурації.
Виходячи з усього вище переліченого, можна зробити висновок, що
рішення, розроблене в рамках цього диплому, є безпечним для використання.
Завдяки використанню сучасних технологій і механізмів захисту, таких як
AWS RDS, AWS IAM, шифрування даних та моніторинг дій користувачів,
система забезпечує високий рівень безпеки та конфіденційності даних.
Автоматизація процесів експорту, синхронізації та імпорту даних, а
також інтеграція з AWS Redshift для аналізу даних забезпечують ефективну і
безпечну обробку інформації без необхідності прямого доступу до баз даних.
Застосування AWS CloudTrail і CloudWatch дозволяє відслідковувати всі
операції, що додає додатковий рівень захисту і можливість швидкого
реагування на будь-які спроби несанкціонованого доступу.
Таким чином, розроблена система враховує всі ключові аспекти безпеки,
що робить її надійним і безпечним рішенням для використання в реальних
умовах підприємств.
3.4 Технічні вимоги для роботи з системою
Перед початком використання та впровадження розробленого рішення
необхідно визначити технічні вимоги для системи. Це включає в себе
уточнення всіх аспектів, пов'язаних з інфраструктурою, ресурсами AWS,
вимогами до баз даних, безпеки та продуктивності. Важливо зрозуміти, які
обсяги даних будуть оброблятися, які типи баз даних використовуватимуться,
а також вимоги до швидкості обробки та зберігання даних.
Також потрібно визначити необхідність у масштабуванні системи
залежно від змін у навантаженні, а також забезпечити відповідний рівень
доступності і резервування даних для критичних бізнес-процесів. Не менш
важливим є визначення ролей і політик доступу для користувачів, а також
налаштування механізмів моніторингу та аудиту для забезпечення безпеки.
68
Лише після детального визначення технічних вимог можна буде
ефективно впровадити систему, налаштувати її для забезпечення високої
доступності, безпеки та ефективної роботи в реальному середовищі.
Розроблена система підтримує всі популярні бази даних, які можна
використовувати в AWS RDS (Relational Database Service). Це включає в себе
наступні бази даних:
1. Amazon Aurora – високопродуктивна реляційна база даних,
сумісна з MySQL і PostgreSQL, яка оптимізована для роботи в хмарі;
2. MySQL – популярна відкрита реляційна система управління
базами даних;
3. PostgreSQL – потужна, відкрита реляційна система управління
базами даних, яка підтримує складні запити, транзакції та великі обсяги даних;
4. MariaDB – форк MySQL, що зберігає сумісність з ним і пропонує
додаткові можливості;
5. Oracle Database – потужна реляційна система управління базами
даних, яка широко використовується в корпоративному середовищі;
6. SQL Server – реляційна база даних від Microsoft, що підтримує
різноманітні функції для підприємств.
Ці бази даних підтримуються в AWS RDS і можуть бути використані
для зберігання даних, що дозволяє організаціям обирати ту систему, яка
найкраще відповідає їхнім потребам, забезпечуючи високу доступність,
продуктивність і безпеку.
Якщо підприємство використовує інші бази даних, не підтримувані
AWS RDS, і вирішує мігрувати на сучасні системи баз даних, є кілька
популярних інструментів і рішень для міграції, не пов'язаних із AWS:
DBConvert – набір інструментів для міграції баз даних між різними
платформами. DBConvert підтримує багато реляційних і NoSQL баз даних,
таких як MySQL, PostgreSQL, Oracle, SQL Server та інші.
Flyway – потужний інструмент для міграції схем баз даних, який працює
з SQL-скриптами для керування змінами в схемах. Flyway підтримує багато
69
баз даних, включаючи MySQL, PostgreSQL, Oracle, SQL Server, і є хорошим
вибором для автоматизації міграцій та оновлень.
Liquibase – інструмент для управління змінами в базах даних. Він
дозволяє відслідковувати, які зміни були внесені в схеми баз даних, і
підтримує багато реляційних баз, таких як PostgreSQL, MySQL, Oracle, SQL
Server. Liquibase дозволяє автоматизувати міграцію, створюючи так звані
зміни, які можуть бути виконані на різних платформах.
SQL Server Integration Services (SSIS) – це платформа для інтеграції
даних, яка дозволяє здійснювати міграцію, перетворення та завантаження
даних з однієї системи в іншу. SSIS зазвичай використовується для міграції
даних між SQL Server і іншими реляційними базами даних.
Data Migration Assistant (DMA) – інструмент від Microsoft для
допомоги в міграції баз даних на SQL Server або Azure SQL Database. Він
допомагає виявити потенційні проблеми, що можуть виникнути під час
міграції, а також вказує на необхідні зміни для забезпечення сумісності.
Ora2Pg – це утиліта для міграції з Oracle в PostgreSQL. Вона дозволяє
переносити схеми баз даних, дані, функції, тригери та інші елементи з Oracle
до PostgreSQL, полегшуючи процес переходу на нову платформу.
Striim – інструмент для міграції даних в реальному часі між різними
базами даних. Striim дозволяє здійснювати поточну реплікацію даних і
виконувати міграцію з мінімальними затримками, підтримуючи великий набір
баз даних, таких як Oracle, SQL Server, MySQL, PostgreSQL та інші.
Міграція на сучасні бази даних за допомогою цих інструментів дозволяє
підприємствам знизити витрати на утримання старих систем, покращити
продуктивність і масштабованість баз даних, а також забезпечити гнучкість у
використанні новітніх технологій і рішень для обробки великих обсягів даних.
Для ефективного використання розробленої системи, користувачі
повинні володіти навичками роботи з SQL. Оскільки система працює на базі
AWS Redshift, яка підтримує стандартну мову SQL для запитів до даних,
70
знання SQL дозволяє користувачам формулювати необхідні запити та
отримувати потрібну інформацію з бази даних.
Завдяки SQL, користувачі можуть виконувати складні операції з даними,
такі як фільтрація, агрегація, сортування, об'єднання таблиць і багато іншого,
що є важливим для аналізу великих обсягів даних. SQL є основним
інструментом для взаємодії з даними в системі, тому наявність навичок у цієї
мові є необхідною умовою для повноцінного використання системи.
3.5 Оцінка ефективності оптимізації методів синхронізації баз даних
різних типів з використанням рішень AWS
На даний момент немає існуючих систем, які дозволяють повністю
автоматизувати та синхронізувати бази даних з різних платформ так, як це
реалізовано в розробленій системі. Багато інструментів можуть забезпечити
міграцію або реплікацію даних між окремими базами даних, але повна
інтеграція та автоматичне оновлення даних з різних джерел в одну єдина
система вимагає спеціалізованого підходу та налаштувань.
Розроблена система, яка використовує хмарне середовище AWS для
автоматичного експорту і синхронізації даних, є унікальною в плані інтеграції
різних типів баз даних у єдину платформу для аналізу через AWS Redshift,
забезпечуючи безперервне оновлення і доступність даних. Це дозволяє
ефективно працювати з великими обсягами інформації, що зберігається в
різних системах, без необхідності вручну синхронізувати їх.
Для порівняння розробленої системи варто розглянути два підходи:
використання автоматизованого рішення для отримання потрібної інформації
з різних баз даних та використання ручного режиму для отримання даних з
цих баз.
Використання розробленої системи дозволяє автоматично
синхронізувати дані з різних баз даних, що значно спрощує процес доступу до
необхідної інформації. Користувачі можуть легко виконувати SQL запити в
71
AWS Redshift, отримуючи актуальні дані з усіх інтегрованих джерел без
необхідності підключатися до кожної бази даних окремо. Це забезпечує
високу ефективність і точність, зменшуючи час на пошук і обробку даних.
В порівнянні з цим, ручний режим отримання даних з різних баз даних
є значно складнішим і більш трудозатратним процесом. Він вимагає
постійного доступу до кожної бази, знань про структуру даних, а також
необхідності вручну витягувати і обробляти інформацію з кожного джерела.
Це підвищує ймовірність помилок, затримок у отриманні актуальної
інформації та значно збільшує час, необхідний для збору даних.
Використання розробленої системи дозволяє значно знизити витрати
часу і ресурсів, зменшити людський фактор і забезпечити точність і
своєчасність отримуваних даних. Порівняння розробленого рішення з
існуючими підходами зображено в таблиці 3.1.
Таблиця 3.1 – Порівняння розробленого рішення з існуючими підходами
Розроблене рішення Ручний режим
Отримання інформації за
останній місяць з
10 секунд > 1 хвилини *
використанням складних
запитів (2 бази даних)
Отримання інформації за
останній місяць з
23 секунд > 5 хвилини *
використанням складних
запитів (5 бази даних)
Отримання інформації за
вчорашній день з
3 секунди 2 секунди
використанням простого
запиту (1 база даних)
Отримання інформації за
сьогоднішній день з
N/A ** 2 секунди
використанням простого
запиту (1 база даних)
72
* Для ручних запитів потрібно більше часу, оскільки необхідно вручну
підлаштовувати і обробляти результати з різних баз даних, що збільшує час на
отримання актуальної інформації.
** Розроблене рішення не дозволяє отримати дані за поточний день,
оскільки оновлення даних відбувається лише один раз на день, вночі.
Порівнюючи розроблене рішення з використанням ручного отримання
даних з різних баз, можна зробити висновок, що бізнес-аналітик зможе
отримати потрібну інформацію значно швидше та зручніше завдяки
автоматизації процесу. Однак слід враховувати обмеження на отримання
актуальних даних, оскільки їх оновлення відбувається лише один раз на день.
3.6 Висновки до розділу 3
У розділі проведено детальне дослідження та оптимізацію методів
синхронізації баз даних різних типів з використанням рішень AWS.
На основі аналізу розроблено структуру системи, що забезпечує
інтеграцію та синхронізацію даних з різних джерел, спрощує їх аналіз і надає
зручний інтерфейс для доступу та візуалізації інформації. Описано основні
функції системи, які сприяють ефективному обміну інформацією, швидкому
пошуку та візуалізації даних.
Особливу увагу приділено забезпеченню безпеки даних. Запропоновані
підходи до захисту інформації враховують ризики втрати чи компрометації
даних під час синхронізації, що робить систему надійною для використання у
сучасному бізнес-середовищі.
Також визначено технічні вимоги для роботи із системою необхідні для
її ефективного функціонування.
Проведена оцінка ефективності продемонструвала, що використання
рішень AWS дозволяє значно зменшити час на синхронізацію даних,
оптимізувати ресурси, а також забезпечити високу масштабованість і
73
доступність системи. Це підтверджує доцільність обраного підходу для
вирішення задач міграції та обробки даних.
Таким чином, результати, представлені в розділі, свідчать про успішну
реалізацію поставлених цілей та високу ефективність розробленої системи.
74
ВИСНОВКИ
Випускна кваліфікаційна робота магістра охоплює актуальну проблему
інтеграції даних у сучасному бізнес-середовищі, де великі обсяги інформації
вимагають ефективного управління, синхронізації та аналізу.
У випускній роботі було проведено огляд баз даних як ключового
елементу зберігання й обробки даних. Визначено, що популярні системи, такі
як MySQL, PostgreSQL і MongoDB, мають свої специфічні переваги, однак
синхронізація між ними часто є трудомістким процесом. Для вирішення цієї
проблеми запропоновано використання рішень AWS, зокрема AWS DMS, що
забезпечує автоматизацію та оптимізацію міграції і синхронізації баз даних.
Розгляд існуючих технологій і їх порівняння дозволив обрати хмарну
інфраструктуру AWS як основу для розробки системи. Вона забезпечує високу
продуктивність, масштабованість, безпеку, а також значне зниження витрат у
порівнянні з традиційними підходами.
У випускній кваліфікаційній роботі створено структуру системи, яка
інтегрує дані з різних джерел, спрощує їх аналіз і надає зручний інтерфейс для
доступу та візуалізації інформації. Описані функції системи сприяють
підвищенню ефективності бізнес-процесів, забезпечуючи швидкий пошук і
обмін інформацією.
Особливу увагу приділено забезпеченню безпеки даних, що є важливим
аспектом роботи сучасних систем. Розроблені підходи до захисту інформації
враховують потенційні ризики компрометації даних під час синхронізації.
Результати оцінки ефективності підтверджують, що використання AWS
дозволяє значно зменшити час на синхронізацію даних, оптимізувати ресурси
та забезпечити високу надійність і масштабованість системи.
Таким чином, поставлені цілі роботи були досягнуті: розроблена
система відповідає сучасним вимогам, надаючи зручні інструменти для
інтеграції, аналізу та управління даними. Вона демонструє високу практичну
75
цінність для підприємств, які прагнуть оптимізувати свої процеси та
підвищити продуктивність. Запропонована система дозволяє підприємствам
значно знизити витрати на підтримку інфраструктури, оскільки хмарні
технології AWS забезпечують високу доступність, масштабованість та
безпеку без необхідності складного апаратного забезпечення. Зручний
інтерфейс для пошуку і візуалізації даних сприяє зниженню часу на прийняття
рішень та покращенню загальної ефективності бізнес-процесів. Це дозволяє
організаціям підвищити продуктивність, зменшити витрати на обробку даних
та зосередитися на розвитку стратегічних напрямків діяльності.
76
ПЕРЕЛІК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ
SQL (Structured Query Language)
БД (Бази даних )
AWS (Amazon Web Services)
OLTP (Online Transaction Processing)
OLAP (Online Analytical Processing)
DMS (AWS Database Migration Service)
IaaS (Infrastructure as a Service)
SaaS (Software as a Service)
PaaS (Platform as a Service)
IoT (Інтернет речей)
S3 - Amazon Simple Storage Service (сховище об'єктів AWS)
SCT (Schema Conversion Tool)
RDS (Relational Database Service)
S3 (Simple Storage Service)
EC2 (Elastic Compute Cloud)
VPC (Virtual Private Cloud)
IAM (Identity and Access Management)
EKS (Elastic Kubernetes Service)
SNS (Simple Notification Service)
SQS (Simple Queue Service)
AWS (Amazon Web Services)
SSIS (SQL Server Integration Services)
CDC (Change Data Capture)
ETL (Extract, Transform, Load)
NoSQL (Not Only SQL)
BI (Business Intelligence)
77
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Michael Wittig “Amazon Web Services in Action.” Andreas Wittig, Manning
Publications, 2018. 550 p.
2. Thomas Erl “Cloud Computing: Concepts, Technology & Architecture.”
Prentice Hall, 2013. 448 p.
3. Joe Baron “AWSCertified Solutions Architect Official Study Guide.” Hisham
Baz, Tim Bixler, Wiley, 2018. 576 p.
4. Michael J. “Architecting the Cloud: Design Decisions for Cloud Computing
Service Models (SaaS, PaaS, and IaaS).” Wiley, 2014. 304 p.
5. Aurobindo Sarkar “Learning AWS.” Packt Publishing, 2016. 480 p.
6. Piethein Strengholt “Data Management at Scale.” O’Reilly, 2020. 400 p.
7. Bill Wilder “Cloud Architecture Patterns.” O’Reilly, 2012. 136 p.
8. Danilo Poccia “AWS Lambda in Action.” Manning, 2017. 336 p.
9. Albert Anthony “Mastering AWS Cost Optimization.” Packt Publishing,
2021. 372 p.
10. Ralph Kimball “The Data Warehouse Toolkit: The Definitive Guide to
Dimensional Modeling.” Wiley, 2013. 624 p.
11. Hiroko Nishimura “AWS for Non Engineers.” O’Reilly, 2020. 200 p.
12. Asif Abbasi “AWS Certified Big Data Specialty Exam Guide.” Packt
Publishing, 2020. 506 p.
13. Shreyas Subramanian “Amazon Redshift: A Guide to Data Warehousing and
Analytics in the Cloud.” Packt Publishing, 2019. 500 p.
14. Boris Lublinsky “Amazon Web Services for Solutions Architects:
Understand the AWS platform and use it to build scalable, reliable
applications”. Kevin L. Jackson, Peter S. Lublinsky. Wiley, 2018. 400 p.
15. Jesse Anderson. “Mining Big Data with AWS: Using Amazon’s Data
Services for Analytics.” O’Reilly Media, 2017. 350 p.
78
16. Saurabh Gohil “Mastering Amazon Web Services: Build powerful
applications with AWS.” Packt Publishing, 2019. 450 p.
17. Kamesh Ganesan “AWS Certified Big Data Specialty Exam Guide.” Packt
Publishing, 2020. 350 p.
18. Hisham Muhammad “AWS for Developers: Developing with Amazon Web
Services.” Sohel Farooq O’Reilly Media, 2017. 300 p.
19. Michael Wittig “Amazon Web Services in Action.” Andreas Wittig Manning
Publications, 2018. 550 p.
20. Brendan Burns, Joe Beda. “Kubernetes: Up and Running: Dive into the
Future of Infrastructure.” Joe Beda O’Reilly Media, 2019. 320 p.
21. Saurabh Gohil. “Big Data Integration with AWS.” Packt Publishing, 2020.
375 p.
22. Jason Davis “AWS Certified Solutions Architect Associate Guide: Prepare
for the AWS Certification.” Packt Publishing, 2019. 400 p.
23. Antonis Antoniou “Mastering AWS CloudFormation: Automate and Deploy
AWS Infrastructure.” Packt Publishing, 2019. 350 p.
ДОДАТОК А
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор Віра БАБЕНКО
__________________
“___” _____________ 2024р.
Дослідження та оптимізація методів синхронізації баз даних різних типів
з використанням рішень AWS
Специфікація
482.ЧДТУ.42328-01
Листів 2
Розробник _______________ Анжеліка СТРАТІЛАТОВА
Керівник _______________ Віра БАБЕНКО
Черкаси 2024
2
482.ЧДТУ.42328-01
Позначення Найменування Примітка
Документація
482.ЧДТУ.42328-01 12 01 Текст програми
482.ЧДТУ.42328-01 34 01 Інструкція користувача
ДОДАТОК Б
Дослідження та оптимізація методів синхронізації баз даних різних типів
з використанням рішень AWS
Текс програми
482.ЧДТУ.42328-01 12 01
Листів 10
Розробник _______________ Анжеліка СТРАТІЛАТОВА
Черкаси 2024
2
482.ЧДТУ.42328-01 12 01
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as iam from 'aws-cdk-lib/aws-iam';
import * as rds from 'aws-cdk-lib/aws-rds';
import * as redshift from 'aws-cdk-lib/aws-redshift';
import * as dms from 'aws-cdk-lib/aws-dms';
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
import * as tasks from 'aws-cdk-lib/aws-stepfunctions-tasks';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
export class RdsToRedshiftStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const vpc = new ec2.Vpc(this, 'VPC', {
maxAzs: 2,
});
const rdsInstance = new rds.DatabaseInstance(this, 'RDSInstance', {
engine: rds.DatabaseInstanceEngine.mysql({
version: rds.MysqlEngineVersion.VER_8_0_26,
}),
vpc,
instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2,
ec2.InstanceSize.MICRO),
credentials: rds.Credentials.fromGeneratedSecret('admin'),
databaseName: 'mydatabase',
removalPolicy: cdk.RemovalPolicy.DESTROY,
});
const redshiftCluster = new redshift.CfnCluster(this, 'RedshiftCluster', {
clusterType: 'single-node',
nodeType: 'dc2.large',
masterUsername: 'admin',
masterUserPassword: 'YourPassword123!',
databaseName: 'myredshiftdb',
clusterIdentifier: 'my-redshift-cluster',
vpcSecurityGroupIds: [new ec2.SecurityGroup(this, 'RedshiftSG',
{ vpc }).securityGroupId],
3
482.ЧДТУ.42328-01 12 01
clusterSubnetGroupName: new redshift.CfnClusterSubnetGroup(this,
'RedshiftSubnetGroup', {
clusterSubnetGroupName: 'redshift-subnet-group',
subnetIds: vpc.privateSubnets.map(subnet => subnet.subnetId),
}).ref,
});
const dmsRole = new iam.Role(this, 'DMSRole', {
assumedBy: new iam.ServicePrincipal('dms.amazonaws.com'),
});
dmsRole.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('
service-role/AWS_DMS_VPC_ROLE'));
dmsRole.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('
service-role/AWS_DMS_S3_ROLE'));
const dmsEndpointRds = new dms.CfnEndpoint(this, 'DMSEndpointRDS', {
endpointIdentifier: 'rds-endpoint',
endpointType: 'source',
engineName: 'mysql',
username: 'admin',
password: rdsInstance.secret?.secretValueFromJson('password').toString() || '',
serverName: rdsInstance.dbInstanceEndpointAddress,
port: rdsInstance.dbInstanceEndpointPort,
databaseName: 'mydatabase',
extraConnectionAttributes:
'useServerPrepStmts=1;useCursorFetch=1;fetchSize=1000;',
});
const dmsEndpointRedshift = new dms.CfnEndpoint(this,
'DMSEndpointRedshift', {
endpointIdentifier: 'redshift-endpoint',
endpointType: 'target',
engineName: 'redshift',
username: 'admin',
password: 'YourPassword123!',
serverName: redshiftCluster.attrEndpointAddress,
port: '5439',
databaseName: 'myredshiftdb',
4
482.ЧДТУ.42328-01 12 01
});
const dmsReplicationInstance = new dms.CfnReplicationInstance(this,
'DMSReplicationInstance', {
replicationInstanceIdentifier: 'dms-replication-instance',
replicationInstanceClass: 'dms.r5.large',
allocatedStorage: 100,
});
const dmsTask = new dms.CfnReplicationTask(this, 'DMSTask', {
migrationType: 'full-load',
replicationTaskIdentifier: 'dms-task',
sourceEndpointArn: dmsEndpointRds.attrEndpointArn,
targetEndpointArn: dmsEndpointRedshift.attrEndpointArn,
migrationType: 'full-load',
tableMappings: JSON.stringify({
rules: [
{
ruleType: 'selection',
ruleId: '1',
ruleAction: 'include',
filters: [],
ruleCondition: '',
ruleName: 'include_all',
},
],
}),
replicationInstanceArn: dmsReplicationInstance.attrReplicationInstanceArn,
});
const lambdaFunction = new lambda.Function(this, 'StepFunctionLambda', {
runtime: lambda.Runtime.NODEJS_14_X,
handler: 'index.handler',
code: lambda.Code.fromAsset('lambda'),
environment: {
DMS_TASK_ARN: dmsTask.attrReplicationTaskArn,
},
});
const startDmsTask = new tasks.LambdaInvoke(this, 'StartDMSTask', {
lambdaFunction,
5
482.ЧДТУ.42328-01 12 01
outputPath: '$.Payload',
});
const definition = startDmsTask;
const stateMachine = new sfn.StateMachine(this, 'StateMachine', {
definition,
timeout: cdk.Duration.minutes(5),
});
new cdk.CfnOutput(this, 'RDSInstanceEndpoint', {
value: rdsInstance.dbInstanceEndpointAddress,
});
new cdk.CfnOutput(this, 'RedshiftClusterEndpoint', {
value: redshiftCluster.attrEndpointAddress,
});
new cdk.CfnOutput(this, 'StateMachineArn', {
value: stateMachine.stateMachineArn,
});
}
}
const app = new cdk.App();
new RdsToRedshiftStack(app, 'RdsToRedshiftStack');
import * as AWS from 'aws-sdk';
import * as stepfunctions from 'aws-cdk-lib/aws-stepfunctions';
import * as tasks from 'aws-cdk-lib/aws-stepfunctions-tasks';
import * as iam from 'aws-cdk-lib/aws-iam';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as redshift from 'aws-cdk-lib/aws-redshift';
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
export class DataImportStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
6
482.ЧДТУ.42328-01 12 01
const bucket = new s3.Bucket(this, 'DataImportBucket', {
removalPolicy: cdk.RemovalPolicy.DESTROY,
});
const redshiftCluster = new redshift.CfnCluster(this, 'RedshiftCluster', {
clusterType: 'single-node',
nodeType: 'dc2.large',
masterUsername: 'admin',
masterUserPassword: 'YourPassword123',
databaseName: 'mydatabase',
clusterIdentifier: 'my-redshift-cluster',
port: 5439,
publiclyAccessible: true,
});
const importDataFunction = new lambda.Function(this, 'ImportDataFunction', {
runtime: lambda.Runtime.NODEJS_14_X,
handler: 'importData.handler',
code: lambda.Code.fromAsset('lambda'),
environment: {
BUCKET_NAME: bucket.bucketName,
REDSHIFT_ENDPOINT: redshiftCluster.attrEndpointAddress,
REDSHIFT_DATABASE: 'mydatabase',
REDSHIFT_USER: 'admin',
REDSHIFT_PASSWORD: 'YourPassword123',
},
});
bucket.grantRead(importDataFunction);
const importDataTask = new tasks.LambdaInvoke(this, 'Import Data to
Redshift', {
lambdaFunction: importDataFunction,
outputPath: '$.Payload',
});
const definition = importDataTask;
const stateMachine = new stepfunctions.StateMachine(this,
'DataImportStateMachine', {
definition,
7
482.ЧДТУ.42328-01 12 01
timeout: cdk.Duration.minutes(5),
});
const role = new iam.Role(this, 'StepFunctionRole', {
assumedBy: new iam.ServicePrincipal('states.amazonaws.com'),
});
role.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('servi
ce-role/AWSLambdaRole'));
role.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('servi
ce-role/AWSStepFunctionsFullAccess'));
stateMachine.grantStartExecution(role);
}
}
const app = new cdk.App();
new DataImportStack(app, 'DataImportStack');
app.synth();
import * as AWS from 'aws-sdk';
const rds = new AWS.RDS();
const redshift = new AWS.Redshift();
const createRDSInstance = async (dbInstanceIdentifier: string, dbName: string,
masterUsername: string, masterUserPassword: string) => {
const params = {
DBInstanceClass: 'db.t2.micro',
DBInstanceIdentifier: dbInstanceIdentifier,
Engine: 'mysql',
MasterUsername: masterUsername,
MasterUserPassword: masterUserPassword,
AllocatedStorage: 20,
DBName: dbName,
VpcSecurityGroupIds: ['sg-xxxxxxxx'], // Replace with your security group
ID
AvailabilityZone: 'us-west-2a', // Replace with your desired availability zone
};
8
482.ЧДТУ.42328-01 12 01
try {
const data = await rds.createDBInstance(params).promise();
console.log(`RDS MySQL instance created:
${data.DBInstance.DBInstanceIdentifier}`);
} catch (error) {
console.error(`Error creating RDS MySQL instance: ${error}`);
}
};
const createMongoDBInstance = async (dbInstanceIdentifier: string) => {
// MongoDB is not natively supported by RDS, consider using DocumentDB
const params = {
DBInstanceClass: 'db.t3.medium',
DBInstanceIdentifier: dbInstanceIdentifier,
Engine: 'docdb',
MasterUsername: 'admin',
MasterUserPassword: 'yourpassword', // Replace with a secure password
AllocatedStorage: 20,
VpcSecurityGroupIds: ['sg-xxxxxxxx'], // Replace with your security group
ID
AvailabilityZone: 'us-west-2a', // Replace with your desired availability zone
};
try {
const data = await rds.createDBInstance(params).promise();
console.log(`MongoDB (DocumentDB) instance created:
${data.DBInstance.DBInstanceIdentifier}`);
} catch (error) {
console.error(`Error creating MongoDB instance: ${error}`);
}
};
const createRedshiftCluster = async (clusterIdentifier: string, dbName: string,
masterUsername: string, masterUserPassword: string) => {
const params = {
ClusterIdentifier: clusterIdentifier,
NodeType: 'dc2.large',
MasterUsername: masterUsername,
MasterUserPassword: masterUserPassword,
DBName: dbName,
9
482.ЧДТУ.42328-01 12 01
ClusterType: 'single-node',
VpcSecurityGroupIds: ['sg-xxxxxxxx'], // Replace with your security group
ID
};
try {
const data = await redshift.createCluster(params).promise();
console.log(`Redshift cluster created: ${data.Cluster.ClusterIdentifier}`);
} catch (error) {
console.error(`Error creating Redshift cluster: ${error}`);
}
};
const setupAWSInfrastructure = async () => {
await createRDSInstance('my-mysql-db', 'mydb', 'admin', 'yourpassword');
await createMongoDBInstance('my-mongodb-db');
await createRedshiftCluster('my-redshift-cluster', 'mydb', 'admin',
'yourpassword');
};
setupAWSInfrastructure();
import * as AWS from 'aws-sdk';
const region = 'us-west-2'; // Change to your desired region
const clusterIdentifier = 'my-redshift-cluster';
const dbName = 'mydb';
const masterUsername = 'masteruser';
const masterUserPassword = 'YourPassword123!';
const nodeType = 'dc2.large';
const numberOfNodes = 2;
AWS.config.update({ region });
const redshift = new AWS.Redshift();
const createCluster = async () => {
const params = {
ClusterIdentifier: clusterIdentifier,
NodeType: nodeType,
MasterUsername: masterUsername,
10
482.ЧДТУ.42328-01 12 01
MasterUserPassword: masterUserPassword,
DBName: dbName,
ClusterType: 'multi-node',
NumberOfNodes: numberOfNodes,
VpcSecurityGroupIds: ['sg-0123456789abcdef0'], // Replace with your
security group ID
IamRoles: ['arn:aws:iam::123456789012:role/MyRedshiftRole'], // Replace
with your IAM role ARN
};
try {
const data = await redshift.createCluster(params).promise();
console.log('Cluster created successfully:', data);
} catch (error) {
console.error('Error creating cluster:', error);
}
};
const main = async () => {
await createCluster();
};
main();
ДОДАТОК В
Дослідження та оптимізація методів синхронізації баз даних різних типів
з використанням рішень AWS
Інструкція користувача
482.ЧДТУ.42328-01 34 01
Листів 4
Розробник _______________ Анжеліка СТРАТІЛАТОВА
Черкаси 2024
2
482.ЧДТУ.42328-01 34 01
Користувачами даної системи можуть бути як бізнес-аналітики, які
виконують роль користувачів для отримання аналітичної інформації та
побудови звітів, так і системні адміністратори, які виконують роль
адміністраторів для управління та підтримки інфраструктури системи.
Щоб почати використовувати розроблену систему, користувач повинен
виконати кілька простих кроків. Спочатку потрібно авторизуватися в AWS
Management Console, використовуючи свої облікові дані. Це забезпечує
захищений доступ через HTTPS, що гарантує безпеку даних. Після успішного
входу користувач переходить до сервісу Amazon Redshift, який доступний у
списку сервісів AWS.
Далі користувач вибирає необхідний кластер Redshift зі списку
доступних або отримує URL для підключення від адміністратора системи. Для
роботи з Redshift можна використовувати різні клієнти SQL, такі як DBeaver,
SQL Workbench, або вбудований інструмент Query Editor у консолі AWS.
Після встановлення з'єднання з базою даних користувач може
виконувати SQL-запити для отримання необхідної інформації, аналізу даних
та створення звітів. Цей процес значно спрощує доступ до даних і дозволяє
швидко отримувати аналітичну інформацію без необхідності прямого
підключення до кожної окремої бази даних.
Результати виконання SQL-запитів будуть доступні безпосередньо в
системі AWSRedshift, де користувач зможе переглядати їх у зручному форматі
через інтерфейс або клієнт SQL. Однак, крім роботи в хмарі, користувач також
має можливість експортувати результати запитів і завантажувати їх на свій
локальний комп’ютер. Це дозволяє зберігати дані для подальшої обробки,
аналізу або використання в локальних інструментах, таких як Excel, Power BI
або інші аналітичні програми. Таким чином, система забезпечує гнучкість у
роботі з даними як у хмарному середовищі, так і локально.
3
482.ЧДТУ.42328-01 34 01
Щоб налаштувати інфраструктуру для розробленої системи за
допомогою GitHub Actions та автоматизованого коду з використанням AWS
CDK, системному адміністратору слід виконати наступні кроки.
Адміністратор створює або використовує існуючий репозиторій на
GitHub, який містить код інфраструктури, написаний за допомогою AWS CDK
(Cloud Development Kit). У репозиторії має бути визначено всі необхідні
ресурси, такі як кластери Redshift, сервіси DMS, S3 та Step Functions.
У репозиторії створюється конфігураційний файл GitHub Actions
(.github/workflows/deploy.yml). Цей файл визначає автоматизований процес
розгортання інфраструктури. Основні етапи процесу:
1. Перевірка коду: перевірка синтаксису та стилю.
2. Встановлення AWS CDK: установка необхідних залежностей
для виконання CDK-команд.
3. Аутентифікація в AWS: GitHub Action використовує AWS
Secrets (наприклад, AWS_ACCESS_KEY_ID і AWS_SECRET_ACCESS_KEY)
для підключення до облікового запису AWS.
4. Розгортання інфраструктури: виконання команд CDK (cdk
deploy) для створення або оновлення ресурсів в AWS.
Адміністратор додає облікові дані для доступу до AWS (ключі доступу)
в розділі Settings -> Secrets and variables -> Actions у репозиторії GitHub. Це
забезпечує безпечне використання облікових даних під час виконання GitHub
Actions.
Після внесення змін до коду в репозиторії (наприклад, оновлення
налаштувань інфраструктури), GitHub Actions автоматично запускає процес
розгортання. Код AWS CDK створює або оновлює всі необхідні ресурси,
забезпечуючи готовність системи до роботи.
4
482.ЧДТУ.42328-01 34 01
Після успішного виконання GitHub Actions адміністратор перевіряє, чи
всі ресурси в AWS налаштовані правильно, а також тестує основні процеси
(експорт даних, синхронізацію та запити в Redshift).
Цей підхід забезпечує швидке, автоматизоване та надійне розгортання
інфраструктури, дозволяючи мінімізувати ручні помилки та витрати часу. У
разі збою або необхідності відновлення система може бути розгорнута заново
за кілька хвилин.