😶‍🌫️

AWS BedrockでRAG×streamlitを構築してみた[環境構築編]

に公開

社内ナレッジ検索AIをAWS Bedrockで構築する【環境構築編】

社内ドキュメントやナレッジを横断検索できるAIチャットボットを作ってみたい!
本記事では、そのための基盤となる AWS Bedrock + Docker 環境の構築手順 を、初学者向けにわかりやすくまとめています。

💡 対象読者

  • AWS や Docker にこれから触れる方
  • 生成AIを使った業務効率化に興味がある方
  • Bedrock を試してみたいエンジニア

📚 目次

  1. ✅【本記事】環境構築編
  2. 🚀実装編(チャットボット構築) ※近日公開予定

✅ 環境構築編

このパートでは以下のステップで進めていきます。

  • プロジェクトディレクトリの作成
  • 必要ファイルの準備(Dockerfile, docker-compose.yml, .env など)
  • AWS CLI のセットアップ
  • Docker環境のビルド・起動
  • Bedrock モデルの有効化とアクセス設定

1. プロジェクトディレクトリの作成

まずは開発用のディレクトリを作成して、作業ディレクトリに移動します。

mkdir aws-bedrock-rag
cd aws-bedrock-rag

2. 必要ファイルの準備

✅ Dockerfile

FROM python:3.11-slim

WORKDIR /app

COPY requirements.txt ./
RUN apt-get update && apt-get install -y bash && pip install --no-cache-dir -r requirements.txt

COPY . .

📝 ポイント解説

  • python:3.11-slim は軽量な公式Pythonイメージです。
  • 作業ディレクトリを /app に設定。
  • 必要なライブラリは requirements.txt からインストールします。

✅ docker-compose.yml

services:
  bedrock:
    build: .
    environment:
      - AWS_PROFILE=${AWS_PROFILE}
      - AWS_REGION=${AWS_REGION}
    volumes:
      - ~/.aws:/root/.aws:ro
      - ./:/app
    command: tail -f /dev/null
    ports:
      - "8503:8503"

💡 補足

  • ~/.aws:/root/.aws:ro で、ホストのAWS認証情報を読み取り専用でコンテナに共有しています。
  • command: tail -f /dev/null によって、コンテナを何も処理しない状態で起動し続けます(後から入るため)。
  • AWS_REGIONAWS_PROFILE.env ファイルで管理できるようにしておくと便利です。

✅ requirements.txt

boto3
awscli
numpy
faiss-cpu
streamlit

🛠️ 注意点

  • faiss-cpu はベクトル検索用ライブラリです。
  • streaml などの誤記がないよう注意!(正しくは streamlit

3. AWS CLI のセットアップ

Bedrockを利用するには、AWS CLI のセットアップが必要です。

pip install awscli
aws configure

aws configure 実行時には以下の情報を入力します:

項目 説明
AWS Access Key ID IAM で作成したアクセスキー
AWS Secret Access Key 上記のシークレットキー
Default region name 例:us-east-1 または ap-northeast-1
Default output format json(そのままでOK)

👉 詳細は AWS CLIセットアップチュートリアル を参考にしてください。


4. .env ファイルの作成(任意)

プロファイルやリージョンを切り替えたい場合は .env ファイルを作っておくと便利です。

AWS_PROFILE=default
AWS_REGION=us-east-1

5. Docker イメージのビルド

以下のコマンドでDockerイメージをビルドします。

docker compose build

6. コンテナの起動

docker compose up -d

-d はバックグラウンドでの起動オプションです。


7. コンテナに入って作業

以下のコマンドでコンテナに接続できます(コンテナ名は実際の名前に合わせてください)。

docker exec -it aws-bedrock-rag-bedrock-1 bash

8. 注意点(Bedrock 利用前に必読)

  • AWS Bedrock のモデル利用には、事前にアクセス申請が必要な場合があります。
    → AWSコンソールの Bedrock モデルアクセス設定ページ で申請しましょう。
  • モデルIDやリージョンなどは Bedrock コンソールで必ず確認してください。
  • モデルによっては利用可能なリージョンが異なります。

🔜 次回:【実装編】へ

次回はこの環境をベースにして、社内ナレッジ検索チャットボットを実装していきます!「実装編」では、実際に社内ナレッジ検索チャットボットを構築する手順を詳しく解説予定です。記事が完成し次第、こちらにリンクを追加しますので、ぜひフォローしてお待ちください!

  • ドキュメントのアップロード
  • 埋め込みの作成と保存
  • Bedrock API 経由でチャット対応 などなど!

📘 まとめと学び

  • Dockerを使うことで再現性の高い開発環境を構築できます。
  • AWS CLI と ~/.aws の連携でBedrockへの接続が可能に。
  • .env ファイルで環境変数を管理すると切り替えが楽になります。

🚀 目指せ「つよつよデータエンジニア」

この連載では、「データエンジニア × 生成AI × パブリッククラウド」に強い人材になるための成長ログとして発信していきます。
もしこの記事が参考になったら、フォロー & いいね 👍 いただけると励みになります!

次回もお楽しみに!

Discussion