はじめに
こんにちは!アプリケーション開発コンサルタントのしょぼちむです。今回は、AWS が提供する生成 AI アシスタント「Amazon Q Developer」をターミナルから利用できる Amazon Q Developer CLI をご紹介します。このツールは、ターミナル上で生成 AI と対話しながらコードを書いたり、インフラを構築したりできる、開発者にとってとても頼もしいアシスタントです。
今回は実際にこのツールを使って、自分自身はプログラミングを一切せずに、Amazon Q Developer CLI との対話だけで簡単な「勤怠管理システム」を構築してみました。その体験をベースに、Amazon Q Developer CLI の特徴や活用のポイントをお伝えします!
「ターミナルで完結する開発体験ってどんな感じ ?」「本当に効率上がるの ?」そんな疑問を持つ方の参考になれば嬉しいです !
ご注意
本記事で紹介する AWS サービスを起動する際には、料金がかかります。builders.flash メールメンバー特典の、クラウドレシピ向けクレジットコードプレゼントの入手をお勧めします。
builders.flash メールメンバー登録
Amazon Q Developer CLI とは
勤怠管理システムを作ってみた
今回は、勤怠の打刻ができるシステムを、プログラムを全く書かずに自然言語で指示するだけで作ってみました。実施した操作を説明しながら、Chat 機能の特徴をご紹介していきます !
なお、環境には事前に Amazon Q Developer CLI をインストールしています。インストール手順は こちら をご確認ください。
チャットの起動
ターミナルを開き、 q chat コマンドを実行すると対話型に切り替わり、生成 AI との対話が始まります。
通常の Chat の機能では、ファイルを変更したりコマンドを実行したりと、何か変更を加える操作の前には、安全のために「実行してもいいか」の確認のステップが入ります。今回は開発スピードを上げたかったので、--accept-all オプションをつけました。このオプションをつけることで、毎回の確認をスキップし、生成 AI がどんどんファイルの変更とコマンドの実行を進めてくれるようになります。q chat で起動して対話が始まったあとでも、 /tools trustall と入力することで、対話途中での切り替えが可能です。ただし、このオプションを有効にしていると、AI が提案したコマンドが即時実行されるため、操作対象によっては意図しない影響を及ぼす可能性があるので、注意してください。安全性を重視する場合は、--accept-all は使わず、通常モードで確認しながら進めることをおすすめします。
チャットの起動コマンド
q chat コマンドを実行すると対話型に切り替わり、生成 AI との対話が始まります。
$ q chat --accept-all
# 省略形
$ q chat -a
プロンプトの詳細
最初に入力したプロンプトはこちらです。
> 出勤・退勤のボタンを押したら記録されて、一ヶ月の勤怠の一覧が見られるようにしてほしい。ダミーデータを入れてほしい。構築はすべて CDK を使い、AWS 環境にデプロイして。AWS プロファイルは chat-demo を使って。最終的にできたサイトの URL を共有して。
細分化すると、以下を指示しています。
作りたい機能 : 出勤・退勤のボタンを押したら記録されて、一ヶ月の勤怠の一覧が見られるようにしてほしい。
データの情報 : ダミーデータを入れてほしい。
デプロイ方法 : 構築はすべて CDK を使い、AWS 環境にデプロイして。AWS プロファイルは chat-demo を使って。
構築後の情報 : 最終的にできたサイトの URL を共有して。
ざっくりとした指示ですが、この指示で CDK のプロジェクトを作成し、以下の構成のシステムを構築してくれました。何も指示しなくてもサーバーレスの構成が選択されています。また、サイトの公開に Amazon CloudFront が使われており、AWS のベストプラクティスに合わせた構成となっています。
バックエンド : AWS Lambda + Amazon API Gateway
データベース : Amazon DynamoDB
インフラ管理 : AWS CDK による IaC
ホスティング : Amazon S3 + Amazon CloudFront による静的配信

環境へのデプロイ
ローカルでのプロジェクト構成が完成した後は、CDK を使って環境へ自動的にデプロイを行ってくれました。
最初に「CDK を使って AWS 環境にデプロイして」と伝えていただけで、具体的なコマンドやデプロイ先のリソース構成などは一切指定していません。それにもかかわらず、 cdk deploy コマンドが CLI 上で自動的に実行され、IAM 権限やリソース間の関連付けまで含めて、必要なリソースを構築してくれました。

トラブルシューティング
最初のデプロイでは、Lambda 関数と DynamoDB 間の連携に問題があり、打刻データが表示・保存されていませんでした。このような場面では、通常は Amazon CloudWatch Logs を開いてエラーの原因を特定し、設定やコードを手動で見直していく必要があります。
そこで、以下のように追加での指示を出しました。もちろん日本語での指示しかしていません。
> CloudWatch の Log を取得してエラーが出てないかを確認して
自然言語で指示するだけで、CLI は Amazon CloudWatch Logs に保存された、対象の Lambda 関数のロググループとログストリームを確認し、エラーのスタックトレースを抽出・分析してくれました。 さらに、分析結果から原因となる設定の修正をし、修正後は再度 cdk deploy が実行されて問題なく動作するようになりました。

作業完了 !
作業が終わった後に、成果をまとめて報告してくれました。本番のアプリ開発では必ず人がレビューする必要があるので、こういった報告はレビューの助けにもなります。
最初に指示しておいたサイトの URL についても教えてくれています。最初から最後までエディタをまったく開かずに作業が完了しました !

完成した勤怠管理システム

まとめ
Amazon Q Developer CLI の Chat の機能は、自然言語での対話を通じて開発を支援してくれるツールです。AWS のベストプラクティス を理解しており、ターミナル上でローカルや AWS の環境と連携しながら動くことで、開発中のさまざまな作業を助けてくれます。
今回はあえて、仕様書やファイルの準備なしで、すべてのやりとりを対話ベースで進めてみました。事前に準備をしなくても、対話の中でコードや構成がどんどん出来上がっていくという手軽さは、Amazon Q Developer CLI の大きな魅力です。
一方で、開発が進むにつれて要件が複雑になったり、関係者が増えたりすると、対話だけで構成や仕様を共有するのは難しくなってきます。そんな時は、プロジェクトの方向性や仕様をあらかじめ README.md などの Markdown ファイルなどにまとめておくのがオススメです。そうすることで、Chat 機能がその内容をコンテキストとして自動的に読み取ってくれるため、指示の解釈がより的確になり、手戻りの少ない開発につながります。開発初期のプロトタイピングにはチャットでの対話、詳細な構成を詰める段階では明示的な仕様ファイルといったように、段階に応じて使い分けていくことが、効果的な活用につながると感じました。
まずは簡単なプロジェクトで試してみるだけでも、「会話で開発が進む」新しい体験を味わっていただけると思います。
ぜひ、Amazon Q Developer CLI をインストール して、日々の開発に取り入れてみてください !
筆者プロフィール
宇賀神 みずき (しょぼちむ / @syobochim)
アマゾン ウェブ サービス ジャパン合同会社
デリバリコンサルタント
SIer でのアプリケーション開発者を経験後、2020 年にパートナーソリューションアーキテクトとして AWS Japan に入社し、2024 年にデリバリコンサルタントへ異動。主に開発者の方に向けてシステム開発のご支援を担当しています。初心者向けの『いちばんやさしいGit&GitHubの教本』という本も書きました。
インドア派でしたが、最近は子どもと一緒に毎週公園で日を浴びています。

Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages