AWSのAIエディタ「Kiro」でBedrockと連携するチャットシステムを構築!Webシステムに登場するサービス(CloudFront・Lambda 等)についても解説

こんにちは!PCIソリューションズ エンタープライズビジネス事業本部 ITインフラ事業部の山岡です。

前回は、前編後編を通してゲームを作成してきましたが、

前編・後編をまだ見ていない方はこちらからどうぞ

kiroにすっかりハマってしまい、今回はBedrockを組み合わせたAIチャットWebシステムを作っていきます。

Chat GPTやGeminiみたいにAIと会話できるシステムが作れたらいいなぁと思ったので早速作ってきました。

コンセプトはズバリ

「AWSでのシステム構築の相談役になってくれるAI」

です。

そうですね。つまりお話だけできるkiroです。
では前置きもほどほどに本編行きましょう。

(1) システムの全体像と処理フロー

(1)-a. AIチャットシステムのデモ:実際の会話例

1.Web上でAIと話す。最初に作りたいシステムについて聞かれるので答えます。

2.するといろんな要件について聞かれます。これも答えていきましょう。

>個人用のブログを作って公開したいです。

なるほど、普通に会話もできて色々教えてくれるみたいですね。早速コーディングを頼みました↓

ありがとうございます!
個人用ブログの構築に向けて、次に確認したい項目は **予算** と **技術的要件** です。順に質問させてください。
## 1. 予算(AWS利用分)
- **月額でどれくらいの費用を想定していますか?**
- 例: 1,000円〜5,000円程度、あるいはそれ以上
- **費用を抑えるためにサーバーやストレージを共有したい場合はありますか?**
- 共有リソースを使うとコストは下がりますが、パフォーマンスや管理面で注意が必要です。


## 2. 技術的要件
以下の点について教えてください(できるだけ具体的にお願いします):

1. **コンテンツの種類**
- 文章のみ(静的ページ)
- 画像や動画を多用する
- コメント機能やユーザー登録は必要か

2. **使用したい CMS / フレームワーク**
- WordPress、Ghost、Jekyll、Hugo、その他
- もし既に使っている CMS があれば教えてください

3. **ドメインと HTTPS**
- 既に取得済みのカスタムドメインはありますか?
- Let's Encrypt などで無料 SSL を利用したいか

4. **スケーラビリティ**
- 予想される訪問者数(例:1日あたり数十〜数百)
- 将来的にアクセスが増える可能性

5. **バックアップ・災害復旧**
- 定期的にバックアップを取りたいか
- どのくらいの復旧時間(RTO)を目指すか

6. **運用・管理**
- サーバー管理(OS、パッチ適用)を自分で行うか、マネージドサービスを利用したいか
- 監視やログ収集に関する要件

まずは**予算**について教えていただけますか?その後、技術的要件を順に掘り下げていきましょう。

3.先ほどの質問について答えました。こんな感じで要件を固めて設計していくチャットシステムになっています。

>予算:月1500円以内がいいです
技術的要件↓
1,文章のみです
2,CMSの利用想定はないです
3,ドメインはまだないです
4,個人用なので1日数件あるかないかです
5,バックアップはいらないです
6,運用はファイルのみにしたいです

## 1. まず確認したいこと
**「システムの種類(systemType)」**
- 既に「文章のみで CMS を使わない」という条件がありますが、
- **静的 HTML ファイル(=「静的ウェブサイト」)** で構築される予定でしょうか?
- それとも Markdown などを手動で変換して HTML 化する作業を想定していますか?

> **※ここで「静的ウェブサイト」と答えていただければ、以降の提案はその前提で進めます。**

---

## 2. 予算(月 1,500 円以内)を満たす構成案

| AWS リソース | 主な役割 | 予算内でのコスト例(日本円) | 備考 |
|--------------|----------|---------------------------|------|
| **Amazon S3** | 静的ファイル(HTML, CSS, 画像)を保存・配信 | 1GB 保存: 約 5 円 / 月<br>GET リクエスト 10,000 回: 約 0.1 円 | 1 日数件程度のアクセスなら 1〜2 円で十分 |
| **Amazon CloudFront** | HTTPS 配信、キャッシュで高速化 | 1GB データ転送: 約 5 円 / 月(無料枠 10GB)<br>リクエスト 10,000 回: 約 0.1 円 | 低トラフィックなら無料枠内で済む |
| **AWS Certificate Manager (ACM)** | HTTPS 用証明書 | 無料 | CloudFront で自動取得 |
| **ドメイン** | カスタムドメイン(後から取得可) | Freenom 等の無料ドメインで 0 円<br>Route 53 なら 1,500 円/年 (≈ 125 円/月) | まずは無料で試し、必要に応じて Route 53 に移行 |
| **合計** | | **約 15–30 円 / 月** | 予算 1,500 円以内に余裕あり |

> **ポイント**
> - **S3 静的ウェブサイトホスティング** は「ファイルのみ」で運用できます。
> - **CloudFront** を使うと HTTPS が自動で付与され、ブラウザで安全にアクセスできます。
> - 1 日数件程度のアクセスなら、**無料枠**(S3 1GB、CloudFront 10GB)で十分です。
> - ドメインはまだないとのことなので、まずは **Freenom** の .tk/.cf など無料ドメインを取得し、後から Route 53 に移行しても OK。

---

## 3. 実装手順(簡易版)

1. **S3 バケット作成**
- 名前は `blog-example.com`(ドメイン名と同じ)
- 「静的ウェブサイトホスティング」を有効にし、`index.html` をデフォルトオブジェクトに設定
- バケットポリシーで「公開読み取り」設定

2. **CloudFront ディストリビューション作成**
- オリジンに S3 バケットを指定
- **Alternate Domain Names (CNAME)** に `blog.example.com`(後から取得するドメイン)
- **Default Cache Behavior** で HTTPS のみ許可
- **ACM 証明書** を自動取得(ACM でドメインを検証)

3. **ドメイン取得**
- まずは Freenom で `blog.example.com` を取得
- DNS で CloudFront のドメイン (`xxxx.cloudfront.net`) を CNAME として設定
- その後、必要に応じて Route 53 に移行し、AWS でドメイン管理を行う

4. **ファイルアップロード**
- `index.html`、`style.css`、画像などを S3 にアップロード
- S3 の URL(例: `https://blog-example.com.s3-website-ap-northeast-1.amazonaws.com/`)で確認

5. **アクセス確認**
- ブラウザで `https://blog.example.com` にアクセスし、HTTPS が有効か確認
- CloudFront のキャッシュが効いているか確認(少し遅延がある場合は `invalidate` でキャッシュクリア)

---

## 4. コスト管理のヒント

| 項目 | 管理ポイント |
|------|--------------|
| **S3 ストレージ** | 使っていない古いファイルは手動で削除。S3 の「ライフサイクルルール」で自動削除も設定可能 |
| **CloudFront リクエスト** | 1 日数件ならリクエスト数は 1,000 回未満。無料枠内で十分 |
| **ドメイン** | まずは無料ドメインで試し、実際にアクセスが増えたら Route 53 に移行。Route 53 は 1,500 円/年(約 125 円/月) |

---

## 5. 次のステップ

1. **「静的ウェブサイト」** で構築するかどうか確認してください。
2. **ドメイン** を取得済みか、取得予定か教えてください。
3. それに応じて、上記手順を具体化し、必要な設定を詳しく説明します。

ご回答いただければ、さらに詳細な設定手順やコスト計算を提供します!

4.ある程度会話したら内容をファイル出力できます。(今回はテンプレート版(おためし)として実装しています。)

5.するとS3にファイル出力されます。

ファイルの内容はこんな感じです。内容はAIモデル側に書いてもらい、フォーマットはこちらで用意した物を使ってます。

> 要件収集が完了していないため、一部の情報が「【未定】要件収集中」となっています。
> 完全な提案書は要件収集完了後に生成されます。

**生成日時**: 2026/02/23 19:35  
**セッションID**: session_mlz0m11c_9qffawc66t  
**システム種別**: データ処理・分析  
**ドキュメント種別**: ドラフト(要件収集中)

---

## プロジェクト概要

### システム種別
データ処理・分析

### 目的
個人用のブログを作って公開したいです。

### 現在の収集状況
- システム種別: ✅ 確定
- 目的・用途: ✅ 確定
- 規模要件: ✅ 確定
- 予算要件: ✅ 確定
- 技術要件: ✅ 確定

## 要件

### 機能要件

**システムの目的**
個人用のブログを作って公開したいです。

**ユーザーから言及された機能**
- 個人用のブログを作って公開したいです
- 6,運用はファイルのみにしたいです

### 非機能要件

**規模・スケール**
個人用のブログを作って公開したいです。


**予算**
予算:月1500円以内がいいです
技術的要件↓
1,文章のみです
2,CMSの利用想定はないです
3,ドメインはまだないです
4,個人用なので1日数件あるかないかです
5,バックアップはいらないです
6,運用はファイルのみにしたいです

- 通貨: JPY

**技術要件**
【未定】要件収集中

### 制約事項

【未定】要件収集中



## AWSリソース構成

> ⚠️ 要件収集が完了していないため、詳細なアーキテクチャ提案は生成されていません。
> 要件収集完了後、データ処理・分析に最適なAWS構成を提案します。

### 想定される主要サービス(参考)

- **Amazon S3**: データレイク
- **AWS Glue**: ETL処理
- **Amazon Athena**: SQLクエリ分析
- **Amazon Redshift**: データウェアハウス
- **AWS Lambda**: データ処理パイプライン

> 注: 上記は一般的な構成例です。実際の提案は収集された要件に基づいて最適化されます。


## コスト見積もり

> ⚠️ 要件収集が完了していないため、詳細なコスト見積もりは算出されていません。

### 予算要件

ユーザー指定の予算: 予算:月1500円以内がいいです
技術的要件↓
1,文章のみです
2,CMSの利用想定はないです
3,ドメインはまだないです
4,個人用なので1日数件あるかないかです
5,バックアップはいらないです
6,運用はファイルのみにしたいです

### コスト見積もり

要件収集完了後、以下の観点でコスト見積もりを提供します:

- 月額運用コスト(主要サービス別)
- 初期構築コスト
- スケール時のコスト変動
- コスト最適化の提案

ブログを公開したいだけなので、サービスはS3だけになる想定です。
(ただしAIがなかなかGlueなどのデータ加工サービスに拘る…。こればかりは良いモデルを使えば改善されるはず)

(1)-b. Kiroで構築したWebシステムのアーキテクチャ解説

このシステムの処理の流れを書きます。

所々の処理に使うリソース名(Lambda Bedrock処理用)はこの後の 「(2). 使用したAWSサービス一覧(CloudFront・API Gateway・Lambda・Bedrock)」を見てください。

1.  Web画面にアクセスして会話する。アクセスの流れは以下のとおり。

2.  会話内容をBedrock AIモデルに取り次いで会話をする。以下のような流れになっている。

3. S3にファイル出力する。以下のような(略)

(2). 使用したAWSサービス一覧(CloudFront・API Gateway・Lambda・Bedrock)

1. CloudFront

ユーザーへの静的および動的なウェブコンテンツ (.html、.css、.js、イメージファイルなど) の配信を高速化するウェブサービス。
簡単な解説:作成したコンテンツをインターネット上に公開することができる。

今回の使い道:S3バケットに配置したWebコンテンツをインターネットからアクセス可能にするために使う。

2. API Gateway

あらゆる規模の REST、HTTP、および WebSocket API を作成、公開、維持、モニタリング、およびセキュア化するための AWS のサービス。

簡単な解説:APIを作成することが出来る。

今回の使い道:Web画面とBedrockをやり取りするための「Bedrock用API」、Web画面からS3にドキュメントを出力するための「出力用API」を作成し使う。後述するLambdaを連携して呼び出すようにする。

3. S3

業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービス。

簡単な解説:だいたい何でも格納しておけるストレージ。静的Webサイトなら設定次第でホスティングもできる。

今回の使い道:Web画面ファイル、各種処理ファイルを格納して静的Webサイトをホスティングするバケットを作る。またWeb画面で作成されたドキュメントを格納するためのバケットを作る。

4. Lambda

サーバーの管理を行うことなくコードを実行できるコンピューティングサービス。

簡単な解説:最大15分だけコード実行させられるサーバー。コードだけ管理すればよい。主にこの辺りの言語が使用可能↓

  • Node.js
  • Python
  • Java
  • C# (.NET)
  • Go
  • Ruby

など…
これ以外にもコンテナイメージを使えば利用可能。

今回の使い道:Web画面とBedrockをやり取りするためのAPIで使う「Bedrock用処理」、Web画面からS3にドキュメントを出力するためのAPIで使う「出力用処理」を実装する。
それぞれAPI GatewayのAPIに連携させて使う。

おまけ

・Web画面とBedrockをやり取りするためのAPIで使う処理とは
Web画面で入力したテキストデータを受け取って、利用するBedrockのモデルIDを使ってAIモデルを呼び出す処理。

(例)
🔧 リクエストバリデーション…送信内容のチェック。Nullじゃないか、メッセージ内容が本当にあるか。
 🔧 データ形式変換…Bedrockに内容を送信するためのフォーマットを作成する。

Bedrockからくる返信内容についても以下のような処理を行っている。

(例)
🔧 テキスト抽出…返信された内容からテキストを抽出。
🔧 統一されたJSON形式で返信…Webで用いるJSON形式に変換する。

以上のようなBedrockのOpenAIモデルを用いたリクエストとレスポンスの詳細については以下を参照すること。
OpenAI APIsを使用してレスポンスを生成する – Amazon Bedrock

BedrockのAIモデルを呼び出すには、以下の権限がこのLambdaのIAMロールに必要になるので注意↓
“bedrock:InvokeModel”
…Bedrockのモデルを呼び出す権限

5. Bedrock

主要な AI 企業や Amazon が提供する高パフォーマンスな基盤モデル (FM) を、統合 API を通じて利用できるようにする完全マネージド型サービス
簡単な解説:色んなAIモデルがモデルIDを使って呼び出せるサービス。

※使えるAIモデルの例

提供モデル名用途
AI21 LabsJamba 1.5 Large / Miniテキスト生成・回答
Amazon NovaNova Liteテキスト・画像処理
Amazon NovaNova Canvas画像生成
OpenAI(Open モデル)GPT OSS Safeguard 20B / 120B大規模言語モデル、汎用的
AnthropicClaude Opus高性能・複雑推論向け

今回の使い道:モデル名openai.gpt-oss-20bを使う。
(但し今回の使い道だともっと良いモデルを使った方がよさそう。)

(3). 構築してわかった課題と今後の拡張案(Bedrock Agent活用)

一応会話できるはできるのですが、

  • なんだかアーキテクチャの理解はイマイチ…
  • 会話した内容をファイル出力して何になるんだろう…(作った後で冷静になったのである)

なので改良するならこの辺りかなと思いました。

  • 途中でWeb検索して考えてくれるようにする。

   →Bedrock Agentを使おう。
    これを使えば必要に応じてWeb検索をさせる仕組みが実装可能!!(なはず)

Bedrock AgentはBedrockのAIモデルを使いつつ必要に応じてツールを使わせる機能です。これでWeb検索をさせる仕組みを作れば…

  • 出力したファイルをもとにCloudFormationで構築可能な形のファイルを作成し、環境へデプロイする。

   →AIに作らせても良いですが、ファイルの出力形式を調節して、
    Lambdaで作っても良いかな??

改良案は出しましたが、この頃現場が忙しいため時間が無く実装は未定です…

但しBedrock Agentは便利で面白そうなので今度使ってみようかと思います。

今回はこれで終わりです!ありがとうございました。

山岡 亮太

AWSを活用した社内システム開発や、大手保険機関のシステム開発に従事。 /AWSをより多くの方々に普及するためブログを書いています。

保有AWS資格
・AWS Certified Cloud Practitioner ・AWS Certified AI Practitioner ・AWS Certified Solutions Architect - Associate ・AWS Certified Developer - Associate ・AWS Certified CloudOps Engineer - Associate ・AWS Certified Solutions Architect - Professional ・AWS Certified DevOps Engineer - Professional 等

保有AWS資格一覧