Blog

Cline + Amazon Bedrock & Amazon Q Developer 使ってみた(後編)

環境が整ったところで実際の検証に入りたいところですが、ブログ前半から時間が経ってしまったこともあり、今回は2025年9月末にリリースされたClaude 4.5 Sonnetを利用したいと思います。

Claude 4.5 Sonnet 利用にあたり、モデルアクセスの有効化とVScodeの設定を変更しておきます。

モデルアクセスの有効化
Cline + Amazon Bedrock
Amazon Q Developer

検証の内容として、ブラックボックス化したシステムをAWSに移行することを想定、と行きたいところですが、ブラックボックス化したシステムを作るのは難しいので、今回はレガシーな処理、且ついくつか課題抱えているpythonファイル「legacy_process.py」を疑似的に作成し、この処理をAWS環境へ移行できるかを検証しました(ファイルの処理内容は後述のStep2を参照してください)。

  • legacy_process.py

また、それぞれの構成についてなるべく同じ条件で動作・比較したいので、事前にAIへの指示書としてルールを定義し、それに従って実装してもらいます。ブログの趣旨と少しずれますが、こうすることでAIの振る舞いに一定のルールを設け、より公平に比較できると考えました。

そこでこの記事では、実際に以下の流れで検証を進めていきます。

  1. AIエージェントに対して「要件定義」「設計」「実行計画」「実装」のルールを指定
  2. AIによる開発プロセスの実行
  3. それぞれの構成の比較と考察

Step 1: AIエージェントへのルールの指定

AIにプロジェクト専属の「プロフェッショナル」として振る舞ってもらうため、AIの思考方法から開発の進め方、プログラミング規約までを定義したルールを作成しました。
また、AIにいきなりコードを書かせるのではなく、まず「要件定義」から始め、「設計」「実行計画」「実装」と段階を踏んで開発を進めるプロセスを試してみました。 最近のAI開発ツール(kiroなど)でよく見られる、仕様から開発をスタートするアプローチです。本記事では、この手法を用いてClineとAmazon Qを比較検証します。
ちなみに、このルールはGeminiと対話しながら作成したものになります。このファイルをチーム内で共有することで、AIによるコーディングの精度向上にも役立つかと思います。

AIに与えたルール全体を見る

Step 2: 開発プロセスの実行

前のステップで紹介した手順で、各環境に上記のルールを読み込ませ、移行対象のlegacy_process.pyを分析させるところからスタートします。

Cline + Bedrock 環境での手順

  1. VSCodeで対象のプロジェクトを開き、.clinerules ファイルを新規作成し、ルールの内容をコピーします
  2. Clineのチャットパネルを開き、以下のプロンプトを入力します。Clineは.clinerulesを自動で認識します。

Amazon Q Developer 環境での手順

  1. VSCodeで対象のプロジェクトを開き、PROJECT_RULES.md ファイルを新規作成し、ルールの内容をコピーします
  2. Amazon Qのチャットパネルを開き、最初に以下のプロンプトを入力します。

どちらの構成においても最初の分析結果を提示した後、こちらが指示する前に、ルールに従って自律的に「要件定義」フェーズを開始し、移行の目的や要件を明確化するための質問を投げかけてきました。

Cline + Bedrock 環境

Amazon Q Developer 環境

質問への回答内容
  • 移行の目的は「保守性・運用性の改善」とする。
  • このlegacy_process.pyスクリプトのみをAWSに移行する。
  • 既存の処理ロジック(商品別売上集計)は変更しない。
  • 特定のS3バケットにCSVファイルがアップロードされたことをトリガーに、自動で処理が開始されること。
  • バッチ処理は1時間に一度動いており、1回あたり1〜10ファイル程度が不定期に発生する。
  • 1ファイルあたりの規模として平均で1,000行程度のデータ。
  • 定期的なスケジュール実行ではなく、ファイル到着を即座に検知する。
  • 処理の実行状況(開始、成功、失敗)は、後から追跡できるようCloudWatch Logsに記録されること。
  • 処理が失敗した際には、Slackなどで通知が送信されること。
  • 既存システムとの連携はしていない。
  • 検証のため「セキュリティ要件」「予算やコストに関する制約」「移行の完了希望時期」は考慮しない。

その後は、AIの質問に答え「承認します、次に進んでください」と指示するだけで、「要件定義」→「設計」→「実装計画」→「実装」と、開発の上流工程から下流工程まで一通りの作業をこなしてくれました。
(どちらの環境も一部IAMポリシーの定義などに苦戦していましたが、詳細はここでは割愛します)

Step 3: 2つの構成の比較と考察

両環境とも最終的にAWSへのデプロイまで完了しましたが、実際に試すとプロセスと成果物に少し違いがあることが分かりました。 

1. UI/UX・対話の丁寧さ

個人的な感想になりますが、Clineは応答が丁寧で、思考プロセスを細かく説明してくれる印象でした。特に設計フェーズで提示されたMermaid形式のアーキテクチャ図がVSCode上でプレビュー表示され、見やすかったのが特徴的でした。

構成図(Cline + Amazon Bedrock)

一方、Amazon Q Developer はコードで表示されたので、手動で図に変換したものを載せておきます。

構成図(Amazon Q Developer)
構成図(Amazon Q Developer)手動で図に変換

2. 特徴的な機能(Clineの「Plan/Actモード」)

どちらもルールに定義した通り、ステップバイステップで進めてくれましたが、Clineには、AIがまず行動計画(Plan)を提示し、ユーザーが承認すると実行(Act)に移る「Plan/Actモード」が搭載されております。

この点は今回のルールベースの開発フローとも相性が良く、AIによる次の処理を常に確認しながら開発を進めることができました。

3. 生成されたリソースの比較 

両環境で最終的に作成されたAWSリソースには、アーキテクチャの違いが若干見られました。

プロジェクト構成

Cline + Amazon Bedrock 環境

Amazon Q Developer 環境

リソースまとめ

リソースタイプClineAmazon Q Developer備考
S3バケット3個1個(プレフィックスで分離)Clineは個別バケット、Q Devは単一バケット
Lambda関数2個1個Clineはメイン処理とSlack通知を分離
IAMロール2個1個Lambda関数数に対応
SNSトピック1個1個同じ
CloudWatch Logs グループ2個1個Lambda関数数に対応
  • どちらが良いか?
    Clineの構成は、Slack通知機能を別Lambdaとして分離しており、後々の修正や拡張がしやすそうだと感じました。また、S3バケットを機能ごと(入力用、出力用、アーカイブ用)に分けることで、それぞれに異なるライフサイクルポリシーやアクセス制御を柔軟に設定しやすくなっています。
    一方、Amazon Q Developerの構成は、よりシンプルで管理対象のリソース数が少ないというメリットがあります。小規模なシステムや、迅速なプロトタイプ開発によっては、こちらのシンプルなアプローチの方が適している場面もありそうです。
    個人的には、将来的な拡張性やメンテナンス性を考慮すると、Clineが提案したアーキテクチャの方が優れていると感じました。

4. コスト面での比較

  • Cline + Amazon Bedrock: 約10ドル弱(今回のチャットでのやり取り)
  • Amazon Q Developer: Pro Tierのサブスクリプション費用(月額$19/ユーザー ※2025年10月時点)

Clineは使用量に応じた従量課金のため、今回のような短期的な検証には向いているかと思います。一方、Amazon Q Developerは定額制のため、継続的に開発を行うチームにとってはコスト管理がしやすいというメリットがあります。
Cline のような従量課金の場合はコスト面にも意識を向ける必要があり、精神的な負担もかかることから、コスト面では Amazon Q Developer の方が大きなアドバンテージがあると感じました。

ブラックボックスシステムの移行での使い分け

Clineを選ぶべきケース:

  • 仕様が不明で、AIと対話しながら要件を掘り起こす必要がある場合
  • 複数の代替案を検討し、アーキテクチャ図を見ながら判断したい場合

Amazon Q Developerを選ぶべきケース:

  • ある程度仕様が分かっており、実装を加速させたい場合
  • 継続的に使用するため、コストを固定したい場合

実際の移行プロジェクトでは、両方を併用するのも有効です。例えば、初期の調査・設計フェーズはClineで丁寧に進め、実装フェーズはAmazon Q Developerでチーム全体が使う、といった使い分けが考えられます。

AI導入によるシステム品質の向上

今回の移行は、単に古いコードを新しい環境に移しただけではなく、AIを活用したことで、システム全体の品質が向上しました。

1. セキュリティと拡張性 

TerraformによるIaC(Infrastructure as Code)でインフラがコード化され、Lambdaベースのサーバーレスアーキテクチャになったことで、システムの拡張性が向上しました。

​2. 保守性(脱ブラックボックス)

AIを使う大きなメリットは、仕様調査やドキュメント作成といった手間のかかる作業を一気に効率化できる点です。今回の検証でも、AIとの対話を通じて以下の設計図や計画書が自動的に生成されました。

  • 設計図:Mermaid形式のアーキテクチャ図や、各コンポーネントの役割分担
  • 実装計画書:具体的な作業タスクと、それぞれの完了条件

ただし、仕様調査の工数を削減できる点は大きなメリットですが、本番環境の様な複雑な環境においても同様の効果が見込めるとは限らないため、あくまでたたき台として活用するのがよいかと思います。

今回の検証における工数について

​今回AIが行った「既存コードの分析」から「コード実装」、「ドキュメント作成」までの一連の作業を、もし人間がすべて手作業で行った場合、およそ3〜5営業日(約17〜38時間)程度の工数が見込まれます。
(個人のスキルに依存して変動するかと思いますので範囲での内訳になりますが、以下の想定です)

分析・要件定義・設計・計画: 5〜12時間
コード実装 (Lambda + Terraform):10〜20時間
​デプロイと動作確認:2〜4時間

​今回の検証では、AIとの対話や試行錯誤を含めても、これらの作業を半日程度で完了させることができました。もちろん、これは単純な比較であり、AIが生成したコードのレビューには別途工数が必要ですが、開発の初期段階における時間短縮の効果は大きいと言えると思います。

3. 追加機能による運用性の向上

元のスクリプトは、エラーが発生してもコンソールにログを出力するだけでしたが、新しいアーキテクチャには、Amazon SNSを利用したエラー通知の仕組みが組み込まれています。これにより、処理が失敗した際には即座にアラートが送信され、これにより、問題が起きてもすぐに対応できます。

さいごに

​今回の検証を通して、AI開発支援ツールがレガシーシステムの移行やブラックボックスの解消に一定の効果を発揮してくれる可能性があると感じました。
AIは、システムの仕様調査やドキュメント作成の時間を大幅に短縮し、開発効率を加速する強力なツールとなり得ます。ただし、そのコードや成果物の妥当性や、品質を保証するには人間の最終判断が不可欠だと思います。
この記事が、同じようにレガシーシステムの移行で悩んでいる方の参考になれば幸いです。

ニフティでは、
さまざまなプロダクトへ挑戦する
エンジニアを絶賛募集中です!
ご興味のある方は以下の採用サイトより
お気軽にご連絡ください!

ニフティに興味をお持ちの方は
キャリア登録をぜひお願いいたします!

connpassでニフティグループに
参加いただくと
イベントの
お知らせが届きます!