こんにちは。クラウド活用推進担当の植草です。
Amazon Q Developer CLI を使っていますか?
最近やっと本ツールを触ったのですが、まだchat機能しか触っていないにもかかわらず、あまりの楽しさに感動したのでぜひ多くの人に使ってみてもらいたいと思ったので私なりに共有できればと思います!
Amazon Q Developer CLIは、AWSが提供するAI搭載のコマンドラインツールです。
自然言語での質問に対して、適切なAWSコマンドやソリューションを提案してくれる革新的なツールとして注目を集めています。
正直、私の想像を超えた便利さです。
感動ポイントをいくつか紹介したいと思います。
ちなみに、Amazon Q Developer CLI だと名前が長いので、勝手に"Q CLI"と略させていただきます。
インストールはとても簡単です。macOSやLinux上で動きますが、WindowsユーザーはWindows Subsystem for Linux (WSL) を使えばインストールできます。
インストール方法については、いろいろな人が記事を書いているのでそちらを見ていただくのがよいかなと思いますが、コマンド数回でインストールが完了する手軽さです。
また、Q CLIは有料版と無料版がありますが、無料版でも十分に便利さを実感できます。というか無料でここまでできていいの?というレベルです。
まずは試してみることを強く強くお勧めします!
一応、公式ドキュメントのリンクを記載します。
これまでの大規模言語モデル(LLM)を使用したチャットアプリなどを使って簡易なアプリケーションを実装する場合は、非常に多くのやり取りが必要でした。
例えば、
というような工程を繰り返していました。
ですが、Q CLIに「こういう要件のアプリをAWSで実装して。動作確認もよろしく。」とお願いするだけで、設計、開発、デプロイ、テストまで自動でやってくれます!
途中でエラーが発生しても、自分でエラー箇所を修正して再デプロイしてくれます!
しかも、指示を出していないのに、削除用のシェルスクリプトを作成したり、月額の想定コストを教えてくれたりと、めちゃくちゃ気の利く優秀なパートナーみたいなことをしてくれます。
アプリの開発やデプロイを行うにあたって、pythonやvenvといったパッケージのインストール、bootstrapなどやることが色々とあります。要件が増えれば増えるほどこれらの手間も増えます。
ですが、Q CLIに「パッケージなどは必要に応じてインストールして。」とお願いするだけで、必要なパッケージを調べてインストールするなど環境を準備してくれます!もちろんエラーメッセージが出ても自分で解決してくれます!
"必要なものを調べて環境を整える"というこの作業は、慣れないうちは(慣れている人も)とても苦労するところかなと思いますが、Q CLIならぜんぶお任せです。
AWS環境は、AWL CLIや、CloudFormation、AWS CDK、Terraformなど様々な方法でデプロイすることができますが、自分の希望する方法をお願いすれば、それに沿ったシェルスクリプトやテンプレートを作成、デプロイしてくれます!
インフラのコード化(IaC)はベストプラクティスのひとつで、再現性、拡張性に非常に優れていますが、最初の学習コストは少なくないです。また、サービスや機能が増えていくので公式ドキュメントを確認しながら作成してもデプロイでエラーになったり想定の動作にならなかったりと試行錯誤に時間がかかります(その時間も楽しいのですが)。
それをQ CLIにお願いするだけでパパっと作成・デプロイ・エラー改修をしてくれるので、例えば初めて使うサービスのコードを書くときにまず動く状態まで作ってもらってそこから手直しすることで学習コストを大幅に下げることができます。
留意点としてひとつ。デプロイまでお任せすると思考のステップが多くなり処理がすべて完了するまで時間がかかることがあります。
サービスのアーキテクチャによっては約30分程度処理が続くこともありました。
ですが、自分で手を動かすよりも圧倒的に早いですし、処理が全部終わるまでの間は他のことをしていればよいのであまり気になりません。
いざ作成した環境にどのようなリソースがあるのか、どのような構成になっているのか知りたいですよね?でも自分で確認しようにも十分な知識がないからどうしよう?ってなることありませんか?
もちろん、Q CLIにお願いすれば解決です。
例えば、「作成したリソースのパラメータをxlsx形式で出力して。S3やCloudFrontなどサービス種別毎にシートを分けて。」とお願いすれば、ざっくり設定値をxlsx形式で作成してくれます。内容に不満があれば、追加指示をすればそれっぽい感じに答えてくれます。
構成図も作成してくれます。例えば「今回作成したワークロードの構成図をdraw.io形式で作成して。」とお願いすれば、ざっくり構成図を作成してくれます。リソースが足りなそうであれば、追加指示をすれば増やしてくれます。
ただ、構成図についてはまだまだかなという印象です。ですが、自分で一から作るよりも、Q CLI様が作成したものをベースに手直しすることで時間の短縮になります。
ほかにも、IaCコードの丁寧な解説付きのドキュメントを作ってもらったり、工夫次第でやれることはたくさんあります!
個人的にCLIの最大の利点ですが、どのような思考でどのようなことを実行して、結果どうだったのか、それに対してどう考えてどうしたのか、といった一連のログが標準出力、エラー出力としてリアルタイムでみることができます。
これにより「Q CLIが何をされているのか分からない」といったことがグンと減って、想定外のことをやっていてもあとから指示して修正してもらうことができます。
また、ログをファイルに出力させておくことで、エビデンスとして保管することもできます。←これ大事!
chat機能だけでも、ぱっと思いつく効率化ポイントがいくつかあります。
プロジェクト初期に簡易な実現可否の確認やPoCを行う場合、どのようなAWSサービスがあるのか、どのサービスを組み合わせると実現できそうなのかなどの調査が必要となります。
また、PoC用のアプリを作成するための各種知識・調査が必要です。
また、必ずしも十分な知識を持っているメンバーがアサインできるかというと難しいことがよくあります。
Q CLIを使えば、要件を基にアーキテクチャを提案して環境をデプロイしてくれます。これによって、実現可否の調査やデプロイ方法の調査にかかる時間を大幅に短縮することができます!
IaCでの初めてのAWSサービスを構築する際は、前述のとおり試行錯誤をするので多くの時間がかかることがあります。
Q CLIでは指示をするだけでコードの修正からデプロイまですべて行ってくれるので、サイクルの速度が上がり、大幅に工数を短縮することができます!
ワークロードの運用では、月次レポートの作成、インシデント対応、コスト最適化などのカイゼン検討、様々なことを行いますが、Q CLIでこれら作業を効率化できます。
Q CLIはワークロードのリソース状況やメトリクス情報を取ってくるので、例えば「CloudFormation 〇〇 でロールバックが発生した原因と対処方法を教えて。」と入力すると、CloudFormationのログなど様々な情報を自動で収集して、原因を分析、いくつかの解決策を提案してくれます!
すべてAWSの構築経験がなくても、セキュアなアプリケーションを自然言語だけで数十分でデプロイできます!
簡単なワークロードであれば全然問題ありませんが、少し複雑な要件を指示するとちゃんと期待通りの動きになるまでのやりとりが長くなります。
また、全部おまかせ(trust)にすると、修正時に容赦なく環境を削除したり、たまに改悪でサービスが動かなくなることなどがちょいちょい発生するので、
まだ、本番ワークロードでガリガリ使うのは難しいかなと思いますが、そこを理解して使えば十分に役になってくれます。
Amazon Q Developer CLI 使ってみたくなりましたでしょうか!?
chat機能だけでも、AWSに関するあらゆる作業が効率化できることが分かっていただけたかなと思います。
個人的にはCLIで操作できるというのがめちゃくちゃ好みに刺さってとにかく楽しいです!
今後は他機能や有料版機能についても使ってみようと思いますが、皆さんもぜひ使いこなして効率化しましょう!