Эффективность агента складывается из его общей производительности и сложности выполняемых им задач. Низкая задержка в сочетании с высокой масштабируемостью и надежностью позволяют развертывать человекоподобных агентов в масштабах всего предприятия, однако такие агенты могут решать сложные задачи высокой важности только тогда, когда у них есть доступ к внутренним данным и системам, которые обеспечивают контекст и позволяют предпринимать действия.
Это ставит перед предприятиями в регулируемых отраслях, таких как финансовые услуги или здравоохранение, определенную дилемму, если у них нет безопасного способа обеспечить такой доступ: они могут развертывать агентов для поверхностных вариантов использования с меньшей ценностью либо создавать и поддерживать собственные защищенные соединения для обеспечения более глубокого доступа.
Private Links решают эту дилемму, позволяя отправлять приватные запросы к конфиденциальным внутренним ресурсам через вашу облачную сеть. С помощью Private Links вы можете реализовать сложные сценарии использования для агентов на базе LiveKit — золотого стандарта в области низкой задержки, масштабируемости и надежности — без необходимости поддерживать публичные IP-адреса, правила входящего брандмауэра или VPN-инфраструктуру.
Как работают Private Links#
Private Links работают через полностью управляемый зашифрованный туннель между вашими агентами и вашей облачной сетью. Когда вы создаете Private Link, LiveKit развертывает шлюз в VPC под управлением LiveKit в том же облачном регионе, что и ваш ресурс, и подключает его к вашей VPC с помощью встроенных средств частного подключения облачного провайдера.
Когда ваш агент отправляет запрос, он подключается к сгенерированному имени хоста .link, которое разрешается только из среды развернутого агента. Этот трафик маршрутизируется через зашифрованный туннель WireGuard к шлюзу LiveKit, запущенному в том же облачном регионе, что и ваш ресурс. Затем запрос поступает в вашу VPC через AWS PrivateLink или Azure Private Link и достигает вашей службы через балансировщик нагрузки.
Эта схема является иллюстративной и показывает путь через AWS.
Ваши ресурсы никогда не подвергаются воздействию публичного интернета, и вам ничего не нужно обслуживать. Вы один раз одобряете соединение со своей стороны, а все остальное управляется LiveKit.
Private Links строго поддерживают TCP-соединения, защищенные с помощью TLS. Соединения должны согласовывать TLS до того, как будут запрошены данные приложения, включая такие протоколы, как PostgreSQL, которые используют стандартное рукопожатие TLS. Незащищенный трафик TCP и общий трафик UDP не поддерживаются.
Настройка Private Links#
Вы можете настроить Private Links с помощью LiveKit CLI или в панели управления LiveKit Dashboard. Более подробная документация доступна для AWS и Azure.
Перед началом убедитесь, что у вас есть:
- Проект LiveKit Cloud, настроенный в LiveKit CLI.
- Агент LiveKit, развернутый в целевом регионе LiveKit.
В AWS#
- Разместите сетевой балансировщик нагрузки (NLB) перед вашей службой с прослушивателем на порту, который нужен вашему агенту. Для служб конечных точек AWS PrivateLink требуется NLB.
Разместите сетевой балансировщик нагрузки (NLB) перед вашей службой с прослушивателем на порту, который нужен вашему агенту. Для служб конечных точек AWS PrivateLink требуется NLB.
- Создайте службу конечной точки VPC, указывающую на этот NLB, оставьте включенным требование подтверждения и скопируйте возвращенное ею имя службы.
Создайте службу конечной точке VPC, указывающую на этот NLB, оставьте включенным требование подтверждения и скопируйте возвращенное ею имя службы.
- Предоставьте LiveKit доступ к службе конечной точки, разрешив учетную запись principal arn:aws:iam::266092630715:root. Ограничение только этой учетной записью означает, что к вашей службе сможет обращаться только ожидаемое соединение LiveKit.
Предоставьте LiveKit доступ к службе конечной точки, разрешив учетную запись principal arn:aws:iam::266092630715:root. Ограничение только этой учетной записью означает, что к вашей службе сможет обращаться только ожидаемое соединение LiveKit.
- Создайте ссылку с помощью CLI, передав имя службы конечной точки. --region — это регион вашего агента LiveKit; регион AWS определяется автоматически на основе имени службы. Сохраните возвращенный идентификатор Private Link.
Создайте ссылку с помощью CLI, передав имя службы конечной точки. --region — это регион вашего агента LiveKit; регион AWS определяется автоматически на основе имени службы. Сохраните возвращенный идентификатор Private Link.
- Вернитесь в AWS и примите новое ожидающее подключение конечной точки от учетной записи 266092630715.
Вернитесь в AWS и примите новое ожидающее подключение конечной точки от учетной записи 266092630715.
В Azure#
- Скопируйте идентификатор ресурса (Resource ID) ресурса, к которому должен получить доступ ваш агент, а также регион Azure, в котором он находится.
Скопируйте идентификатор ресурса (Resource ID) ресурса, к которому должен получить доступ ваш агент, а также регион Azure, в котором он находится.
- Создайте ссылку с помощью CLI, указав как регион вашего агента LiveKit (--region), так и регион Azure (--cloud-region), в котором размещен ресурс. Параметр --port должен совпадать с прослушиваемым портом вашей службы. Сохраните возвращенный идентификатор Private Link.
Создайте ссылку с помощью CLI, указав как регион вашего агента LiveKit (--region), так и регион Azure (--cloud-region), в котором размещен ресурс. Параметр --port должен совпадать с прослушиваемым портом вашей службы. Сохраните возвращенный идентификатор Private Link.
- В Azure одобрите новое ожидающее подключение к частной конечной точке.
В Azure одобрите новое ожидающее подключение к частной конечной точке.
Для обоих облаков#
- Дождитесь, пока статус ссылки не изменится на исправный (healthy), проверив это в CLI или в панели управления в разделе Agents → Private links, где вы также найдете сгенерированное имя хоста .link.
Дождитесь, пока статус ссылки не изменится на исправный (healthy), проверив это в CLI или в панели управления в разделе Agents → Private links, где вы также найдете сгенерированное имя хоста .link.
- Проверьте подключение от развернутого агента в том же регионе LiveKit. Имя хоста .link не будет разрешаться с вашего ноутбука.
Проверьте подключение от развернутого агента в том же регионе LiveKit. Имя хоста .link не будет разрешаться с вашего ноутбука.
Дополнительные соображения#
- Стоимость Private Links составляет 50 долларов США за ссылку плюс 0,10 доллара США за ГБ пропускной способности, переданной в обоих направлениях.
- В настоящее время каждый проект ограничен 3 Private Links на регион. Обратитесь в службу поддержки LiveKit, если вам требуется больше.
- Private Links доступны в ограниченном числе регионов на сегодняшний день. Ваш агент LiveKit должен находиться в том же регионе LiveKit, что и ваша Private Link LiveKit, чтобы соединения работали. Доступные регионы LiveKit: eu-central и us-east.
LiveKit поддерживает подключение через Private Link к следующим регионам AWS и Azure на сегодняшний день. Если регион вашего облачного провайдера не указан в списке, обратитесь в службу поддержки LiveKit, чтобы запросить его доступность.
Начало работы#
Private Links доступны уже сегодня для агентов, развернутых в США и ЕС на LiveKit Cloud. Вы можете создать свою первую ссылку с помощью LiveKit CLI, как показано выше, или в панели управления LiveKit Dashboard в разделе Agents → Private links.
Для получения более подробных инструкций по настройке и устранению неполадок см. документацию по Private Links и руководства по настройке для AWS и Azure, а также делитесь своими отзывами в сообществе LiveKit Community.