0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【前編】AWS Bedrock × Claude Codeで作るAIチャットボット ハンズオン(環境構築編)

0
Last updated at Posted at 2026-07-11

目次

  1. はじめに
  2. 全体アーキテクチャの説明
  3. 事前準備
  4. 前編まとめ

1. はじめに

こんにちは。
アプリケーションエンジニア3年目のKokiです。

普段はAWSやAIにあまり馴染みのない部門で働いていますが、最近は社内で自主的にAWSやAIの知見を広める活動に取り組んでいます。

今回は、AWS BedrockClaude Code を使って、ゼロからAIチャットボットを作るハンズオン記事を書きました。対象読者は以下のような方を想定しています。

  • AWSを触ったことがない
  • VS Codeをインストールしたことがない、または使い始めたばかり
  • ChatGPTやClaudeなどの対話型AIは知っているが、開発に使ったことはない

「AIを使ったアプリを作ってみたいけど、何から手をつけていいかわからない」という方に向けて、企画からリリース直前までの一連の流れを、実際に手を動かしながら追体験できる内容にしています。

この記事は前編・後編の2本立てです。

  • 前編(本記事):全体アーキテクチャの説明 → 環境構築まで
  • 後編:企画 → 要件定義・設計 → Claude Codeを使った実装 → 動作確認 → まとめ

前編では、VS Code・Claude Codeのセットアップから、AWSアカウントの準備まで、開発を始めるための土台作りを一通り体験できる内容になっています。

想定所要時間

AWSアカウントを新規作成する場合は合計で約1.5〜2.5時間、既にAWSアカウントを持っている場合(IAMユーザー作成のみ)は約1〜1.5時間が目安です。内訳は以下の通りです。

内容 目安時間
3-1 VS Codeのインストール 10〜15分
3-2 Claude Codeの導入 10〜15分
3-3 疎通確認 5分
3-4 AWSアカウントの準備 新規作成30〜60分/既存アカウントありなら10〜15分
3-5 Bedrockのモデルアクセス申請 10〜15分
3-6 ローカル環境の確認 5〜15分
3-7 AWS CLIのインストールとログイン設定 15〜25分
3-8 boto3のインストール 10分

※3-4(AWSアカウントの新規作成)は、本人確認やクレジットカード登録などで待ち時間が発生することがあり、最も時間が読みにくい工程です。余裕を持って進めることをおすすめします。
※3-6でNode.js/Pythonを新規インストールする場合は、さらに15〜20分程度上乗せしてください。


2. 全体アーキテクチャの説明

今回作るチャットボットの構成はシンプルです。

[ユーザー]
   ↓ ブラウザ
[フロントエンド:React (Node.js)]
   ↓ REST API
[バックエンド:Python]
   ↓ boto3経由
[AWS Bedrock(LLM)]
  • フロントエンド:React製のシンプルなチャットUI。ユーザーの入力を受け取り、バックエンドにリクエストを送る。
  • バックエンド:Pythonで実装したAPIサーバー。boto3(AWSのPython SDK)を使ってBedrockのLLMを呼び出し、レスポンスをフロントに返す。
  • Bedrock:AWSが提供するマネージド型のLLM実行環境。Claudeなど複数の基盤モデルをAPI経由で利用できる。

なぜこの構成にしたかというと、フロントとバックエンドを分離した最もオーソドックスな構成であり、実務でもよく見られる形だからです。この構成を一度体験しておくと、他のAIチャットボット開発にも応用が効きます。

また今回は、開発そのものにもAIを積極活用します。具体的には次の2段階でAIを使い分けます。

  1. 企画フェーズ:ChatGPTやClaudeチャットと対話しながら、チャットボットの企画(コンセプト・機能・ペルソナ)を練る
  2. 要件定義・設計・実装フェーズ:VS Code上のClaude Codeに企画書を渡し、要件定義書・設計書・コードを生成してもらう

このように「考える相手」と「作る相手」でAIを使い分けるのが今回のポイントです。
(今回は費用を抑えるという意味でチャット型AIとコーディング型AIを分けて、作業を実施します。コーディング型AIは従量課金制のため。)
以前、社内ハッカソンでAI-DLC(AWSが提唱するAI開発ライフサイクル手法)を試した経験がありますが、今回はその考え方を基に個人開発でオリジナルで実践してみる位置づけです。

「AI-DLCって何?」を知らなかった文系エンジニアが、社内ハッカソンで試してみた話を以前記事にまとめています。よければ合わせてご覧ください。
AI-DLCって何?を知らなかった文系エンジニアが社内ハッカソンで試してみた話


3. 事前準備

3-1. VS Codeのインストール

目安時間:10〜15分

VS Code公式サイトからインストーラーをダウンロードし、インストールします。

インストール後、以下の拡張機能を入れます(最小限に絞っています)。

  • Python(Microsoft製):Python開発の基本拡張
  • Claude Code for VS Code:VS Code上でClaude Codeを動かす
  • 日本語化したい場合は「Japanese Language Pack for Visual Studio Code」

AWS設定⑫VS Codeで外部のやつ入れる.png

3-2. Claude Codeの導入

目安時間:10〜15分

  1. 今回はClaude CodeをVS Codeのターミナルから利用します。
    まず、下記URLにアクセスして、USD 5を課金して、Claude CodeをUSD 5分のクレジットを使えるようにします。
    今回は、USD 5を上限に開発をしようと思います。
    https://platform.claude.com/login?from=logout

  2. 先ほどVS Codeにインストールした、Claude Codeを開きます。
    VS Code上の一番左のタブにClaude Codeが表示されているため、そちらを押下する。
    そこで、画面キャプチャ中断の「anthopic Console」を押下すると、外部ブラウザが立ち上がり、Anthropicアカウントでの認証を求められるため、先ほど登録したメールアドレスとパスワードでログインする。
    認証が完了すると、VS Code上でClaude Codeが利用できる。

AWS設定⑬ClaudeCodeログイン.png

3-3. 疎通確認

目安時間:5分

正しくセットアップできているか、簡単な指示を出して確認してみましょう。

AWS設定⑭こちらに試しに入力して疎通確認.png

 "現在の作業ディレクトリにhello.pyというファイルを作成し、'Hello, Claude Code!'と出力するコードを書いて、実行して"

上記プロンプトを画面キャプチャ赤枠に記入し、hello.pyが作成され、実行して挨拶文が表示されれば成功です。これでVS CodeとClaude Codeの基本的なセットアップは完了です。次は、Bedrockを利用するためのAWSアカウントの準備を進めていきます。

3-4. AWSアカウントの準備

目安時間:新規作成の場合30〜60分/既にアカウントがある場合10〜15分(IAMユーザー作成のみ)

まだAWSアカウントを持っていない場合は、AWS公式サイトからアカウントを作成してください。
記載してある手順通りに実施すればOKです。
※クレジットカード登録が必要です。

AWS設定①アカウントプランを選択.png

アカウントプランの選択では、画像の右側の「有料プラン」を選択。

アカウント作成直後に振り出される「ルートユーザー」とは

AWSアカウントを作成すると、そのアカウントには自動的にルートユーザーというユーザーが1つ発行されます。これは、登録時に入力したメールアドレスとパスワードでログインするユーザーのことです。

ルートユーザーは、家に例えると「合鍵をすべて持っている大家さん」のような存在です。契約の解除やアカウントの削除、支払い方法の変更など、AWSアカウントに関するあらゆる操作ができてしまいます。裏を返すと、ルートユーザーの情報が漏れたり、誤って重要な操作をしてしまったりすると、アカウント全体に影響が及ぶということです。

そのため、AWS公式でも「ルートユーザーは初期設定などの限られた場面だけで使い、普段の作業には使わないこと」が推奨されています。普段の作業には、この後説明する「IAMユーザー」という、権限を絞った別のユーザーを作って使います。

IAMユーザーとは何か

IAM(Identity and Access Management)ユーザーとは、ルートユーザーとは別に作成できる「作業用のユーザーアカウント」のことです。

先ほどの例えで続けると、IAMユーザーは「大家さんから鍵を借りている入居者」のようなものです。入居者は自分の部屋(=許可された範囲の作業)は自由に使えますが、建物全体の権利書を書き換えたり、他の部屋を解約したりすることはできません。このように、「この人にはこの作業だけを許可する」という形で権限を制限できるユーザーがIAMユーザーです。

なぜルートユーザーではなくIAMユーザーを作るのか

理由は大きく2つあります。

  1. 万が一の被害を最小限にできるから
    IAMユーザーは権限を絞って作成するため、そのIAMユーザーの情報が漏れたり、操作を誤ったりしても、被害の範囲を「許可した作業の範囲内」に抑えられます。一方、ルートユーザーで日常的に作業してしまうと、些細なミスや情報漏洩がアカウント全体の重大な被害につながりかねません。

  2. 「誰が何をしたか」を分けて管理できるから
    IAMユーザーを目的ごとに作成しておくと、後から見返したときに「このユーザーは何のために作ったものか」が分かりやすくなります。今回のハンズオンでも、bedrock-handson-userのように用途が分かる名前をつけて作成します。

つまり、「普段使いの鍵(IAMユーザー)」と「非常時にしか使わないマスターキー(ルートユーザー)」を分けておく、というイメージを持っておくと理解しやすいと思います。

以上を踏まえて、以下の理由からルートユーザーではなくIAMユーザーを作成して作業することを強く推奨します。

  • ルートユーザーはアカウントの全権限を持つため、誤操作や漏洩時のリスクが大きい
  • 権限を必要最小限に絞ることで、事故を防げる

IAMユーザー作成の手順は以下の通りです。

  1. AWSマネジメントコンソールにログイン
    https://aws.amazon.com/jp/console/
  2. 「IAM」サービスを開く。画面キャプチャを参考に、画面左上の検索欄に「IAM」と入力する。

AWS設定②コンソール画面でのIAM検索.png

  1. 左メニューの「IAMユーザー」を押下し→画面右側の「ユーザーを作成」を押下。

AWS設定③IAMユーザー作成画面遷移.png

  1. ユーザー名を入力(bedrock-handson-user

AWS設定④IAMユーザー作成時にマネジメントコンソールへのアクセスの追加.png

※「AWS マネジメントコンソールへのユーザーアクセスを提供する - オプション」にチェックを入れる。

  1. 「ポリシーを直接アタッチする」を選択し、以下のポリシーを付与
    • AmazonBedrockFullAccess(ハンズオン用。本番運用時はより絞った権限を検討してください)
    • IAMFullAccessも追加する。

AWS設定⑤ポリシーにbedrockを追加.png

  1. 作成後、「コンソールサインインの詳細」が発行され、ユーザー名とコンソールパスワードを控えておく(この画面でしか表示されないので注意)
    「csvファイルをダウンロードする」を押下すると情報がcsvに出力される。

AWS設定⑥IAMユーザー作成したため、コンソールへのアクセス.png

  1. コンソールサインイン URLへアクセスすると、ユーザー名とコンソールパスワードが求められるため、入力。そうすると、ログインできる。
  2. ログイン後、画面右上のリージョン(地域)をバージニア北部(us-east-1)に設定する。今後、バージニア北部(us-east-1)で作業を実施していく。

3-5. Bedrockのモデルアクセス申請

目安時間:10〜15分

Bedrockは初回利用時に、使いたいモデルへのアクセスを個別に申請する必要があります。しかし、現在は「最初にモデルを呼び出した時点で自動的に有効化されるようになった。」という設定になっているので、おそらくこの手順は不要です。
そのため、今回は「6.LLMの呼び出し確認・・・」を実施してください。
もし「6.LLMの呼び出し確認」で呼び出しが出来ない場合、現段階の情報を検索して、
調整してください。

  1. AWSマネジメントコンソールで「Bedrock」を検索して開く
  2. 左メニューの「Model access(モデルアクセス)」を選択
  3. 「Manage model access」または「Enable specific models」をクリック
  4. 使用したいモデル(例:Anthropic Claude シリーズ)にチェックを入れる
  5. 申請内容を確認し、送信

多くのモデルは申請後すぐに使えるようになりますが、モデルによっては利用目的の入力を求められたり、承認まで時間がかかったりする場合があります。また、リージョンごとにモデルアクセスの設定が必要な点にも注意してください(例:us-east-1で申請してもap-northeast-1では別途申請が必要)。

  1. LLMの呼び出し確認をする
    コンソール画面の左上で「bedrock」と入力し、bedrockを開く。
    そこで、左側のタブの「モデルカタログ」を押下し、画面中央で「Amazon Nova 2 Lite」を押下する。今回は費用がお手頃なAmazon Novaをチャットボットの返答するLLMに利用する。

AWS設定⑦bedrockでLLMの疎通確認.png

  1. 「 プレイグラウンドで開く」を押下し、遷移した画面でテキストを送信し、返答が返ってくるか確認。

AWS設定⑧AmazonNovaと対話してみる.プレイグラウンドで.png

3-6. ローカル環境の確認

目安時間:5〜15分(未インストールの場合は+15〜20分程度)

Node.jsとPythonがインストール済みか確認します。

node -v
npm -v
python --version
# または
python3 --version

インストールされていない場合は、以下からダウンロードしてください。

3-7. AWS CLIのインストールとIAMユーザーでのログイン設定

目安時間:15〜25分

ここまでで、AWSマネジメントコンソール(ブラウザ)から操作するためのIAMユーザーを作成しました。しかし今回は、VS Codeのターミナルからプログラム経由でBedrockを呼び出すため、手元のPCが「自分はどのIAMユーザーとしてAWSにアクセスするのか」を認識できるようにする設定が別途必要です。この橋渡しをしてくれるのが**AWS CLI(コマンドラインツール)**です。

AWS CLIとは

AWS CLIは、ブラウザのマネジメントコンソールで行っている操作を、コマンド(文字)で実行できるようにするツールです。今回のハンズオンでは操作そのものよりも、「手元のPCにIAMユーザーの認証情報を覚えさせる」ための設定手順として使います

AWS CLIでアクセスするためにコンソール画面での設定

3-4で作成した「bedrock-handson-user」ユーザーでAWSのコンソールへログインする。
そこで、IAMユーザーを開いて、「bedrock-handson-user」を選択後、「アクセスキー作成」を押下する。

AWS設定⑨AWS CLIからアクセスするための準備.png

「コマンドラインインターフェイス (CLI)」を選択する。

AWS設定⑩AWS CLIからアクセスするための準備2.png

その後、アクセスキーを作成を押下する。
そうすると、アクセスキーが作成される。
「アクセスキー」と「シークレットアクセスキー」は、CLIでのログイン時に必要なため、メモする。csvのダウンロードでもよい。

AWS設定⑪アクセスキーが作成された.png

インストール手順

お使いのOSに合わせてインストーラーをダウンロードし、実行してください。

インストール後、VS Codeのターミナルで以下を実行し、バージョンが表示されればインストール成功です。

aws --version

IAMユーザーとしてログイン(認証情報の設定)

先ほど「AWS CLIでアクセスするためにコンソール画面での設定」で控えておいた「アクセスキー」と「シークレットアクセスキー」を使って、手元のPCにIAMユーザーの認証情報を登録します。VS Codeのターミナルで以下のコマンドを実行してください。

aws configure

実行すると、以下の4項目を順番に聞かれるので、入力していきます。

AWS Access Key ID [None]: (控えたアクセスキーIDを入力)
AWS Secret Access Key [None]: (控えたシークレットアクセスキーを入力)
Default region name [None]: us-east-1
Default output format [None]: json

Default region nameはバージニア北部リージョンを表すus-east-1を入力しています。3-5でBedrockのモデルアクセスを別のリージョンで申請している場合は、そのリージョン名に揃えてください。

設定が終わったら、以下のコマンドで正しく設定できているか確認できます。

aws sts get-caller-identity

作成したIAMユーザーのユーザー名やアカウントIDが表示されれば、手元のPCがそのIAMユーザーとしてAWSにアクセスできる状態になっています。これで、後ほどPythonのboto3から認証情報を別途書かなくても、自動的にこの設定を読み込んでBedrockへアクセスできるようになります。

3-8. boto3のインストール

目安時間:10分

boto3は、PythonからAWSの各種サービスを操作するための公式SDK(ライブラリ)です。今回はこのboto3を使って、PythonのバックエンドからBedrockのLLMを呼び出します。

VS Codeのターミナルで、以下のコマンドを実行してインストールします。

pip install boto3
# または
pip3 install boto3

インストールができたか確認するために、簡単なコードで疎通確認をしてみましょう。以下の内容でcheck_bedrock.pyというファイルを作成します。

import boto3

client = boto3.client("bedrock", region_name="ap-northeast-1")
response = client.list_foundation_models()

for model in response["modelSummaries"]:
    print(model["modelId"])

実行してみます。

python check_bedrock.py

利用可能なモデルのID一覧がずらっと表示されれば成功です。ここでエラーが出る場合は、以下を確認してください。

  • 3-7でaws configureの設定が正しくできているか
  • 3-5でBedrockのモデルアクセス申請が完了しているか
  • region_nameが申請したリージョンと一致しているか

ここまでで、AWSアカウント側の準備・手元のPCからBedrockを呼び出すための設定がすべて整い、開発環境の準備がすべて完了しました。


4. 前編まとめ

ここまでで、以下が完了しました。

  • VS Code・Claude Codeの環境構築
  • AWSアカウント・IAMユーザー・Bedrockモデルアクセスの準備
  • AWS CLI・boto3を使ったローカルPCからBedrockへの疎通確認

これで、AIチャットボットを開発するための土台が整いました。後編では、対話型AIとの壁打ちによる企画立案から、Claude Codeを使った要件定義・設計・実装まで進めていきます。

それでは、また後半の記事でお会いしましょう!

→後編はこちら

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?