AI駆動開発でデプロイまでやらせる

背景や目的


前回は、AI駆動開発による新規開発に取り組みました。AI(Claude)に設計書作成、デプロイ手順書作成、PG作成を依頼し、ミニアプリを作成しました。
(記事はこちら:AI駆動開発で新規開発にチャレンジ)

今回はデプロイもAIにやらせました。その実行内容をご紹介します。
ご参考になれば幸いです。

今回確認すること


AIにアプリ作成だけでなく、デプロイまでやらせられるかを確認します。
Webアプリをクラウド上で動かす構成は、一般的には以下のような方法があります。
・サーバーレス構成
 S3、CloudFront、Lambda、DynamoDB、RDSなどを組み合わせて動かす構成。
・コンテナベース構成
 DockerコンテナをECS/FargateやApp Runnerなどで動かす構成。
・EC2によるサーバ構成
 EC2上にWeb/APサーバを構築して動かす従来型の構成。
参考:Google検索およびChatGPT5.5での結果

今回は、
ECR+Lambda(コンテナ版)
を実行環境とします。コンテナを使いサーバーレスで実行させます。

この環境でアプリが動作する事を確認します。

検証条件と作業手順


今回は以下の条件で進めます。

  1. 利用ツール
     Claude Codeを利用
  2. 利用AIモデル
     Claude Sonnet 5を利用
     ※最新モデルで、Opusより低コスト
  3. アプリ
     Hello Worldアプリ
     ※今回はデプロイ検証が目的のため、アプリ機能は単純化します。
  4. アプリの仕様
     Lambda関数URLにアクセスすると、「Hello World」を表示。DBは無しです。
  5. 実行環境
     AWS Lambda(コンテナ版)上でWebアプリとして動作

作業は、以下の流れで進めます。
1. Claudeの準備
2. アプリのPG作成
3. デプロイ
4. 動作確認
2〜3の作業は、Claude Codeに順番に依頼しながら進めます。

1.Claudeの準備


Desktop内でClaude Codeを使うために、ClaudeDesktopアプリをインストールします。
なお、Claude Code/Coworkの利用には、Proプランへのアップグレードが必要です。

インストール手順は以前の記事と同じなので、そちらを参考にしてください。→参考記事:AI駆動開発で製品改修を試した

インストールが完了後、起動させると以下の画面が表示されます。

・左側メニューで「Code」を選びます。

上の画面が表示されれば、Claudeの準備は完了です。

※参考までに、デプロイ作業にはClaude Coworkは使えないようです。
本人に確認した結果、Cowork環境ではDockerデーモンやAWS CLIを利用できないため、デプロイ作業は実施できないとのことでした。

それでは、アプリのPG作成に進みます。

2.アプリのPG作成


アプリは簡単に済ませたく、Hello Worldレベルのものを用意します。いちおう、その作成もClaudeにさせますが、設計書等は今回は割愛します。

アプリ作成に入ります。まず、Claude Codeで開発フォルダを参照できるようにします。
・Claude Desktopを起動し、Claude Codeの画面を開きます。

・入力欄の上部にあるフォルダアイコンを押し、「フォルダを開く..」を押します。

・事前で用意した開発フォルダ「Hello Worldアプリ」を選択します。

・ワークスペースを信頼する承認ボタンをクリックします。

開発フォルダを操作できる状態になりました。

次に、PG作成の指示を出します。
・以下のプロンプトを入力して、「enter」キーで実行します。

Hello Worldアプリを作成してください。
仕様は以下の通りです。
・Lambda関数URLからアクセスすると、ブラウザに「Hello World」と表示する
・実行環境はAWS Lambda(コンテナ版)を想定する
・コンテナイメージはECRにセットする
まずPGファイルだけ作成して下さい。デプロイは未だしないでください。

処理が実行される中で、app.py、Dockerfileなどファイルへの書き込み許可を求められました。
・確認しながら、それぞれ「一度だけ許可」を押して進めました。

最後に、作成されたPGをローカルで動作確認するか?と聞かれたので、
・以下の確認依頼に対し、許可を押しました。

実際にはビルドが必要だったり、そのためのDockerをインストールしたり、と色々とやってくれました。
・何度か確認依頼に応じ、毎回「一度だけ許可」を押しました。

・そして最後に、起動したからアクセスして良いか?と聞かれ、許可しました。

そして、
statusCode:200 で「Hello World」が返ってきた
と、Claudeから報告がありました。

アプリ作成はこれで完了!

3.デプロイ


いよいよデプロイを試します。
・デプロイの指示文を入力欄に入力し、実行マークを押しました。

ビルドが完了したため、次にAWS上へデプロイしてください。

数秒後、AWS CLIのインストール状況とAWS認証情報の設定状況確認をやり始めました。
・数回の確認依頼に対し、毎回「一度だけ許可」を押しました。

AWS CLI無し、AWS認証情報未設定、と指摘されました。(その通り!)

AWS認証情報の設定は、機密情報を扱うため、自分で実施するよう案内されました。(履歴に残るリスクがあるとClaudeが言っていました)

次は、Claudeから3点確認されました。
・AWS認証情報:これから自分で設定
・AWSリージョン:ap-northeast-1(東京)
・Lambda関数URLの認証方式:NONE
この内容で進めました。

次は、AWS CLI v2のインストール確認が表示されたため、
・許可して実行しました。

AWS CLIのインストールが完了すると、次にAWS認証情報の設定として「aws configure」の実行が案内されました。

AWS認証情報の設定は、機密情報を扱うため、Claudeには入力せず、自分で設定するために、
・AIと進め方について会話を重ねました。

Claudeから、手元PCのPowerShellを開いて実行するよう案内されました。
・案内に沿ってPowerShellを起動し、AWS認証情報を設定しました。

AWS認証情報の設定後、Claudeに戻って、
・「設定完了しました」と伝えました。
AWS認証情報が正しく登録されたか確認したい、との事で、
・確認依頼に対し、許可を押しました。

AWS認証情報(アカウント、IAMユーザー等)が確認され表示された。
デプロイの順も表示されました。ECRリポジトリから開始ですね。

ECRリポジトリ作成コマンドを実行してよいか?と聞かれ、
・コマンドの実行を許可しました。

ECRリポジトリ作成されました。
次に、Dockerイメージにタグ付けしてECRへプッシュしてよいか確認されました。
・コマンドの実行を許可しました。

数秒後プッシュ完了。これでECRへのプッシュは全て完了です。

ここからは、最後のLambda関連のセットアップとなります。
Lambda実行用IAMロールを作成してよいか確認されました。
・許可して実行しました。

IAMロールが作成されました。
次は、IAMロールにポリシーを追加してよいか確認されました。
・何度か確認依頼に応じ、毎回「一度だけ許可」を押しました。

参考情報ですが、AWS CLIでは、Lambda関数の作成と関数URLの作成は別々のAPIです。
そのため、関数作成後に、URL作成と公開権限の追加をClaudeが別々で実行しました。

Lambda関数を作成コマンドを実行してよいか?と聞かれ、
・許可して実行しました。

Lambda関数の作成後、Claudeが関数URLの作成と公開アクセス権限の追加を進めようとして、
・何度か確認依頼に応じ、毎回「一度だけ許可」を押しました。

関数URLが作成され、アクセス許可を設定しました。

これでデプロイは完了です!

念のため、AWSコンソールの画面でもECRとLambdaを確認します。

両方とも問題なく作成されていました。

最後に、動作確認をします。

4.動作確認


アクセスできるかブラウザで試します。

・手元PCでChromeを開き、URL欄に関数URLを入力してアクセスします。
Hello Worldが表示されるかな。。

表示されました!デプロイ成功!

デプロイの技術考察


Claude Codeは、Windowsコンソール(PowerShell)を操作し、サーバ構築とビルド&プッシュをしてくれました。
実行された内容をそれぞれ具体的に整理しておきます。

ECRリポジトリの作成:
Lambda用イメージの格納先の作成。
→全てClaude Codeが実行(リポジトリ作成)。

DockerイメージのECRへのプッシュ:
コンテナイメージをサーバ上の適切な位置へ設置する操作。
→ほとんどをClaude Codeが実行。以下、実行したもの。
・Dockerイメージのビルド
・Dockerイメージのタグ付け
・ECRへのプッシュ
・これらをするのに必要なソフトウェアのインストール
→残りは人間が実行。
・AWS認証情報の設定
 ※秘密情報を扱う操作は、人間に依頼するのかもしれません。

Lambda関数の作成:
Webアプリの実行環境を作成する操作。
→Claude Codeが全て実行(IAMロール作成、Lambda関数作成)。

まとめ


Claude CodeでPG作成からAWSデプロイまで試し、結果は成功でした。AWSの一般的な実行環境を作成できました。

AI駆動開発は便利ですが、内容を確認せずに進めるとブラックボックス化しやすく、AIが実行しようとしている事を確認しながら進める必要がありますね。やってて少し不安になりました。

とはいえ、PG作成やデプロイ作業が会話で出来るのは便利ですね。ただ、AIがやる事を評価する技術スキルは、やはり要りそうです。

AI ಯುಗದಲ್ಲಿ, ಮಾನವನ ವಿವೇಚನಾ ಕೌಶಲ್ಯಗಳನ್ನು ನಿರಂತರವಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸುವುದು ಇನ್ನೂ ಹೆಚ್ಚು ಮುಖ್ಯವೆಂದು ತೋರುತ್ತದೆ.
(AIの時代こそ、人間側の判断力を磨き続ける必要がありそうですね。)

ご連絡フォーム


フィードバックを是非お願いします。
本記事の方法での問題点や、よりよい方法のアイデアを頂けると大変助かります。

・この記事に関して

・その他のご連絡

DevAIsをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む