-
Notifications
You must be signed in to change notification settings - Fork 9
chapter8_deployment
Genuを自身の環境にデプロイするには、2つの方法があります。
特徴:
- ソースコードから直接デプロイ
- 最新機能にすぐ追従可能
- 柔軟なカスタマイズが可能
- Knowledge Bases for Amazon Bedrockに対応
- ダッシュボード機能が利用可能
推奨する場合:
- 本番環境での利用
- カスタマイズが必要な場合
- 最新機能を使いたい場合
- ソースコードを確認・修正したい場合
必要な環境:
- Node.js(18.x以上)
- AWS CLI
- Git
- 適切なAWS権限
特徴:
- 数クリックで簡単に構築
- 設定項目が少ない
- バージョンが遅れている場合がある
推奨する場合:
- 検証目的
- すぐに試したい場合
- カスタマイズ不要の場合
注意: CloudFormationを使用する場合、CDKを使用した場合に比べて、構築するアプリケーションのバージョンが遅れている場合があります。業務で利用する環境として構築する際は、AWS CDKを使用することを推奨します。
適切な権限を持つIAMユーザーでAWSマネジメントコンソールにログインします。
必要な権限:
- Amazon Bedrock(モデルアクセス)
- Amazon S3
- Amazon CloudFront
- AWS Lambda
- Amazon Cognito
- Amazon CloudFormation
- IAM
- Amazon CloudWatch
- Bedrockコンソールを開く
- 「モデルアクセス」を選択
- 使用するモデルのアクセスをリクエスト
- 承認を待つ(数分〜数十分)
推奨モデル:
- Anthropic Claude 3.5 Sonnet v2
- Anthropic Claude 3.5 Haiku
- Amazon Nova Pro
- Amazon Nova Lite
- Amazon Nova Canvas(画像生成)
- Stability AI Stable Diffusion XL(画像生成)
- SageMakerコンソールを開く
-
Code Editorを起動
- 起動には数分かかります
-
ターミナルを開く
- Command + Shift + P(Windows: Ctrl + Shift + P)
- 「Terminal: Create New Terminal」を実行
必要なツールをインストール:
- Node.js 18.x以上
- AWS CLI
- Git
cd ~
git clone https://github.com/aws-samples/generative-ai-use-cases.git
cd generative-ai-use-casesnpm ci数分かかる場合があります。
packages/cdk/cdk.jsonファイルを開いて設定を変更します。
基本設定:
{
"app": "npx ts-node --prefer-ts-exts bin/generative-ai-use-cases.ts",
"context": {
"ragEnabled": false,
"ragKnowledgeBaseEnabled": false,
"modelIds": [
"anthropic.claude-3-5-sonnet-20241022-v2:0",
"anthropic.claude-3-5-haiku-20241022-v1:0",
"amazon.nova-pro-v1:0",
"amazon.nova-lite-v1:0"
],
"imageGenerationModelIds": [
"amazon.nova-canvas-v1:0"
]
}
}Amazon Kendraを使用する場合:
"ragEnabled": trueKnowledge Basesを使用する場合:
"ragKnowledgeBaseEnabled": true初回のみ実行が必要です。
cd ~/generative-ai-use-cases
npx -w packages/cdk cdk bootstrapBootstrap処理により、以下が作成されます:
- S3バケット(アセット管理用)
- IAMロール(デプロイ用)
- その他の必要なリソース
cd ~/generative-ai-use-cases
npm -w packages/cdk run -- cdk deploy --require-approval never --allデプロイには10-20分ほどかかります。
デプロイ完了時の出力例:
✅ GenerativeAiUseCasesStack
✨ Deployment time: 765.71s
Outputs:
GenerativeAiUseCasesStack.WebUrl = https://xxxx.cloudfront.net
GenerativeAiUseCasesStack.UserPoolId = ap-northeast-1_xxxx
GenerativeAiUseCasesStack.UserPoolClientId = xxxx
✨ Total time: 815.93sWebURLをメモしてください。これがアプリケーションのURLです。
後からURLを確認する場合:
aws cloudformation describe-stacks \
--stack-name GenerativeAiUseCasesStack \
--query 'Stacks[].Outputs[?OutputKey==`WebUrl`].OutputValue' \
--output textpackages/cdk/cdk.jsonを編集して、使用するモデルを変更できます。
"modelIds": [
"anthropic.claude-sonnet-4-20250514-v1:0",
"anthropic.claude-3-7-sonnet-20250219-v1:0",
"anthropic.claude-3-5-haiku-20241022-v1:0",
"amazon.nova-premier-v1:0",
"amazon.nova-pro-v1:0",
"amazon.nova-lite-v1:0",
"amazon.nova-micro-v1:0"
]"imageGenerationModelIds": [
"amazon.nova-canvas-v1:0",
"stability.stable-diffusion-xl-v1"
]"speechToSpeechModelIds": [
"amazon.nova-sonic-v1:0"
]注意:
- Bedrockで使用したいモデルを事前に有効化する必要があります
- モデルIDは正確に記述してください
- サポートされているモデルのリストは公式ドキュメントを参照
Claudeシリーズ:
- Claude Sonnet 4
- Claude 3.7 Sonnet
- Claude 3.5 Sonnet v2
- Claude 3.5 Haiku
Amazon Novaシリーズ:
- Nova Premier
- Nova Pro
- Nova Lite
- Nova Micro
- Nova Canvas(画像生成)
- Nova Reel(動画生成)
- Nova Sonic(音声)
その他:
- Stability AI Stable Diffusion XL(画像生成)
最新のサポート状況は公式GitHubリポジトリを参照してください。
ユーザーが最初に選択されるモデルを指定できます。
"defaultModel": "anthropic.claude-3-5-sonnet-20241022-v2:0"デフォルトは東京リージョン(ap-northeast-1)ですが、変更可能です。
cdk.jsonでの指定:
"region": "us-east-1"または、AWS CLIのデフォルトリージョンを使用:
export AWS_DEFAULT_REGION=us-east-1"knowledgeBaseStandby": falsefalseに設定することで、OpenSearch Serverlessの冗長化を無効にし、コストを削減できます。
注意:本番環境では冗長化を有効(true)にすることを推奨します。
コストを抑える場合は、より安価なモデルを選択:
- Claude 3.5 Haiku(高速・低価格)
- Amazon Nova Lite(軽量・低価格)
CloudFrontのデフォルトURLではなく、独自ドメインを使用できます。
手順:
- Route 53でドメインを管理
- ACMで証明書を取得
- cdk.jsonでドメイン設定を追加
- デプロイ
詳細は公式ドキュメントを参照してください。
最新バージョンにアップデートする手順:
cd ~/generative-ai-use-cases
git pull origin main
npm ci
npm -w packages/cdk run -- cdk deploy --require-approval never --allcdk.jsonを変更した後、デプロイを実行して変更を反映:
npm -w packages/cdk run -- cdk deploy --require-approval never --allLambda関数のログはCloudWatch Logsで確認できます。
aws logs tail /aws/lambda/GenerativeAiUseCasesStack-XXX --followCloudFrontのアクセスログを有効化することで、ユーザーのアクセスパターンを分析できます。
主要なメトリクスを監視:
- Lambda実行回数
- エラー率
- レスポンスタイム
- Cognito認証数
AWS Cost Explorerで以下をモニタリング:
- Bedrockの利用料金
- CloudFrontのデータ転送量
- Lambda実行コスト
- RAG(Kendra/OpenSearch)のコスト
エラー: Unable to resolve AWS account
解決策:
aws configure
# または
export AWS_PROFILE=your-profile-nameエラー: Model access denied
解決策: Bedrockコンソールでモデルアクセスを有効化
問題: ログイン後に真っ白な画面
解決策:
- ブラウザのキャッシュをクリア
- シークレットモードで試す
- CloudFrontのキャッシュを無効化
問題: RAG機能が動作しない
解決策:
- Kendra/Knowledge Basesが正しくデプロイされているか確認
- データソースが同期されているか確認
- IAM権限を確認
問題: 応答が遅い
解決策:
- より高速なモデルを使用(Haiku、Nova Lite)
- Lambdaのメモリを増やす
- リージョンをユーザーに近い場所に変更
使用を終了する場合、リソースを削除して課金を停止します。
cd ~/generative-ai-use-cases
npm -w packages/cdk run -- cdk destroy --all確認プロンプトでyを入力します。
以下のリソースが削除されたことを確認:
- CloudFormationスタック
- S3バケット(場合によっては手動削除が必要)
- CloudWatch Logs
- Cognito User Pool
削除後、数日間はCost Explorerでコストが発生していないことを確認してください。
第8章では、Genuのデプロイ方法、カスタマイズ、更新、トラブルシューティング、リソース削除について説明しました。これらの知識を活用することで、Genuを安全かつ効率的に運用できます。次章では、セキュリティとアクセス制御について詳しく解説します。