AWS Amplify を使用した AI 機能を備えたサーバーレス Web アプリケーションの構築
この記事は、AWS Amplify と AI 機能を使用してサーバーレス Web アプリケーションを構築するための専門的なガイドです。.

AWS Amplify を使用した AI 機能を備えたサーバーレス Web アプリケーションの構築

この記事では、AWS Amplify をはじめとする AWS サービスを活用し、生成 AI 機能を活用したサーバーレス ウェブアプリケーションの構築方法を説明します。セキュリティ、コスト最適化、データセンターのロケーション選定についても解説します。.
0 株式
0
0
0
0

 

一般的なアーキテクチャ

このガイドでは、Web アプリケーションを構築するための推奨アーキテクチャを示します。 サーバーレス これは*生成AI*機能を活用したものです。フロントエンドとCI/CDにAWS Amplifyを、バックエンドにAWSサーバーレスサービスを組み合わせることで、スケーラブルで安全かつ保守性の高いソリューションを構築することを目指しています。.

  • フロントエンド: ReactまたはNext.jsがホストされている AWS Amplify ホスティング + CDN (CloudFront)。.
  • 認証: Amazon Cognito (サインアップ/サインイン + フェデレーション)。.
  • API: リクエストを Lambda にルーティングする API Gateway (REST/HTTP) または AppSync (GraphQL)。.
  • 生成ロジック: 生成モデルにリクエストを送信する Lambda (Node/Python) — モデルはマネージド (OpenAI/Hugging Face/Bedrock) にすることも、Triton/TorchServe を使用して GPU サーバー上でセルフホストすることもできます。.
  • ストレージ: ファイルの場合は 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との連携機能を使用し、パスワードルール、MFA、メール認証を有効にしてください。.

amplify add auth
# choose default or manual configuration
amplify push

 

3. サーバーレスAPI(RESTまたはGraphQL)を作成する

Amplify を使用して API を追加します。Lambda を使用した REST または AppSync + DynamoDB を使用した GraphQL を選択できます。.

amplify add api
# choose REST and Lambda function template
amplify push

またはGraphQLの場合:

amplify add api
# choose GraphQL + DynamoDB
amplify push

 

4. 生成AIモデルと対話するLambda関数の作成

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) };
};
[p class=”wp-block-paragraph”]キーを暗号化するには、 AWS シークレットマネージャー または、暗号化された環境変数を使用します。Lambda関数のIAMロールを、指定されたシークレットへの読み取り専用アクセスに制限します。[/p]

モデルを GPU サーバー上でホストする場合、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 を使用すると、Git リポジトリから CI/CD を起動できます。特定のブランチへのプッシュごとに、自動ビルドとデプロイメントがトリガーされます。.

amplify hosting add
amplify publish

 

セキュリティ、鍵管理、IAM ポリシー

 

秘密管理

から AWS シークレットマネージャー APIキーとシークレットの保存に使用します。LambdaのIAMロールには、指定されたシークレットへの読み取りアクセスのみを含める必要があります。.

 

サンプルIAMポリシー

Lambda が特定のシークレットを読み取ることを許可する最小限のポリシーの例:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "secretsmanager:GetSecretValue",
      "Resource": "arn:aws:secretsmanager:region:acct-id:secret:myOpenAIKey"
    }
  ]
}

 

攻撃からの保護とコンテンツの安全性

アプリケーションを保護するには:

  • アクティベーション AWS ワフ 悪意のあるリクエストをブロックします。.
  • の使用 AWSシールド (デフォルトでは標準で、Shield Advanced よりも高い保護を提供します)。.
  • API レベルでは、API Gateway のレート制限と使用量プランを活用します。.
  • コンテンツのモデレーション 生産的な出力を得るには、モデレーション モデル (OpenAI/HuggingFace) を使用して応答を確認し、フィルター処理します。.

 

データセンターの場所を選択し、レイテンシとコンプライアンスを比較する

ユーザーの分布と法的要件に基づいて適切な地域を選択することが重要です。一般的なヒント:

  • 米国東部1: 北米への高速通信と基本サービスの低コスト。.
  • eu-west-1: プライバシー法が厳しいヨーロッパに適しています。.
  • ap-南東-1 / ap-北東-1: アジア地域(その大陸のユーザー向け).

分散型ユーザーの場合は、CDN (CloudFront) を使用して、モデルを複数のリージョンまたはエッジ推論に分散します。.

必要であれば 非常に低いレイテンシー あるいは、データを完全に制御できる場合は、85 か所以上の場所にある同社の GPU サーバーでモデルをホストできます。これにより、レイテンシの短縮、データ制御、ハードウェアによる DDoS 対策機能などのメリットが得られます。.

 

モデルホスティング - クラウド GPU とマネージド API (長所と短所)

GPU 上のマネージド サービスとセルフホスト サービスの全体的な比較:

  • マネージド (OpenAI/Bedrock/Hugging Face):
    • 利点: メンテナンス不要、モデル更新が簡単、アクセスが高速。.
    • デメリット: リクエストごとのコスト、プライバシーに関する懸念。.
  • GPU 上でセルフホスト:
    • 利点: 固定サーバーコスト、完全な制御、専用設定、レンダリングと AI 用のグラフィック サーバーの使用。.
    • デメリット: 管理と監視、手動によるスケーラビリティの必要性。.

おすすめ: PoC にはマネージドを使用し、高ボリュームと低レイテンシのニーズに対応するには GPU サーバーに移行します。.

 

パフォーマンスとコストの最適化

  • ストレッチ: 機密性のない出力を CloudFront または Redis/ElastiCache にキャッシュします。.
  • モデル選択: 実際のニーズに合わせて、可能な限り小さいモデル(蒸留モデルまたは量子化モデル)を使用します。.
  • ラムダ制限: Lambda には時間/CPU の制限があるため、長時間の推論には ECS/EKS または GPU サーバーを使用します。.
  • 監視: ログとメトリクスには CloudWatch、トレースには X-Ray。.
  • コスト削減: 長期推論には、リザーブドインスタンスまたは専用 GPU サーバーを予約または使用します。.

 

GPU 上の Triton への Nginx リバース プロキシの設定例

モデルが GPU サーバー上で実行される場合は、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 にセッションコンテキストが保存されるインテリジェント チャットボット。.
  • オートコンプリートとリファクタリングの提案を備えた開発者向けのスマート コーディング ツール。.
  • GPU サーバーを使用して画像とビデオを処理する AI ハイブリッド レンダリング ツール。.

 

当社(85以上の拠点)での生活に慣れるための実用的なヒント

レイテンシを削減し、グローバルレベルでユーザー エクスペリエンスを最適化するための実用的なヒント:

  • ヨーロッパ、アジア、またはラテンアメリカのユーザーの場合は、近くの場所を使用して p99 の遅延を短縮してください。.
  • 取引とゲームには、DDoS 対策と BGP Anycast を備えた専用の取引 VPS とゲーム VPS を使用して、ping とパケット損失を削減します。.
  • GPU クラウドを使用して大規模モデルのトレーニングと推論を行い、コストとレイテンシを最適化します。.
  • ネットワークと CDN を活用してコンテンツを配信し、読み込み時間を短縮します。.

 

発売前の簡単な概要とチェックリスト

  • Amplify Hosting と CI がアクティブです。.
  • Cognito は認証用に設定されており、必要に応じて MFA が有効になります。.
  • 最小限のアクセスと Secrets Manager が設定された Lambda を保護します。.
  • WAF とレート制限が API に適用されます。.
  • 使用量と待ち時間を削減するには、CDN とキャッシュを有効にする必要があります。.
  • 適切な場所は、対象ユーザーと法的ニーズに基づいて選択されます。.
  • 監視およびアラート プログラム (CloudWatch + Slack/メール) が設定されています。.
  • 一般公開前に負荷テストと侵入テストを実行する必要があります。.

 

技術サポートとコンサルティングのオプション

リージョン、GPU、ネットワークの最適な組み合わせをお選びいただけるよう、85以上の拠点にあるホスティングプランとグラフィックサーバーをご利用いただけます。技術チームがモデルの移行やCI/CDの設定に関するガイダンスを提供いたします。.

 

よくある質問

あなたも気に入るかもしれない
چگونه یک سرور ایمیل SMTP روی سرور ابری هتزنر فعال کنیم؟

چگونه یک سرور ایمیل SMTP روی سرور ابری هتزنر فعال کنیم؟

این مقاله به شما یاد می‌دهد که چگونه یک سرور ایمیل SMTP را روی سرور ابری هتزنر راه‌اندازی کنید و از اسپم شدن ایمیل‌ها جلوگیری کنید. با تنظیمات صحیح DNS و احراز هویت، ایمیل‌های امن و قابل اعتمادی ارسال کنید.
CloudflareユニバーサルSSLの有効化と無効化 - サーバー管理者と開発者のための実用的かつ安全なガイド

CloudflareユニバーサルSSLの有効化と無効化 - サーバー管理者と開発者のための実用的かつ安全なガイド

この記事では、CloudflareでUniversal SSLを有効化および無効化する方法を詳細かつ技術的に解説します。このガイドは、このサービスを最大限に活用してサイトを安全に保護するのに役立ちます。有効化と無効化の方法を学び、安全な設定について理解を深めましょう。.
クラウド インフラストラクチャにおける DigitalOcean NFS と AWS EFS、GCP Filestore の技術比較

クラウド インフラストラクチャにおける DigitalOcean NFS と AWS EFS、GCP Filestore の技術比較

この記事では、DigitalOcean NFS、AWS EFS、GCP Filestore の技術的および機能的な違いについて詳しく説明します。アーキテクチャの比較、セキュリティ、コスト、そして実例も紹介しており、クラウドインフラストラクチャに最適なオプションを選択できるようお手伝いします。.