Общие

Что такое Amazon Neptune?

Amazon Neptune – это быстрый, надежный, полностью управляемый сервис графовой базы данных, который упрощает создание и запуск приложений, работающих с наборами тесно связанных данных. Основа Neptune – специально разработанное высокопроизводительное ядро графовой базы данных. Оно оптимизировано для хранения миллиардов связей и запроса графов с задержкой в миллисекунды. Neptune поддерживает популярные языки запросов графов Apache TinkerPop Gremlin, W3C SPARQL и openCypher, что позволяет создавать запросы для эффективной навигации по связанным базам данных. Neptune лежит в основе таких примеров использования графов, как сервисы рекомендаций, системы выявления мошенничества, графы знаний, разработка лекарственных препаратов и сетевая безопасность.

В целях обеспечения высокой доступности в сервисе Neptune используются реплики чтения, возможность восстановления на момент времени, постоянное резервное копирование в Amazon S3 и репликация в разных зонах доступности. Neptune предоставляет функции защиты данных с поддержкой шифрования при хранении и передаче. Сервис Neptune полностью управляем, поэтому при работе с базами данных больше не требуется заниматься такими административными задачами, как подготовка оборудования, установка исправлений ПО, установка и настройка самой базы данных, а также ее резервное копирование.

Amazon Neptune поддерживает два языка запросов для модели данных Property Graph: язык обхода графов Apache TinkerPop Gremlin с открытым исходным кодом и язык запросов openCypher, а для модели данных Resource Description Framework (RDF) Neptune поддерживает открытый стандарт W3C языка запросов SPARQL.

Можно ли использовать Apache TinkerPop Gremlin, openCypher и RDF/SPARQL в одном и том же кластере Neptune?

Да, каждый кластер Neptune может хранить как данные графа свойств, так и данные RDF. Neptune предоставляет адрес Gremlin (HTTPS и WebSocket), адрес openCypher (HTTPS и Bolt) и адрес по протоколу REST SPARQL 1.1. 

Для графов свойств можно выполнить запрос Gremlin или openCypher к одним и тем же данным, независимо от того, какой язык использовался для ввода этих данных. Возможно, вам будет удобнее использовать Gremlin для одних рабочих нагрузок и openCypher – для других. Вы не можете выполнить запрос к данным графа свойств (Gremlin или openCypher) через данные RDF или наоборот.

Как выполнить миграцию с существующего приложения Apache TinkerPop Gremlin на Amazon Neptune?

Amazon Neptune предоставляет сервер Apache TinkerPop Gremlin, поддерживающий подключения HTTPS и WebSocket. После выделения инстанса Amazon Neptune можно настроить существующее приложение TinkerPop для использования адреса, предоставленного сервисом. См. также Accessing the Graph via Gremlin («Доступ к графовой базе данных с помощью Gremlin»).

Нужно ли менять драйверы клиентов для работы с сервером Gremlin в Amazon Neptune?

Нет, сервер Gremlin в Amazon Neptune поддерживает клиенты, совместимые с Apache TinkerPop при использовании подключений WebSocket и HTTPS REST. Последняя версия Neptune поддерживает TinkerPop 3.6.x. Для получения дополнительной информации ознакомьтесь с документацией.

Как выполнить миграцию с существующего приложения openCypher на Amazon Neptune?

Благодаря тому, что сервис Neptune поддерживает язык запросов openCypher, вы можете перенести в Neptune большинство рабочих нагрузок Cypher или Neo4j, использующих протокол Bolt или HTTPS. Более подробную информацию о том, как перенести приложение openCypher, см. в руководстве по миграции.

Как выполнить миграцию с хранилища триплетов, использующего адрес SPARQL, на Amazon Neptune?

Amazon Neptune предоставляет адрес HTTPS REST, использующий протокол SPARQL 1.1. После выделения инстанса сервиса можно указать в настройках приложения адрес SPARQL. См. также «Accessing the Graph via SPARQL» («Доступ к графовой базе данных с помощью SPARQL»)

Нужно ли менять драйверы клиентов для работы с адресом SPARQL в Amazon Neptune?

Нет, адрес SPARQL Amazon Neptune будет работать с любым клиентом, поддерживающим протокол SPARQL 1.1.

Совместим ли Amazon Neptune с принципом ACID (атомарность, непротиворечивость, изолированность, долговечность)?

Да, Neptune соответствует стандарту ACID и обеспечивает немедленную согласованность на первичном инстансе записи и конечную согласованность на инстансах реплик чтения.

Почему для использования Amazon Neptune требуются разрешения и ресурсы Amazon RDS?

Amazon Neptune – это специально разработанное высокопроизводительное ядро графовой базы данных. Для предоставления некоторых возможностей управления, включая управление жизненным циклом инстансов, шифрование данных при хранении с использованием ключей Amazon Key Management Service (KMS) и управление группами безопасности, Amazon Neptune использует ту же операционную технологию, что и Amazon RDS.

Предлагается ли для Amazon Neptune соглашение об уровне обслуживания (SLA)?

Да. Ознакомьтесь с соглашением об уровне обслуживания (SLA) для Amazon Neptune.

Производительность

Какие типы рабочих нагрузок запросов к графам оптимизированы для использования с Amazon Neptune?

Amazon Neptune поддерживает приложения на основе графов, для которых требуется высокая пропускная способность и низкая задержка при выполнении запросов к графам. Amazon Neptune поддерживает создание до 15 реплик чтения и может обслуживать сотни тысяч запросов в секунду.

Выполняет ли Amazon Neptune оптимизацию запросов?

Да, Amazon Neptune использует оптимизацию запросов для запросов Gremlin, openCypher и SPARQL. Дополнительные сведения см. в этом разделе.

Сервис Amazon Neptune основан на реляционной базе данных?

Нет, Amazon Neptune – это специально разработанное высокопроизводительное ядро графовой базы данных. Amazon Neptune обеспечивает эффективное хранение графовых данных и навигацию по ним. Масштабируемая архитектура с оптимизацией в оперативной памяти позволяет выполнять быструю оценку запросов к большим графам.

Цены

Сколько стоит использование Amazon Neptune?

Ознакомьтесь с действующими тарифами на странице цен.

В каких регионах AWS доступен Amazon Neptune?

Актуальная информация по регионам и ценам находится на странице цен.

Amazon Neptune реплицирует каждый фрагмент тома моей базы данных шестью способами в трех зонах доступности. Означает ли это, что в результате цена хранилища будет в три или шесть раз выше цены, указанной на странице цен?

Нет. Репликация в Amazon Neptune включена в цену. Цена определяется хранилищем, потребляемым на уровне базы данных, а не на уровне виртуализированного хранилища в Amazon Neptune.

Что такое операции ввода-вывода в Amazon Neptune и как они учитываются?

Ядро Amazon Neptune разработано для устранения ненужных операций ввода-вывода, что позволяет снизить издержки и гарантировать доступность ресурсов для обслуживания трафика чтения/записи. Операции записи потребляются только при отправке записей журнала транзакций на уровень хранилища для постоянного хранения. Операции записи учитываются блоками по 4 КБ. Например, запись журнала транзакций размером 1024 байта будет считаться за одну операцию ввода‑вывода. Однако ядро базы данных Amazon Neptune может создавать пакеты из параллельных операций записи с журналами транзакций меньше 4 КБ в целях оптимизации потребления ресурсов ввода-вывода. В отличие от традиционных ядер баз данных, Amazon Neptune никогда не отправляет измененные страницы базы данных на уровень хранилища, что способствует еще большей экономии ресурсов ввода-вывода.

Аппаратное обеспечение и масштабирование

Каковы минимальные и максимальные ограничения хранилища базы данных Amazon Neptune?

Минимальный объем хранилища – 10 ГБ. По мере использования базы данных хранилище Amazon Neptune будет автоматически расти до 128 ТиБ с шагом в 10 ГБ. На производительности базы данных это никак не отразится. Выделять хранилище заранее не требуется.

Как масштабировать вычислительные ресурсы, связанные с инстансом БД Amazon Neptune?

Вычислительные ресурсы, выделенные для инстанса БД, можно масштабировать в Консоли управления AWS, выбрав нужный инстанс БД и нажав кнопку «Modify» («Изменить»). Ресурсы памяти и ЦПУ масштабируются за счет изменения класса инстанса БД.

При изменении класса инстанса БД запрошенные изменения вступят в силу в указанный период обслуживания. Как вариант, можно установить флажок «Apply Immediately» (Применить сразу) для немедленного выполнения запроса на масштабирование. В обоих случаях это снизит доступность БД на несколько минут, в течение которых выполняется масштабирование. Помните, что одновременно будут применены любые другие ожидающие применения системные изменения.

Могу ли я автоматически увеличивать и уменьшать размер базы данных в зависимости от использования?

С помощью бессерверной конфигурации Amazon Neptune можно автоматически масштабировать емкость базы данных. Бессерверная конфигурация Neptune позволяет запускать и мгновенно масштабировать графовые рабочие нагрузки без необходимости управления и оптимизации емкости. Бессерверная конфигурация Neptune автоматически определяет и предоставляет вычислительные ресурсы и память для работы графовой базы данных, а также масштабирует емкость в зависимости от изменяющихся требований рабочей нагрузки, чтобы поддерживать постоянную производительность.

Поддерживает ли Neptune автомасштабирование?

Да, Neptune поддерживает автомасштабирование реплик чтения инстансов. Вы можете настроить автомасштабирование для автоматического добавления или удаления реплик чтения в ответ на изменения в требованиях к подключению или рабочей нагрузке. Дополнительную информацию см. в документации.

Резервное копирование и восстановление

Как включить резервное копирование для инстанса БД?

Автоматическое резервное копирование для инстансов БД в Amazon Neptune включено всегда. Резервное копирование не влияет на производительность базы данных.

Можно ли делать снимки состояния БД и сохранять их в течение неограниченного времени?

Да. И выполнение таких снимков не повлияет на производительность. Учтите, что восстановление данных из снимков состояния БД требует создания нового инстанса БД.

Какова процедура восстановления при отказе базы данных?

Amazon Neptune автоматически создает 6 копий данных в трех зонах доступности и автоматически попытается восстановить базу данных в работоспособной зоне доступности без потери данных. В том маловероятном случае, когда данные в хранилище Amazon Neptune окажутся полностью недоступны, их можно будет восстановить из снимка состояния БД или выполнить операцию восстановления на момент времени на новом инстансе. Обратите внимание на то, что самое позднее время восстановления при операции восстановления на момент времени может быть до 5 минут в прошлом.

Что происходит с резервными копиями и снимками состояния БД при удалении инстанса БД?

При удалении инстанса БД можно создать последний снимок состояния БД. Такой снимок состояния БД можно будет применить позже для восстановления удаленного инстанса БД. После удаления инстанса БД Amazon Neptune сохраняет последний снимок состояния БД, созданный пользователем, наряду со всеми прочими снимками состояния БД, созданными вручную. После удаления инстанса БД сохраняются только снимки состояния БД (то есть созданные автоматически резервные копии для восстановления на момент времени не сохраняются).

Можно ли использовать свои снимки состояния совместно с другим аккаунтом AWS?

Да. Amazon Neptune позволяет создавать снимки состояния баз данных, которые в дальнейшем можно использовать для восстановления базы данных. Снимок состояния можно использовать совместно с другим аккаунтом AWS, при этом владелец аккаунта‑получателя обретает возможность использовать этот снимок состояния для восстановления базы данных, содержащей все исходные данные. Снимок состояния можно сделать даже публичным – в этом случае любой пользователь сможет восстановить базу данных, содержащую соответствующие публичные данные. Эту возможность можно применять для совместного использования данных разными средами (рабочей средой, средой разработки и тестирования, средой подготовки и т. д.), когда они относятся к разным аккаунтам AWS, а также для того, чтобы безопасно хранить резервные копии всех данных в нескольких аккаунтах на тот случай, если используемый главный аккаунт AWS будет взломан.

Будет ли начисляться плата за совместно используемые снимки состояния?

За совместное использование снимка состояния несколькими аккаунтами плата не взимается. Однако плата может начисляться за сам снимок состояния, а также за любую базу данных, восстановленную из совместно используемых снимков состояния. Подробнее о ценах на Amazon Neptune.

Возможно ли автоматическое совместное использование снимков состояния?

Совместное использование автоматически созданных снимков состояния базы данных не поддерживается. Для совместного использования автоматически созданных снимков состояния нужно вручную создать копию такого снимка состояния и предоставить к ней общий доступ.

С каким количеством аккаунтов можно совместно использовать снимок состояния?

Созданные вручную снимки состояния можно использовать совместно с 20 аккаунтами AWS. Если требуется совместно использовать снимок состояния с более чем 20 аккаунтов, можно либо сделать снимок состояния публичным, либо обратиться в службу поддержки для повышения квоты.

В каких регионах можно совместно использовать снимки состояния Amazon Neptune?

Снимки состояния Amazon Neptune можно совместно использовать во всех регионах AWS, где доступен сервис Amazon Neptune.

Можно ли совместно использовать снимки состояния Amazon Neptune в нескольких регионах?

Нет. Совместно используемые снимки состояния Amazon Neptune будут доступны только для аккаунтов, находящихся в том же регионе, что и аккаунт, сделавший общими эти снимки состояния.

Можно ли совместно использовать зашифрованные снимки состояния Amazon Neptune?

Да. Зашифрованные снимки состояния Amazon Neptune можно использовать совместно.

Можно ли использовать снимки состояния Amazon Neptune за пределами сервиса?

Нет, снимки состояния Amazon Neptune можно использовать только в пределах сервиса.

Высокая доступность и репликация

Как Amazon Neptune повышает отказоустойчивость базы данных при сбоях диска?

Amazon Neptune автоматически делит том базы данных на распределенные по нескольким дискам сегменты по 10 ГБ. Каждый блок тома базы данных в 10 ГБ шестикратно реплицирован в трех зонах доступности. Amazon Neptune обеспечивает автоматическую обработку потери до двух копий данных без снижения доступности операций записи в базу данных и до трех копий без снижения доступности операций чтения. Кроме того, хранилище Amazon Neptune является самовосстанавливающимся. Блоки данных и диски непрерывно сканируются на наличие ошибок и автоматически восстанавливаются.

Как Amazon Neptune сокращает время восстановления после сбоя базы данных?

В отличие от других баз данных, после сбоя базы данных Amazon Neptune не нужно воспроизводить журнал повтора с последней контрольной точки базы данных (обычно 5 минут) и подтверждать, что все изменения были применены, прежде чем сделать базу данных доступной для операций. Благодаря этому время перезапуска базы данных в большинстве случаев составляет менее 60 секунд. Amazon Neptune изолирует буферный кэш от процессов базы данных и делает его мгновенно доступным во время перезагрузки. Это предотвращает необходимость регулировать доступ до тех пор, пока кэш не заполнен, во избежание сбоев доступа.

Какие типы реплик поддерживает Neptune?

Amazon Neptune поддерживает реплики чтения, имеющие тот же объем, что и основной инстанс. Сделанные в основном инстансе обновления видны всем репликам Amazon Neptune. В одном кластере Neptune может быть один инстанс записи и до 15 реплик чтения. В случае сбоя инстанса записи в него будет автоматически преобразована реплика чтения.

Можно ли при работе с Amazon Neptune использовать реплики в различных регионах?

Да, Amazon Neptune поддерживает межрегиональную репликацию, если настроить кластер Neptune на использование глобальной базы данных. См. раздел Глобальная база данных Amazon Neptune.

Можно ли указывать определенные реплики в качестве приоритетных целевых объектов при обработке отказа?

Да. Каждому инстансу в кластере можно присвоить приоритет использования. При отказе основного инстанса сервис Amazon Neptune выделяет реплику с наивысшим приоритетом в качестве основного инстанса. Если две и более реплик имеют одинаковый уровень приоритета, сервис Amazon Neptune использует реплику, размер которой совпадает с размером основного инстанса.

Можно ли изменять уровни приоритета инстансов после их создания?

Уровень приоритета инстанса можно изменять в любое время. Изменение уровня приоритета само по себе не приводит к запуску обработки отказа.

Можно ли запретить перемещение определенных реплик в основной инстанс?

Репликам, которые не планируется преобразовывать в основной инстанс, можно назначить более низкий уровень приоритета. Но если реплики с высоким приоритетом в кластере по какой-либо причине неработоспособны или недоступны, сервис Amazon Neptune будет использовать для обработки отказа реплики с низким приоритетом.

Как можно повысить доступность отдельной базы данных Amazon Neptune?

Можно добавить реплики Amazon Neptune. Реплики Amazon Neptune используют то же самое хранилище, что и первичный инстанс. Любую реплику Amazon Neptune можно сделать основной без какой-либо потери данных и таким образом использовать для повышения отказоустойчивости в случае сбоя основного инстанса БД. Для повышения доступности базы данных просто создайте от 1 до 15 реплик, и Amazon Neptune будет автоматически включать их в список для выбора основного инстанса в случае отказа базы данных.

Что происходит во время обработки отказа и сколько времени это занимает?

Amazon Neptune автоматически осуществляет аварийную обработку отказа, чтобы приложения могли возобновить операции с базами данных как можно скорее без ручного вмешательства администратора.

При наличии реплики Amazon Neptune в той же или другой зоне доступности при обработке отказа Amazon Neptune переадресует запись канонического имени (CNAME) основного адреса БД на работоспособную реплику, которая, в свою очередь, становится основной. Обработка отказа обычно полностью выполняется за 30 секунд. При этом адрес реплики чтения не требует изменения CNAME при обработке отказа.

При отсутствии реплик Amazon Neptune (т. е. при наличии единственного инстанса) сервис сначала попытается создать новый инстанс БД в той же зоне доступности, что и исходный инстанс. Если это невозможно, Amazon Neptune попытается создать новый инстанс БД в другой зоне доступности. Весь процесс обработки отказа обычно занимает менее 15 минут.

В случае потери соединения приложение должно пытаться повторно подключиться к базе данных. 

Что будет, если произойдет обработка отказа при наличии основной базы данных и реплики Amazon Neptune, активно обслуживающей трафик операций чтения?

Amazon Neptune автоматически обнаружит проблему с первичным инстансом и начнет направлять трафик операций чтения/записи на реплику Amazon Neptune. В среднем обработка отказа в такой ситуации занимает 30 секунд. Кроме того, трафик операций чтения, который обслуживали реплики Amazon Neptune, будет прерван на короткий промежуток времени.

Насколько реплики отстают от первичного инстанса?

Поскольку реплики Amazon Neptune используют тот же самый том данных, что и первичный инстанс, задержки репликации практически не существует. Мы заметили, что интервал отставания обычно сохраняется на уровне десятков миллисекунд.

Безопасность

Можно ли работать с Amazon Neptune в Amazon Virtual Private Cloud (Amazon VPC)?

Да, для этого все инстансы БД Amazon Neptune должны быть созданы в облаке VPC. Amazon VPC дает возможность определять топологию виртуальной сети, очень напоминающую традиционную сеть, которая могла бы работать в локальном центре обработки данных. Это предоставляет клиентам полный контроль над тем, кто может иметь доступ к их базам данных в Amazon Neptune.

Поддерживает ли Amazon Neptune шифрование данных при передаче и хранении?

Amazon Neptune поддерживает клиентские подключения HTTPS с шифрованием и шифрование баз данных с использованием ключей, управление которыми осуществляется в AWS Key Management Service (KMS). В инстансе базы данных Amazon Neptune с шифрованием шифруются все данные в базовой системе хранения, а также их автоматические резервные копии, снимки состояния и реплики чтения в том же кластере. Шифрование и дешифрование осуществляются незаметно для пользователя. Дополнительную информацию об использовании KMS с Amazon Neptune см. в руководстве пользователя Amazon Neptune.

Можно ли зашифровать существующую незашифрованную базу данных?

На данный момент шифрование существующего незашифрованного инстанса Amazon Neptune не поддерживается. Чтобы использовать шифрование Amazon Neptune для существующей незашифрованной базы данных, создайте новый инстанс БД с включенным шифрованием и перенесите данные в него.

Как получить доступ к базе данных Amazon Neptune?

Доступ к базам данных Amazon Neptune должен осуществляться через порт HTTPS, указанный при создании базы данных в VPC. Эта мера предосторожности обеспечивает дополнительный уровень защиты данных. Пошаговую инструкцию о подключении к базе данных Amazon Neptune см. в руководстве пользователя Amazon Neptune.

Подробнее о ценах

Просмотрите информацию о ценах на Amazon Neptune.

Подробнее 
Зарегистрировать бесплатный аккаунт

Получите мгновенный доступ к уровню бесплатного пользования AWS. 

Регистрация 
Начать разработку в консоли

Начните разработку с помощью Amazon Neptune в Консоли управления AWS.

Войти