Amazon Bedrock Studioを使った開発の導入


Amazon Bedrock Studioは、AWSが提供する生成AIの統合開発環境であり、さまざまな生成AIモデルを簡単に活用できるプラットフォームです。本記事では、Bedrock Studioの概要から基本的な使い方、そして開発における活用のポイントを解説します。

## 1. Amazon Bedrock Studioとは

Amazon Bedrock Studioは、AWSが提供する生成AI（Generative AI）を活用した開発を支援するツール群を統合した環境です。以下のような特徴があります：

- **複数の生成AIモデルにアクセス可能**: AWSパートナーのモデル（Anthropic, Stability AIなど）に加え、独自のモデルも利用可能。
- **シンプルなAPI設計**: モデルの選定、調整（ファインチューニング）、デプロイまでをシンプルに実行。
- **統合環境**: 他のAWSサービスと連携して、データ管理やモデル評価を効率化。
- **ガバナンス**: ユーザー管理や権限管理をAWS OrganizationsやIAM Identity Centerを用いて管理することで統一的な管理が可能。

## 2. 開発の導入手順

### 2.1 必要な準備
1. **AWSアカウントの準備**  
   Bedrock StudioはAWSの一部として提供されているため、AWSアカウントが必要です。  

2. **Bedrock Studioのセットアップ**
公式のセットアップ用ガイドには、以下の4つのステップで紹介されています。

    - Step 1: Set up AWS IAM Identity Center for Amazon Bedrock Studio
    
    - Step 2: Create permissions boundary, service role, and provisioning role
    
    - Step 3: Create an Amazon Bedrock Studio workspace
    
    - Step 4: Add workspace members

Step 1でIAM Identity Centerを使用することになるのですが、組織インスタンスが必要です。企業で使用しているAWSアカウントの場合は、運用方法によっては組織インスタンスを作成するためにAWS Organizationsの管理権限が必要になる場合があるため、AWSアカウントの運用方法についても確認しましょう。

https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/organization-instances-identity-center.html

https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/get-set-up-for-idc.html

https://docs.aws.amazon.com/bedrock/latest/userguide/administer-create-workspace.html

Step 2ではIAMロールをマネージメントコンソール上の操作で構築する方法が紹介されています。このStepは少し手間がかかるので、2.2.1または、2.2.2で記載した方法を使用することをお勧めします。

3 . **サービスの有効化**  
   Bedrock Studioは一部のリージョンでのみ利用可能です。利用可能なリージョンを確認し、リージョン設定を合わせてください。12/2時点で東京リージョンでも利用可能です。

### 2.2 IAMロール関連のセットアップ
#### 2.2.1 **bootstrapperの活用**
AWS公式のExampleからbootstrapperが提供されています。

https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/python/example_code/bedrock/scenarios/bedrock_studio_bootstrapper.py

#### 2.2.2 **CloudFormationテンプレートの活用**
こちらは有志の方が作成したCloudFormationテンプレートです。AWSアカウントIDなどの部分も置き換えるように書き換わっているので、そのまま編集不要で実行できる形に整備してくださっています(12/2時点)。

https://raw.githubusercontent.com/moritalous/bedrock-studio-role/main/template.yaml

### 2.2 基本的な利用フロー

1. **モデル選択**  
   Bedrock Studio内で提供される複数の生成AIモデル（例: Claude、Amazon Titanなど）からプロジェクトに適したものを選択します。東京リージョンでもClaude 3.5 Sonnet v1が使えるためひとまずはこのモデルが候補になると思います。AWS re:Inventでの発表次第ではモデルの種類が変更になるため要チェックしましょう。

2. **プレイグラウドとアプリ作成**  
   Bedrock Studioはプレイグラウドによりプロンプトエンジニアリングをサポートする機能を提供します。モデルに適切な指示を与えるプロンプトを設計し、効果的なアウトプットを得られるように工夫します。アプリ作成によりガードレールやRAG、関数呼び出しを専門的な知識を必要とせずに効率的に作成できます。

3. **デプロイと統合**  
   ファンクション機能を利用してアプリケーションにモデルを統合します。Lambdaを使用して構築することが推奨されます。

## 3. Amazon Bedrock Studioを使った開発のポイント

1. **プロンプト最適化**  
   モデルの性能を最大限引き出すためには、プロンプトの工夫が重要です。小さな変更でも結果が大きく変わるため、試行錯誤が必要です。

2. **コスト管理**  
   モデル利用に応じて課金されるため、リクエスト数や利用モデルのコストを確認しながら運用しましょう。AWS Cost ExplorerやBillingを活用してコストを把握します。

3. **ガバナンスとコンプライアンス**  
   AIモデルの利用ではデータの取り扱いが重要です。特にプライバシーや秘密情報を扱う場合、ガバナンスを効かせてコンプライアンスを維持する必要があります。

## 4. まとめ

Amazon Bedrock Studioは、生成AIの導入を劇的に簡単にするツールです。モデル選択、プレイグラウド、アプリ作成の一貫したプロセスを提供します。特に、AIの専門知識がなくても利用可能な点が大きな魅力です。

AWSの管理機能と統合されていることから生成AIを利用する際のガバナンスも含めて統一管理できる点が優れているポイントです。個人利用であればまだそれほど利用するケースがないかもしれませんが、今度のアップデートによっては多くのユーザーが使用するツールになりえます。

## 5. 参考リンク

https://docs.aws.amazon.com/bedrock/latest/userguide/administer-create-workspace.html

https://qiita.com/moritalous/items/c1839948c836f5a8c853

https://dev.classmethod.jp/articles/bedrock-studio-preview/

https://zenn.dev/pupumaru/articles/740edd90dfbbbc