Bedrock Studioがプレビューリリース！早速試しました！！（構築方法と機能の紹介）

Bedrockのリリースラッシュが止まりません。

プレビューだった機能がGAになり、そろそろ落ち着くかと思ったら、**Bedrock Studioが爆誕！**

構築方法は難しくないですが、ところどころつまりどころはあるような気がしました。
というか、先に試してくれている人がいます！（いつもはやい）

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

途中、IAMロールを作るところが一番めんどくさいので、CloudFormationテンプレート作っておきました。
どうぞご利用ください。（URLは説明中にあります）

:::note
構築手順が長くなったので、折りたたみ表示にしています。
必要なところを開いて確認してください。
:::

## 前提条件

AWS Organization配下 **ではない** 単一のAWSアカウントを使用します。（IAM Identity Center周りが色々違いそうなので）

## IAM Identity Centerを構築してユーザー作成

<details><summary>手順</summary>

IAM Identity Centerの画面を表示し、`有効にする`をクリック。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/90f354a3-c61e-548c-75e7-450242da81b5.png)

作成されました。（ド新規アカウントの場合は、なにかダイアログが出るかもしれません）

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/9c9b8f3a-6469-80d7-5204-6a44a24c4fc3.png)

ユーザーメニューから、ユーザーを作成します。（`bedrocker`というユーザーを作成しました。）

:::note
パスワードのオプションは`このユーザーと共有できるワンタイムパスワードを生成します。`を選ぶと、初期パスワードを画面から入手できるので、このオプションをおすすめします。
:::

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/44c1254e-51c4-64c0-fcf2-40b19e97d34f.png)

グループメニューから、グループを作成します。（`bedrocker`というグループを作成しました。）

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/728d4ebb-a194-c0f8-a1cd-52d4dd2b9f66.png)

IAM Identity Centerの設定は以上です。

</details>

## IAM（ロール・ポリシー）を作成

<details><summary>手順</summary>

サービスロールと、プロビジョニングロール、パーミッションバウンダリーを作成します。

ちょっとめんどくさいですw

なので **CloudFormationテンプレート作っておきました！**

[こちら](https://raw.githubusercontent.com/moritalous/bedrock-studio-role/main/template.yaml)

これをデプロイしましょう。

まずは、`template.yaml`をダウンロードします。

CloudFormationの画面を表示し、`スタックの作成`をクリック。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/40d89f88-e312-5dd5-b6a5-548571f89d81.png)

`template.yaml`をアップロードして`次へ`をクリック。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ad917d10-414c-ea91-921f-b4cfb0a04325.png)

スタック名を入力して`次へ`をクリック。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ed044175-0e85-6496-f2c0-7e9594824ed7.png)

スタックオプションの設定画面は何も変更せず`次へ`をクリック。

確認して作成画面は、一番下の`AWS CloudFormation によって IAM リソースがカスタム名で作成される場合があることを承認します。`にチェックを入れて、`送信`をクリック。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/a347bdad-e4f4-7d92-abc5-c5e03bd6462f.png)

デプロイに成功すると、IAMロールが2つ、IAMポリシーが1つ作成されます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/746ad49d-d727-c49f-a5f2-77459f406310.png)

:::note
作成したロールの内容は公式ドキュメントを参照してください。

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

</details>

## Bedrock Studioを作成

<details><summary>手順</summary>

いよいよBedrock Studioを作成します。
Bedrockの画面を表示します。

:::note
事前にBedrockのモデルアクセスからモデルを有効化しておいてください。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/07ddea1c-725b-669a-25fc-faab947eb44f.png)
:::

左のメニューから、~~Bedrock Studio~~ Bluesky ワークスペースメニューをクリックし、`ワークスペースを作成`をクリック。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/fe45ce96-74cf-a5ea-e19d-02b21d169364.png)

:::note
Bedrock StudioのコードネームがBluesky？？
:::

~~Bedrock Studioのワークスペース~~ Amazon Bluesky ワークスペースを作成します。

1. 名前を入力
1. サービスロールにCloudFormationで作成した`BedrockStudioSearviceRole`が含まれるロールを選択
1. Provisioning roleにCloudFormationで作成した`BedrockStudioProvisioningRole`が含まれるロールを選択

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/87aa42c4-b8d8-f3b8-4d5e-9933645423b6.png)

オプションですが、デフォルトモデルを選択し、`作成`をクリック。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ed69da9e-726f-3e63-442b-bb9b9662c6de.png)

Bedrock Studio workspaceが作成されました。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/c231a47f-76cc-eaef-079e-fadd50f8e319.png)

表示されるURLにアクセスしたいところですがぐっとこらえて、Bedrock Studioにユーザーを追加します。

作成したワークスペース（`BedrockStudio`）をクリック。
`Overview`タブの、`Workspace ID`は後で使用するのでコピーしておきます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/fa13b1c0-8970-a7e0-b349-cf52ecd8edcf.png)

`User management`タブをクリックし、`ユーザーまたはグループを追加`をクリック。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/935966c2-782d-0816-b79f-db04de6b2b5a.png)

モーダル上でユーザー（グループ）を検索して追加します。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/700300c5-0f6a-7c92-72c5-3b96c4732b5b.png)

ユーザー（グループ）が追加されました。

</details>

## OpenSearch Serverlessの暗号キーを作成

<details><summary>手順</summary>

OpenSearchの画面を表示し、[サーバーレス]->[セキュリティ]->[暗号化ポリシー]をクリック。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/94288556-c414-c4a6-d1f3-8b2fe8ad65b3.png)

`暗号化ポリシーを作成`をクリック

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/767028c0-b60a-a8cc-e36b-893bd2b5780c.png)

暗号化ポリシー名とプレフィックスを入力します。
プレフィックスは、`br-studio-` + 「Workspace IDの接頭辞`dzd_`を除いた先頭7文字」 + `*`です。

例：Workspace IDが`dzd_5bpc00488kc6jr`の場合：br-studio-5bpc004*
入力したら`作成`をクリックします。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/adb56b3b-b173-e39e-5b6a-8b4975b4dfd6.png)

</details>

## Bedrock Studioにアクセス

~~Bedrock Studio~~ Bluesky ワークスペースの欄にある、URLをクリックし、Bedrock Studioのアクセスします。

やばい、かっこいい

`Sign in with SSO`をクリックしてサインインします。初回アクセスの際はパスワード変更など求められます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/2a324011-f991-9748-9bbc-7fcc85579d52.png)

サインインすると、Bedrock Studioの画面が表示されます！

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/0eb0466a-cfc3-5902-ba07-4351e90ea392.png)


## Bedrock Studioの機能紹介

### Playground

Playgroundでは素のモデルとやり取りができます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/00e73a53-3010-6741-9864-2ab521ed0e4a.png)

モデルの切り替えも可能です。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/90595e13-624e-5c80-19b7-dd24fcc70bbf.png)

### プロジェクト

画面上部の`Build`をクリックすると、プロジェクトが作成されます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/110db9b9-cd61-d606-fd7c-025c2a443ab9.png)

プロジェクトの中にアプリとコンポーネントがある構成のようです。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/f0f85ee1-4479-24fd-3e85-99d898f5fed5.png)

### コンポーネント

コンポーネントは`Knowledge Base`、`Guardrail`、`Function`から選択できます。

試しに`Knowledge Base`を作ってみます。設定は右側のパネルで全てです。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/6f9e1173-e5f8-94af-2e7f-f4c5224473ad.png)


:::note
裏側ではCloudFormationが頑張ってくれてます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/9b192662-9180-559a-7465-fc39989c1993.png)
:::

Knowledge bases for Amazon Bedrockが作成されます。

:::note
複数Knowledge Baseコンポーネントを作成すると、OpenSearch Serverlessコレクションも複数作成されます。料金には注意したいですね。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/78b14177-404a-0e26-4595-3803caecba01.png)
:::


他には`Guardrail`と`Function`があります。

* Guardrail

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/df471f62-e5c3-4771-4929-c51952670672.png)

* Function

Lambdaを指定するかと思いきや、外部APIを指定するようです。
ただ、裏側では **「外部APIを呼び出すLambda」** がAgents for Amazon Bedrockとともにプロビジョニングされます。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ef727ebe-9386-c903-e452-e68e9541a3d1.png)

### アプリ

コンポーネントなどを組み合わせて、アプリを作成します。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/3c833368-078e-9ef2-5776-558bb5e0d977.png)

* システムプロンプトと例

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/38ccbf26-6e3d-5d1c-b3a7-348fdf75a108.png)

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/0d3ebc3a-da75-4ab1-ce6f-a90779b92de4.png)

* パラメーター

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/60a8d7ce-674a-606b-e0c6-572c824a096a.png)

* データ

    ナレッジベースを選べるだけじゃなくて、ファイルをこの場でアップロードして質問ができるようです。[Chat with your document data](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-erag.html)のような印象です
    
    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/44dbed83-aa8e-8b2b-7318-5b9a49b9ffad.png)

* ガードレールとファンクション

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/4cdb2b46-9efe-59cc-e928-bf83b1b1cf97.png)


* UI

    画面上のメッセージや、クイックスタートプロンプトを指定できます。

    ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/7c1021da-1918-18f7-5977-2c219836b116.png)


## 感想

個々の機能は見たことがある印象ですが、組み合わせてUIが提供されているというのが大きな特徴ですね。
プロジェクト単位で共有できるようなので、アプリを作って社内で共有みたいなことを想定していると思われます。

---

最後に宣伝

Bedrockの書籍を出版することになりました。興味を持っていただいた方は、どうぞお手に取ってください。

[Amazon Bedrock 生成AIアプリ開発入門 [AWS深掘りガイド]](https://www.sbcr.jp/product/4815626440/)

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/8c912dbc-0d13-4d75-2993-53c4a589149a.png)