Column

コラム

  • 【テックコラム】Amazon Q CLIでBIアプリケーショ...

【テックコラム】Amazon Q CLIでBIアプリケーションを作ってみた

DataCurrentの大塚です。

AI技術の進歩により、開発現場でもAIアシスタントの活用が注目されています。先日、AWSさんにAmazon Q Developerについての勉強会を開催していただく機会がありました。 AWSが提供するAmazon Q Developerは、AWS環境に特化したAI開発アシスタントとして期待されています。

Amazon Q CLIを使って模擬的にアプリケーションを作成してみましたので、その際に感じたことについてお話しします。

Amazon Q CLIとは

Amazon Q CLIは、コマンドライン上でAmazon Q Developerと対話できるツールです。従来のチャットベースのAIアシスタントとは異なり、実際にファイルの作成・編集、コマンドの実行、AWS環境の操作まで行うことができる点が特徴です。

特に注目すべきは、AWS環境との深い統合です。既存のAWSリソースの情報を取得し、それに基づいた適切な提案や実装を行うことができるため、AWS上での開発において非常に強力なパートナーとして期待できます。

デモアプリを作ってみる

AWSならではの部分を利用した開発を想定した際に一番最初に思いついたのが、S3 + Lambdaでのアプリケーション開発でした。 そこで、S3 + Lambdaを利用したWebアプリケーションを作ってもらうことにしました。

■ 要件の指示

Amazon Qに対して最初は

S3 + LambdaでWebアプリケーションを作成します。インフラはTerraformで管理するようにしてください

といった指示を与えました。

次にどんなアプリを作りたいか聞かれたので「BIツール」とだけ答えたのですが、いきなり売上管理のためのBIツールを作ろうとしていました。

そのままではあまり面白くなかったので、「従業員の情報を管理するためのBIツール」と要件を追加してみました。(もっと特殊案件を想定できればよかったです…)

■ 開発のプロセスと成果物

開発プロセスに入ると、Amazon Qはほとんど自分で考えて開発してくれました。 Amazon Qの質問には適切には答えていましたが、具体的な実装方法については触れず、進め方の流れのみを指示しました。

結果として作成されたアーキテクチャは、以下のような構成でした。

インフラ構成:

  • CloudFront: CDN配信とHTTPS強制
  • S3: 静的ウェブサイトホスティング(暗号化・バージョニング有効)
  • API Gateway: RESTful API エンドポイント
  • Lambda: サーバーレスバックエンド処理

技術スタック:

  • バックエンド: Node.js 18 + AWS Lambda
  • フロントエンド: React 18 + React Router DOM + Recharts
  • 認証: APIキー認証方式
    ※ここはユーザー認証を作ろうとしていて、面倒そうだったのでAPIキー認証方式にするよう指示しました。

セキュリティ設定:

  • S3バケットのパブリックアクセスブロック
  • CloudFrontからのみS3アクセス可能(Origin Access Control)
  • HTTPS強制通信
  • Lambda関数の最小権限IAMロール設定

特に指示していないのにもかかわらず、セキュリティにも配慮したベストプラクティスな構成になっているように思います。

作成されたBIツールについても「ダッシュボード機能」から高度な分析のための機能まで実装され、想像以上に充実していました。また、コードの分割や要所のコメントアウトの追加もされており、読みやすさについても考慮された作りでした。

デプロイの実行

作成されたコード的にも良さそうな感じでしたので、デプロイを指示しました。 自動でTerraformコマンドを実行し、デプロイを実行してくれました。

しかし、そこで問題が発生します。

使用しているIAMにはAPI Gatewayの作成権限がなく、バックエンドのデプロイができなかったのです。 Amazon Qはいくつかの方法でデプロイを試し、エラーメッセージからAPI Gatewayを作成できないことを認識すると、即座にクライアント側にモックを作成してBIツールとしての動きは見られるようにしてくれました。

開発能力の評価

Amazon Q CLIは3~5年程度の開発経験を持つエンジニア相当程度の開発能力を有していそうだと感じました。

特に具体的な指示をしなくともベストプラクティスに則ったアーキテクチャで設計し、一般的な知識を踏まえたUIを作成してくれました。 これが人間のエンジニアとの開発であった場合、事前の要件定義はもっと細かくやっていたでしょうし、システムの作成にも時間を要していたでしょう。 今回のAmazon Q CLIを使った開発はデプロイまで1時間程度でした。 今回はAmazon Qが作成したものは一通り確認していたので、これを省けばもっと早く行えるでしょう。 この短時間でデモとしては満足できそうであり、保守性も良いものができあがったことには驚きました。

まとめ

Amazon Q CLIを実際に使用してBIアプリケーションを開発してみました。 AWSはもちろん、アプリケーションの作成にもしっかりと使え、システム開発におけるパートナーとしての可能性を非常に感じられた経験となりました。

Amazon Q CLIを使っていて気になった点としては、要望を引き出したりせずにどんどん作ってしまう傾向があるかなと思います。 AI開発において作り直しは手間にはならないですが、生成AIは既にあるものに引きずられる傾向はあるので、要件定義や開発の進め方についてはしっかりとハンドリングしてあげる必要があるのかなと思います。 その点については、Amazon Q CLIはしっかりとしたルール定義の機構が存在するのでAI駆動開発のハンドリングはしやすいのではないかなと思いました。

また、Amazon Q CLIの一番の特徴はやはりAWS環境との深い統合です。

下図のようにAWS内のリソースの情報を自動で認識し、一覧を作ってもらうことも可能です。したがって、開発者のみならず運用者や管理者などAWSに関わるさまざまな人にとって非常に良い体験になるのではないかと思います。

AWS内のリソースの情報を自動で認識

最後に

自社に専門人材がいない、リソースが足りない等の課題をお持ちの方に、エンジニア領域の支援サービス(Data Engineer Hub)をご提供しています。 お困りごとございましたら是非お気軽にご相談ください。

本件に関するお問い合わせは下記にて承ります。
株式会社DataCurrent
info@datacurrent.co.jp

人気のコラムランキング

PICK UP

企業のDX推進におけるダッシュボード内製化について

DXmarketingPICK UP コラムダッシュボード内製化

企業のDX推進に向けた人材教育支援について

GA4marketingPICK UP コラム内製化

【データプライバシーコラム】電気通信事業法改正の解説(2022年7月時点)

CMPPICK UP コラムデータプライバシーデータプライバシーコラム個人情報保護

CMP導入時の注意点

CMPPICK UP コラムデータプライバシーデータプライバシーコラム個人情報保護

TOPへ
戻る