💬

EC2上のDifyからBedrockを利用するためのセットアップ

に公開

はじめに

本記事では、DifyをEC2上に構築し、AWS Bedrockのモデルを使えるようにするまでのセットアップ方法を紹介します。
セットアップ後のDifyの活用方法については、他に多くの記事があるため、本記事の範囲外とします。

背景

私のユースケースとしては、 定期的なデータ生成とその保存の自動化 でした。
データ生成の部分において、社内データを取り扱いたかったため、プライベートな環境で完結させられるAWS EC2(Dify)、AWS Bedrock(生成AIサービス)を採用しました。

前提条件

✅ Bedrockの使いたいモデルが有効化済みであること

Amazon Bedrock > Bedrock configurations > モデルアクセス から有効化されているモデルがどれか確認できます。

もし利用したいモデルが有効化されていなかったらモデルを有効化する所から始めて下さい。

赤枠で囲まれたモデルが有効化されています(画像は全体の一部部分)

✅ Bedrockにアクセス可能なIAM RoleをEC2に付与済みであること

今回は以下のポリシーを含むRoleをEC2に付与しました。

{
  "Statement": [
      {
          "Action": [
              "bedrock:InvokeModel*"
          ],
          "Effect": "Allow",
          "Resource": "*"
      }
  ],
  "Version": "2012-10-17"
}

構成図

以下は、私のユースケース全体の構成図です。
本記事は赤枠で囲まれた部分のセットアップにフォーカスしています。

Difyのセットアップ

Difyの公式ドキュメントの Docker Compose デプロイ に沿って立ち上げます。
私のケースではプライベートサブネットにEC2を起動していたため、別途IP制限をかけた外向きALBを作成し、EC2と紐付けることでDifyにアクセスできるようにしました。

DifyでのBedrockプロバイダ設定

AWS RegionとAvailable Model Nameを指定します。
(今回は、EC2にBedrockへのアクセスポリシーを持たせているので、Access KeyやSecret Access Key、Bedrock Endpoint URLの入力は不要です。)

(オプション)システムモデル設定

やりたいことに応じて、システムモデルを設定します。

まとめ

企業内LLM活用の第一歩としてご参考になれば幸いです。

Discussion