Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Kiro Did It! – From Prompt to Customer API Using Vibe Coding!

2025年09月21日に「Dev.to」が公開したITニュース「Kiro Did It! – From Prompt to Customer API Using Vibe Coding!」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Kiroのvibe coding機能は、自然言語の指示でAWS上にAPI Gateway、Lambda、DynamoDBからなる顧客検索APIを素早く構築する。手動設定なしで短時間で動くプロトタイプを実現し、SAMで簡単にデプロイできるため、効率的な開発を可能にする。

ITニュース解説

このニュース記事では、AWS Kiroというツールに搭載された「vibe coding」という機能を使って、顧客情報を検索・管理するAPI(Application Programming Interface)を非常に素早く作成する過程が解説されている。システムエンジニアを目指す上で、効率的な開発手法や新しいツールを知ることは重要だが、このKiroのvibe codingはその一例と言える。

まず、Kiroのvibe codingがどのようなものかから説明しよう。従来のシステム開発では、統合開発環境(IDE)と呼ばれるツールを使い、プログラマーがコードを一行一行書いたり、設定ファイルを細かく記述したりするのが一般的だった。しかし、vibe codingでは、開発者がやりたいことを「自然言語」、つまり普段私たちが話すような言葉でKiroに伝えるだけで、Kiroが自動的に必要なコードや設定ファイルを生成してくれる。これはまるで、プログラミング言語の知識がなくても、コンピュータに直接指示を出せるような感覚に近い。特に、試作品(プロトタイプ)を作りたい場合や、まだ要件が固まっていない段階でアイデアを素早く形にしたい場合に、この機能は非常に強力な味方となる。手作業でAWS(Amazon Web Services)の様々なサービスを連携させる手間が省けるため、開発スピードが格段に上がるのだ。

今回、記事の筆者がKiroのvibe codingを使って作成したのは、「Customer Lookup API」というものだ。これは、顧客のデータを登録したり、検索したり、更新したり、削除したりできるWebサービスのようなものだと考えると良い。具体的には、以下のAWSサービスが連携して動作する。

  1. API Gateway: インターネットからのリクエストを受け付ける「玄関口」のような役割を果たす。顧客情報を取得したい、登録したいといったリクエストは、まずここを通る。このAPIは「REST API」という形式で構築されており、GET(取得)、POST(作成)、PUT(更新)、DELETE(削除)といった基本的な操作(CRUD操作と呼ばれる)に対応する。例えば、「GET /customers」ですべての顧客リストを取得したり、「POST /customers」で新しい顧客を登録したりできる。

  2. Lambda関数: API Gatewayで受け付けたリクエストに応じて、実際の処理を行う「サーバーレス」なプログラム実行環境だ。サーバーの管理を意識することなく、必要な時だけプログラムが実行され、その分だけ料金が発生するという特徴がある。今回はPythonで書かれたLambda関数が、API Gatewayからのリクエストを受け取り、データベースへのデータの読み書きを担う。

  3. DynamoDBテーブル: 顧客データを保存するための「データベース」だ。高速でスケーラブルなNoSQLデータベースであり、今回は「custId」(顧客ID)、「Name」(名前)、「State」(州)、「Zipcode」(郵便番号)というシンプルな構造で顧客情報が格納される。

  4. AWS SAM(Serverless Application Model): これらのサーバーレスアプリケーション(API Gateway、Lambda、DynamoDBなど)を簡単に開発し、AWS上にデプロイ(配置)するためのフレームワークだ。SAMテンプレートという設定ファイル(YAML形式)に、どのサービスをどのように構成するかを記述することで、手動で一つ一つ設定するよりも効率的にインフラを構築できる。

今回の開発の目的は、完成度の高いプロダクションレベルのAPIをすぐに作ることではなく、アイデアをどれだけ早く動くプロトタイプにできるかを実証することにあった。認証機能や監視機能、パフォーマンスチューニングといった高度な機能は、後から追加することを前提としていたのだ。

実際の開発手順は非常にシンプルだ。

ステップ1: Vibe Codingセッションの開始 Kiroを開き、vibe codingモードで「顧客検索APIをREST APIとして構築してほしい。API Gatewayでホストし、Lambda関数と統合し、データはDynamoDBテーブルに保存する。テーブルはcustId、Name、state、zipcodeの4つのフィールドを持つシンプルなものにする。テストフレームワークは不要で、まず素早く動くプロトタイプが欲しい。AWS SAMを使ってこのソリューションを構築・デプロイしたい。」というように、自然な言葉でプロンプトを入力する。この時、テストコードは不要であることや、AWS SAMを使いたいといった具体的な要望も伝えている。

ステップ2: Kiroによるプロジェクトファイルの生成 プロンプトを入力すると、Kiroは数秒のうちに、必要なすべてのファイル――SAMテンプレート(template.yaml)、Lambda関数のPythonコード(app.py)、DynamoDBテーブルの定義、そしてAPIテスト用のサンプルJSONイベント――を自動生成する。開発者はコードを書く手間が大幅に省かれる。

ステップ3: 生成されたLambda関数のレビュー Kiroが生成したLambda関数のPythonコードを確認する。このコードはDynamoDBとの連携も組み込まれており、リクエストの種類(GET, POSTなど)に応じて適切なデータベース操作を行うように記述されている。

ステップ4: SAMを使ったビルドとデプロイ 生成されたファイルに問題がないことを確認したら、AWS SAMのコマンドを使って、このAPIをAWS上に展開する。「sam build」コマンドでLambda関数などをパッケージ化し、次に「sam deploy」コマンドでAWSアカウントにAPI Gateway、Lambda関数、DynamoDBテーブルといったリソース全体を実際に構築する。これにより、手動でAWSマネジメントコンソールから各サービスを設定する煩雑な作業が不要になる。デプロイ後、AWSコンソールで確認すると、期待通りにREST API、Lambda関数、DynamoDBテーブル、そして全体のスタックが作成されていることが確認できる。

ステップ5: APIのテスト デプロイが完了すると、APIの公開エンドポイント(URL)が生成される。このエンドポイントを使って、実際にAPIが動作するかどうかをテストする。記事ではまず、curlというコマンドラインツールを使って、POSTリクエストを送信し、顧客データ(custId:CUST001, name:Girish, state:NY, zipcode:10001)をデータベースに登録している。次に、PostmanというAPIテストツールを使って、GETリクエストを送信し、登録した顧客データが正しく取得できることを確認している。このようにして、作成したAPIが期待通りに機能していることを検証するのだ。

リソースのクリーンアップ 開発やテストで一時的に作成したAWSのリソースは、不要になったら速やかに削除することが重要だ。AWSは利用したリソースに対して料金が発生するため、削除し忘れると無駄なコストがかかる可能性がある。SAMでデプロイしたリソースは、「sam delete」コマンド一つで、関連するすべてのリソースを一括して削除できるため、管理が非常に簡単である。

この事例は、Kiroのvibe codingがいかに効率的に、そして手軽に、データベースと連携するフル機能のCRUD(作成・読み取り・更新・削除)REST APIのプロトタイプを構築できるかを示している。単にAPIが生成されるだけでなく、AWS SAMテンプレートも自動で作成されるため、コードとしてのインフラ(Infrastructure as Code)として管理され、再現性や更新・削除の容易さも確保される。Generative AI(生成AI)の進化は、このようにコードの生成方法を根本的に変えつつあり、Kiroのようなツールは開発プロセスをさらに簡略化する。一方で、生成されたコードのデバッグが複雑になる可能性といった課題も指摘されているが、Kiroの他の機能(仕様駆動開発や設計ドキュメント生成など)がそれらの課題に対応できるよう設計されていることも示唆されている。

このようなツールはまだ進化の途上にあるが、システムエンジニアを目指す初心者にとっては、アイデアを迅速に形にするための強力な手段となり、未来の開発スタイルを理解する上で非常に参考になるだろう。

関連コンテンツ

関連IT用語