目次
1. はじめに
こんにちは。
アプリケーションエンジニア3年目のKokiです。
普段はAWSやAIにあまり馴染みのない部門で働いていますが、最近は社内で自主的にAWSやAIの知見を広める活動に取り組んでいます。
今回は、AWS Bedrock と Claude 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を使い分けます。
- 企画フェーズ:ChatGPTやClaudeチャットと対話しながら、チャットボットの企画(コンセプト・機能・ペルソナ)を練る
- 要件定義・設計・実装フェーズ: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」
3-2. Claude Codeの導入
目安時間:10〜15分
-
今回はClaude CodeをVS Codeのターミナルから利用します。
まず、下記URLにアクセスして、USD 5を課金して、Claude CodeをUSD 5分のクレジットを使えるようにします。
今回は、USD 5を上限に開発をしようと思います。
https://platform.claude.com/login?from=logout -
先ほどVS Codeにインストールした、Claude Codeを開きます。
VS Code上の一番左のタブにClaude Codeが表示されているため、そちらを押下する。
そこで、画面キャプチャ中断の「anthopic Console」を押下すると、外部ブラウザが立ち上がり、Anthropicアカウントでの認証を求められるため、先ほど登録したメールアドレスとパスワードでログインする。
認証が完了すると、VS Code上でClaude Codeが利用できる。
3-3. 疎通確認
目安時間:5分
正しくセットアップできているか、簡単な指示を出して確認してみましょう。
"現在の作業ディレクトリに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アカウントを作成すると、そのアカウントには自動的にルートユーザーというユーザーが1つ発行されます。これは、登録時に入力したメールアドレスとパスワードでログインするユーザーのことです。
ルートユーザーは、家に例えると「合鍵をすべて持っている大家さん」のような存在です。契約の解除やアカウントの削除、支払い方法の変更など、AWSアカウントに関するあらゆる操作ができてしまいます。裏を返すと、ルートユーザーの情報が漏れたり、誤って重要な操作をしてしまったりすると、アカウント全体に影響が及ぶということです。
そのため、AWS公式でも「ルートユーザーは初期設定などの限られた場面だけで使い、普段の作業には使わないこと」が推奨されています。普段の作業には、この後説明する「IAMユーザー」という、権限を絞った別のユーザーを作って使います。
IAMユーザーとは何か
IAM(Identity and Access Management)ユーザーとは、ルートユーザーとは別に作成できる「作業用のユーザーアカウント」のことです。
先ほどの例えで続けると、IAMユーザーは「大家さんから鍵を借りている入居者」のようなものです。入居者は自分の部屋(=許可された範囲の作業)は自由に使えますが、建物全体の権利書を書き換えたり、他の部屋を解約したりすることはできません。このように、「この人にはこの作業だけを許可する」という形で権限を制限できるユーザーがIAMユーザーです。
なぜルートユーザーではなくIAMユーザーを作るのか
理由は大きく2つあります。
-
万が一の被害を最小限にできるから
IAMユーザーは権限を絞って作成するため、そのIAMユーザーの情報が漏れたり、操作を誤ったりしても、被害の範囲を「許可した作業の範囲内」に抑えられます。一方、ルートユーザーで日常的に作業してしまうと、些細なミスや情報漏洩がアカウント全体の重大な被害につながりかねません。 -
「誰が何をしたか」を分けて管理できるから
IAMユーザーを目的ごとに作成しておくと、後から見返したときに「このユーザーは何のために作ったものか」が分かりやすくなります。今回のハンズオンでも、bedrock-handson-userのように用途が分かる名前をつけて作成します。
つまり、「普段使いの鍵(IAMユーザー)」と「非常時にしか使わないマスターキー(ルートユーザー)」を分けておく、というイメージを持っておくと理解しやすいと思います。
以上を踏まえて、以下の理由からルートユーザーではなくIAMユーザーを作成して作業することを強く推奨します。
- ルートユーザーはアカウントの全権限を持つため、誤操作や漏洩時のリスクが大きい
- 権限を必要最小限に絞ることで、事故を防げる
IAMユーザー作成の手順は以下の通りです。
- AWSマネジメントコンソールにログイン
https://aws.amazon.com/jp/console/ - 「IAM」サービスを開く。画面キャプチャを参考に、画面左上の検索欄に「IAM」と入力する。
- 左メニューの「IAMユーザー」を押下し→画面右側の「ユーザーを作成」を押下。
- ユーザー名を入力(
bedrock-handson-user)
※「AWS マネジメントコンソールへのユーザーアクセスを提供する - オプション」にチェックを入れる。
- 「ポリシーを直接アタッチする」を選択し、以下のポリシーを付与
-
AmazonBedrockFullAccess(ハンズオン用。本番運用時はより絞った権限を検討してください) -
IAMFullAccessも追加する。
-
- 作成後、「コンソールサインインの詳細」が発行され、ユーザー名とコンソールパスワードを控えておく(この画面でしか表示されないので注意)
「csvファイルをダウンロードする」を押下すると情報がcsvに出力される。
- コンソールサインイン URLへアクセスすると、ユーザー名とコンソールパスワードが求められるため、入力。そうすると、ログインできる。
- ログイン後、画面右上のリージョン(地域)をバージニア北部(us-east-1)に設定する。今後、バージニア北部(us-east-1)で作業を実施していく。
3-5. Bedrockのモデルアクセス申請
目安時間:10〜15分
Bedrockは初回利用時に、使いたいモデルへのアクセスを個別に申請する必要があります。しかし、現在は「最初にモデルを呼び出した時点で自動的に有効化されるようになった。」という設定になっているので、おそらくこの手順は不要です。
そのため、今回は「6.LLMの呼び出し確認・・・」を実施してください。
もし「6.LLMの呼び出し確認」で呼び出しが出来ない場合、現段階の情報を検索して、
調整してください。
- AWSマネジメントコンソールで「Bedrock」を検索して開く
- 左メニューの「Model access(モデルアクセス)」を選択
- 「Manage model access」または「Enable specific models」をクリック
- 使用したいモデル(例:Anthropic Claude シリーズ)にチェックを入れる
- 申請内容を確認し、送信
多くのモデルは申請後すぐに使えるようになりますが、モデルによっては利用目的の入力を求められたり、承認まで時間がかかったりする場合があります。また、リージョンごとにモデルアクセスの設定が必要な点にも注意してください(例:us-east-1で申請してもap-northeast-1では別途申請が必要)。
- LLMの呼び出し確認をする
コンソール画面の左上で「bedrock」と入力し、bedrockを開く。
そこで、左側のタブの「モデルカタログ」を押下し、画面中央で「Amazon Nova 2 Lite」を押下する。今回は費用がお手頃なAmazon Novaをチャットボットの返答するLLMに利用する。
- 「 プレイグラウンドで開く」を押下し、遷移した画面でテキストを送信し、返答が返ってくるか確認。
3-6. ローカル環境の確認
目安時間:5〜15分(未インストールの場合は+15〜20分程度)
Node.jsとPythonがインストール済みか確認します。
node -v
npm -v
python --version
# または
python3 --version
インストールされていない場合は、以下からダウンロードしてください。
- Node.js: https://nodejs.org/(LTS版を推奨)
- Python: https://www.python.org/downloads/(3.10以上を推奨)
不明点あれば、ネットで検索すると色々手順が乗っているので、調べてみてください!
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」を選択後、「アクセスキー作成」を押下する。
「コマンドラインインターフェイス (CLI)」を選択する。
その後、アクセスキーを作成を押下する。
そうすると、アクセスキーが作成される。
「アクセスキー」と「シークレットアクセスキー」は、CLIでのログイン時に必要なため、メモする。csvのダウンロードでもよい。
インストール手順
お使いの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を使った要件定義・設計・実装まで進めていきます。
それでは、また後半の記事でお会いしましょう!













