- Общая архитектура
- Практические шаги по созданию приложения (пошагово)
- 1. Подготовка среды разработки
- 2. Добавьте аутентификацию с помощью Cognito.
- 3. Создайте бессерверный API (REST или GraphQL).
- 4. Написание лямбда-функции, взаимодействующей с моделью генеративного ИИ.
- 5. Реализация потоковой передачи/в реальном времени (опционально)
- 6. Хостинг фронтенда с использованием Amplify Hosting и CI/CD.
- Политики безопасности, управления ключами и управления идентификацией и доступом (IAM).
- Выбор местоположения центра обработки данных и сравнение его по задержке и соответствию стандартам.
- Модель хостинга — облачные графические процессоры против управляемого API (преимущества и недостатки)
- Оптимизация производительности и затрат
- Заключительные советы по безопасности и конфиденциальности
- Примеры приложений и сценариев
- Практические советы по адаптации в нашей компании (более 85 офисов)
- Краткое описание и контрольный список перед запуском
- Варианты технической поддержки и консультаций
- Часто задаваемые вопросы
Общая архитектура
В этом руководстве представлена рекомендуемая архитектура для создания веб-приложения. Бессерверная архитектура который использует возможности *генеративного ИИ*. Цель состоит в том, чтобы объединить AWS Amplify для фронтенда и CI/CD с бессерверными сервисами AWS для бэкенда, чтобы создать масштабируемое, безопасное и поддерживаемое решение.
- Внешний интерфейс: React или Next.js, размещенные на AWS Amplify Hosting + CDN (CloudFront).
- Аутентификация: Amazon Cognito (регистрация/вход в систему + федерация).
- API: API Gateway (REST/HTTP) или AppSync (GraphQL), которые перенаправляют запросы в Lambda.
- Генеративная логика: Lambda (Node/Python), которая отправляет запрос генеративной модели — модель может быть управляемой (OpenAI/Hugging Face/Bedrock) или размещенной на собственном сервере с графическим процессором (GPU) с использованием Triton/TorchServe.
- Хранилище: S3 для файлов, DynamoDB или RDS для метаданных/сессий.
- Безопасность и сети: WAF, Shield Advanced, IAM с минимальными привилегиями, Secrets Manager.
- CDN и кэширование: CloudFront + Lambda@Edge или кэширование заголовков для снижения задержки и затрат.
Практические шаги по созданию приложения (пошагово)
1. Подготовка среды разработки
Установите необходимые базовые инструменты: Node.js, npm и AWS Amplify CLI. Затем клонируйте репозиторий проекта и установите зависимости.
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
npm install -g @aws-amplify/cli
git clone <repo>
cd <repo>
npm installНастройте AWS CLI и Amplify, а также инициализируйте проект Amplify:
aws configure
amplify configure
amplify init
2. Добавьте аутентификацию с помощью Cognito.
С помощью Amplify вы можете быстро добавить аутентификацию. Доступны настройки по умолчанию или ручная настройка. При необходимости используйте федерацию с Google/Facebook, а также включите правила для паролей, многофакторную аутентификацию и подтверждение электронной почты.
amplify add auth
# choose default or manual configuration
amplify push
3. Создайте бессерверный API (REST или GraphQL).
Добавьте API с помощью Amplify; вы можете выбрать REST с Lambda или GraphQL с AppSync + DynamoDB.
amplify add api
# choose REST and Lambda function template
amplify pushИли для GraphQL:
amplify add api
# choose GraphQL + DynamoDB
amplify push
4. Написание лямбда-функции, взаимодействующей с моделью генеративного ИИ.
Lambda выступает в качестве интерфейса между фронтендом и генеративной моделью. Если вы используете внешний сервис, например OpenAI, храните ключ API в безопасности и отправляйте запрос через Lambda.
const fetch = require('node-fetch');
exports.handler = async (event) => {
const prompt = JSON.parse(event.body).prompt;
const apiKey = process.env.OPENAI_API_KEY;
const res = await fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'gpt-4o-mini',
messages: [{ role: 'user', content: prompt }]
})
});
const data = await res.json();
return { statusCode: 200, body: JSON.stringify(data) };
};Если вы размещаете модель на своем сервере с графическим процессором, Lambda или бэкэнд-сервис отправят запрос на свою конечную точку:
const res = await fetch('https://gpu.example.com/inference', {
method: 'POST',
headers: { 'Authorization': `Bearer ${process.env.MODEL_TOKEN}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ inputs: prompt })
});
5. Реализация потоковой передачи/в реальном времени (опционально)
Для длинных ответов или потоковой передачи токенов используйте WebSocket или Server-Sent Events. В AWS вы можете использовать API Gateway WebSocket или подписки AppSync.
6. Хостинг фронтенда с использованием Amplify Hosting и CI/CD.
Amplify Hosting позволяет запускать CI/CD из репозитория Git; каждый push в определенную ветку запускает автоматическую сборку и развертывание.
amplify hosting add
amplify publish
Политики безопасности, управления ключами и управления идентификацией и доступом (IAM).
управление секретами
От AWS Secrets Manager Используется для хранения ключей и секретов API. Роль IAM для Lambda должна предоставлять только доступ на чтение к указанному секрету.
Примеры политик IAM
Пример минимальной политики, позволяющей Lambda считывать определенный секретный ключ:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:GetSecretValue",
"Resource": "arn:aws:secretsmanager:region:acct-id:secret:myOpenAIKey"
}
]
}
Защита от атак и безопасность контента
Для защиты приложения:
- Активация AWS WAF Для блокировки вредоносных запросов.
- Использование AWS Shield (Стандартная настройка по умолчанию, обеспечивающая более высокий уровень защиты, чем Shield Advanced).
- На уровне API воспользуйтесь возможностями ограничения скорости запросов и тарифными планами в API Gateway.
- Модерация контента Для получения продуктивных результатов: просматривайте и фильтруйте ответы с помощью моделей модерации (OpenAI/HuggingFace).
Выбор местоположения центра обработки данных и сравнение его по задержке и соответствию стандартам.
Выбор подходящего региона важен с учетом распределения пользователей и правовых требований. Общие рекомендации:
- us-east-1: Быстрая доставка в Северную Америку и более низкие цены на основные услуги.
- eu-west-1: Подходит для Европы с более строгими законами о защите персональных данных.
- ap-southeast-1 / ap-northeast-1: Азиатские регионы для пользователей на этом континенте.
Для распределенных пользователей используйте CDN (CloudFront) и распределите модель по нескольким регионам или используйте вывод данных на периферии сети.
При необходимости Очень низкая задержка Или, если у вас есть полный контроль над данными, вы можете разместить модель на сервере с графическими процессорами компании, расположенном более чем в 85 местах, что обеспечивает преимущества в виде снижения задержки, контроля над данными и аппаратной защиты от DDoS-атак.
Модель хостинга — облачные графические процессоры против управляемого API (преимущества и недостатки)
Общее сравнение управляемых и самостоятельно размещаемых сервисов на графических процессорах:
- Управляемые приложения (OpenAI/Bedrock/Hugging Face):
- Преимущества: Не требует обслуживания, легко обновляет модели, обеспечивает быстрый доступ.
- Недостатки: Стоимость за запрос, вопросы конфиденциальности.
- Самостоятельно размещено на графическом процессоре:
- Преимущества: Фиксированная стоимость сервера, полный контроль, выделенные настройки, использование наших графических серверов для рендеринга и ИИ.
- Недостатки: Необходимость управления и мониторинга, масштабируемость при ручном управлении.
Рекомендация: Используйте управляемый сервер для проверки концепции; для больших объемов данных и низкой задержки переходите на сервер с графическими процессорами.
Оптимизация производительности и затрат
- Растяжка: Кэшируйте неконфиденциальные выходные данные в CloudFront или Redis/ElastiCache.
- Выбор модели: Используйте максимально упрощенную модель, соответствующую реальным потребностям (упрощенную или квантованную).
- Лямбда-лимит: Для длительных вычислений используйте ECS/EKS или сервер с графическим процессором, поскольку у Lambda есть ограничения по времени/процессору.
- Мониторинг: CloudWatch для журналов и метрик, X-Ray для трассировки.
- Экономия средств: Для долговременного выполнения вычислений следует резервировать или использовать зарезервированные экземпляры или выделенные серверы с графическими процессорами.
Пример настройки обратного прокси Nginx для подключения к Triton на графическом процессоре.
Если модель работает на сервере с графическим процессором, можно настроить обратный прокси-сервер с помощью Nginx:
server {
listen 443 ssl;
server_name ai.example.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Заключительные советы по безопасности и конфиденциальности
Несколько практических советов по защите данных и соблюдению законодательства:
- Ведение конфиденциальной документации: Избегайте прямого хранения конфиденциальных запросов или шифруйте их.
- Сохранение данных: Ознакомьтесь с требованиями GDPR/PDPA; при необходимости укажите конкретные места хранения данных.
- Ввод/вывод: Используйте валидацию и санитаризацию, чтобы предотвратить мгновенное внедрение вредоносных программ и утечку данных.
Примеры приложений и сценариев
- Создание контента и текстовый редактор с функциями подсказок и суммирования.
- Интеллектуальный чат-бот, контекст сессии которого хранится в DynamoDB.
- Интеллектуальный инструмент для разработчиков, предоставляющий функции автозаполнения и подсказки по рефакторингу кода.
- Инструменты гибридного рендеринга на основе ИИ, использующие сервер с графическим процессором для обработки изображений и видео.
Практические советы по адаптации в нашей компании (более 85 офисов)
Практические советы по снижению задержки и оптимизации пользовательского опыта на глобальном уровне:
- Для пользователей из Европы, Азии или Латинской Америки используйте ближайшие местоположения, чтобы уменьшить задержку p99.
- Для торговли и игр используйте выделенный VPS для торговли и игр с защитой от DDoS-атак и протоколом BGP Anycast для уменьшения пинга и потери пакетов.
- Используйте облачные GPU-серверы для обучения и вывода результатов больших моделей, чтобы оптимизировать затраты и задержку.
- Воспользуйтесь преимуществами сети и CDN для распространения контента и сокращения времени загрузки.
Краткое описание и контрольный список перед запуском
- Хостинг Amplify и система непрерывной интеграции (CI) активны.
- В Cognito настроена аутентификация, и при необходимости включена многофакторная аутентификация (MFA).
- Защищенная Lambda-функция с минимальным доступом и настроенным менеджером секретов.
- К API применяются WAF и ограничение скорости запросов.
- Для снижения нагрузки и задержки следует включить CDN и кэширование.
- Выбор подходящего местоположения осуществляется исходя из целевых пользователей и правовых требований.
- Настроена программа мониторинга и оповещения (CloudWatch + Slack/Email).
- Перед публичным запуском необходимо провести испытания на нагрузку и проникновение.
Варианты технической поддержки и консультаций
Чтобы помочь вам выбрать оптимальное сочетание региона, графического процессора и сети, вы можете использовать тарифные планы хостинга и графические серверы в более чем 85 локациях. Техническая команда может предоставить рекомендации по миграции моделей и настройке CI/CD.









