Amazon Web Services ブログ
コンソール上の Amazon Q からベストプラクティスを学ぼう
本記事は 2025 年 2 月 7 日に公開された “Learning AWS best practices from Amazon Q in the Console” を翻訳したものです。
AWS を活用するオペレーター、管理者、開発者、その他多くのユーザーは、 AWS コンソールを利用する際に、権限の不足や AWS Lambda のコードのバグなど、さまざまな課題や一般的な問題に直面します。AWSは、コンソールを利用するユーザーが直面するこれらの課題を軽減するために、 Amazon Q をリリースしました。 Amazon Q は、コードの作成、質問への回答、コンテンツの生成、問題の解決、 AWS リソースの管理、およびアクションの実行を支援する、AWS の生成 AI を活用したアシスタントです。 Amazon Q の一機能として Amazon Q Developer があります。AWS マネジメントコンソール、AWS コンソールモバイルアプリケーション、AWS のウェブサイト、AWS のドキュメントサイト、および AWS Chatbot と統合されたチャットチャネルで、Amazon Q Developer と対話しながら AWS サービスについて学べます。Amazon Q Developer に AWS タスクのベストプラクティス、推奨事項、ステップバイステップの手順、および AWS リソースやワークフローの設計について質問できます。
このブログ記事では、Amazon Q Developer を活用して、コンソール上でコードスニペットを生成したり、ワークロードを設計したり、コストを分析したりする方法など、さまざまなトピックをインタラクティブに解決するためのベストプラクティスを紹介します。
前提条件
これらの例を実際に試すには、以下の前提条件が必要です。
概要
以下は、コンソールでの Amazon Q Developer の活用方法の例です:
- 特定の AWS サービスについて学び、それらのサービスを効果的に活用するためのベストプラクティスを探る
- AWS Software Development Kit (SDK) または AWS Command Line Interface (CLI) を使用してタスクを自動化するコードスニペットやスクリプトを生成する
- ワークロードを設計し、最適化する
- コストを理解する
注意 – コンソールの Amazon Q は、その非決定的な性質により、以下の例で示されているものとは異なる出力を生成する場合があります。
開始するには、 AWS コンソールにサインインし、図 1 に示すように右側のパネルの Amazon Q アイコンをクリックして Amazon Q Developer サービスにアクセスします。必要に応じて認証を行います:
図 1: Amazon Q Chat にアクセスする
AWS サービスとベストプラクティスを Q を使って学ぶ
このセクションでは、Amazon Q を活用して AWS サービスについて学ぶ方法と、AWS のサービスを適切に利用するためのベストプラクティスの概要を紹介します。
AWS サービスを学ぶ
初学者でも経験豊富なユーザーでも、Amazon Q を使えば AWS の機能を発見し、必要なときにいつでも役立つ情報を得ることができます。
たとえば、メトリクスに基づいてコンピュートインスタンスを自動的にスケーリングする方法を学びたい場合、コンソールで Amazon Q に質問できます。
サンプルプロンプト:
I need to set a autoscaling group for EC2 instances with this requirement, if
CPU utilization goes above 50% for 5 minutes then it should add new instance
and if CPU utilization drops below 50% for 5 minutes then it should delete 1
instance.
(日本語訳: 以下の要件で EC2 インスタンスのオートスケーリンググループを設定する必要があります。
CPU 使用率が 5 分間 50% を超えた場合は新しいインスタンスを追加する。
CPU 使用率が 5 分間 50% を下回った場合は1つのインスタンスを削除する。)
図 2: 特定のメトリクスとしきい値に基づくコンピュートインスタンスの自動スケーリングに関する、ユーザーのプロンプトと Amazon Q からの応答
Amazon Q は、プロンプトで提供された要件に基き、 Auto Scaling グループを設定するためのすべてのステップを提示します。
AWS サービスについて具体的な質問をする
コンソールの Amazon Q は、ベストプラクティスを考慮しながら、ビジネス価値を提供するシステムを運用する際にも役立ちます。自然言語のプロンプトを使用して、 AWS サービスを使うときのベストプラクティスを学べます。
サンプルプロンプト:
I am using API Gateway for REST APIs. I have configured timeout for requests. I would like to learn additional best practices to reduce and handle long running requests.
(日本語訳: REST API に API Gateway を使用しています。リクエストのタイムアウトを設定しましたが、長時間実行されるリクエストを減らし、適切に処理するための追加のベストプラクティスを学びたいです。)
図 3: コンピュートコストの削減に関する、ユーザーのプロンプトと Amazon Q からの応答
図 3 に示すように、 Amazon Q は Amazon API Gateway での長時間実行リクエストを最適化するさまざまな方法を要約します。例えば、タイムアウトの実装、可能であれば長時間実行の操作を非同期呼び出しにすることや、その他いくつかの最適化の方法を提示します。
AWS SDK または AWS CLI を使用してタスクを自動化するコードスニペットやスクリプトの生成に Q を活用する
開発者やシステム管理者は、ドキュメントを調べる時間をかける代わりに、Q を使用してタスクを自動化するコードスニペットやスクリプトを生成できます。
S3 からデータを読み取る AWS Lambda 関数の作成方法
例えば、開発者が Amazon S3 バケットからデータを読み取る AWS Lambda 関数を作成したいが、どのように始めればよいかわからない場合、 Amazon Q が支援します。
図 4: Lambda 関数の作成手順に関するユーザーのプロンプトと Amazon Q の応答
図 5: Lambda 関数の作成に関するサンプルコードを含む Amazon Q の応答
図 4 および 5 に示すように、 Amazon Q は Lambda 関数の作成方法について、参考用のサンプルコードを含むステップバイステップの手順を返します。
AWS CLI を使用して S3 バケットにファイルをアップロードする方法
開発者や IT プロフェッショナルが AWS CLI を頻繁に使用しているものの、タスクを実行するための適切なコマンドを見つけるのに苦労している場合、 Amazon Q は非常に役立ちます。
サンプルプロンプト:
How do I upload a file to an S3 bucket using the AWS CLI?
(日本語訳: AWS CLI を使用して S3 バケットにファイルをアップロードするにはどうすればよいですか?)
図 6: S3 バケットへのファイルアップロード用の CLI コマンドに関する、ユーザーのプロンプトと Q からの応答
図 6 に示すように、 Amazon Q は S3 バケットにファイルをアップロードするための CLI コマンドを返します。さらに、アップロードされたことを確認するためのコマンドも提案しています。
他のサービスの使用を自動化するコードを記述するために Console-to-Code を活用する
Console-to-Code はコンソールでの操作を記録し、生成 AI を使用して好みの言語でコードを提案します。現在、 CLI コマンド、 CDK Java 、 CDK Python 、 CDK TypeScript 、 CloudFormation JSON/YAML をサポートしています。
例えば、開発者が Amazon EC2 インスタンスと Amazon RDS データベースインスタンスを含む CloudFormation YAML を生成したい場合、開発者は Amazon EC2 と Amazon RDS のコンソールに移動し、右側で Console-to-Code アイコンを選択し、「記録を開始」を選択します。
以下の図に示すように、 Amazon EC2 インスタンスと Amazon RDS DB インスタンスを起動したら、記録を停止し、 CloudFormation YAML テンプレートをそのままダウンロードします。
図 7: Amazon EC2 と Amazon RDS データベースインスタンスの起動を記録する Console-to-Code
図 8: Console-to-Code の記録から Infrastructure-As-Code を生成する
図 9: Console-to-Code の記録から生成された CloudFormation YAML テンプレート
ワークロードを設計し最適化するために Q を活用する
このセクションでは、Amazon Q を活用して新しいワークロードを設計し、既存のワークロードを最適化することに焦点を当てます。
ワークロードの設計
ここで、開発者が以下の要件を持つ新しい金融サービスアプリケーションを構築したいと考えています:
- アーキテクチャはサーバーレスかつイベント駆動であること
- 入金や出金などの機能を提供すること
- 低コストで効率的な AWS サービスを使用すること
- 1秒あたり数千のリクエストに達する可能性があるトラフィックスパイクにスケールすること
- REST API をサポートすること
以下のプロンプトをコピーしてチャットウィンドウに貼り付け、 Amazon Q Developer に問い合わせてみましょう:
サンプルプロンプト:
How can I build a new financial services application with the following requirements: it should be serverless and event driven, must provide functionality as deposits and withdrawals, It should use low-cost efficient AWS services, It should scale with traffic spikes that can reach thousands of requests per second, and lastly it should support REST APIs.
(日本語訳: 以下の要件を持つ新しい金融サービスアプリケーションを構築するにはどうすれば良いですか?サーバーレスでイベント駆動であること、入金と出金などの機能を提供すること、低コストで効率的な AWS サービスを使用すること、1秒あたり数千のリクエストに達する可能性があるトラフィックスパイクにスケールすること、そして REST API をサポートすること。)
Amazon Q はこのワークロードの設計方法について回答を提供します。以下が Amazon Q から受け取ったサンプル回答です:
図 10: アーキテクチャについての Amazon Q からの応答
Amazon Q は以下のように回答しました:
ご説明いただいた要件を持つ新しい金融サービスアプリケーションを構築するために、以下の AWS サービスとアーキテクチャをお勧めします:
- サーバーレスおよびイベント駆動アーキテクチャ:
- コアアプリケーションロジックには AWS Lambda を使用し、サーバーのプロビジョニングや管理なしでコードを実行できるようにします。
- AWS Lambda を、REST API 用の Amazon API Gateway 、データベース用の Amazon DynamoDB 、イベント駆動メッセージング用の Amazon SNS/SQS などの他のサーバーレスサービスと統合します。
- 入金と出金機能:
- 顧客口座情報と取引詳細を保存するデータベースとして Amazon DynamoDB を使用します。
- 入金と出金のロジックを、 Amazon API Gateway または Amazon SNS/SQS からのイベントによってトリガーできる AWS Lambda 関数で実装します。
- 低コストで効率的な AWS サービス:
- 消費したコンピュート時間に対してのみ課金される AWS Lambda と、リクエストごとの料金モデルを提供する Amazon DynamoDB を活用します。
- REST API のコストを低く抑えるために、リクエスト毎の料金モデルを提供する Amazon API Gateway を活用します。
- 低コストで可用性が高く、スケーラブルなメッセージング機能のために Amazon SQS と Amazon SNS の使用を検討します。
- スケーラビリティとハイパフォーマンス:
- AWS Lambda や他のサーバーレスサービスは、1 秒あたり数千のリクエストのトラフィックスパイクを処理するために、自動的にスケールします。
- Amazon API Gateway のキャッシュ機能、 Amazon DynamoDB の自動スケーリング、 Amazon SQS のメッセージバッチ処理などの機能を使用することで、さらにパフォーマンスを最適化できます。
- REST API のサポート:
- RESTful API を公開するために、 AWS Lambda のアプリケーションロジックを Amazon API Gateway と統合します。 Amazon API Gateway は、ルーティング、認証、スロットリングを含む API 管理を処理します。
開始するには、以下の AWS ドキュメントの確認をお勧めします:
- サーバーレスアプリケーションのための AWS Lambda
- サーバーレスアプリケーションの構築のための Amazon API Gateway
- NoSQL データベース用の Amazon DynamoDB
- メッセージング用の Amazon SNS および Amazon SQS
他にご質問がありましたらお知らせください!
出典:
Key AWS services – Financial Services Industry Lens
Harnessing the scale of AWS for financial simulations | AWS HPC Blog
RPC と REST の違いはなんですか? – AWS
上記のように、 Amazon Q は提供された要件に基づいてアーキテクチャの推奨サービスと、それらのサービスへのリンクも提供しました。
ワークロードの最適化
ここで、開発者や IT プロフェッショナルが AWS に Amazon EC2 を中心としたアーキテクチャを運用しており、Server-1-demo という名前のインスタンスをデプロイしているケースを想定します。そして、その環境を、コスト削減のために最適化したいと考えているとします。
前のセクションと同様に、コンソール内の Amazon Q チャットで新しいチャットウィンドウを開き、以下のプロンプトを入力します:
サンプルプロンプト:
Based on the current CPU utilization of my EC2 Server-1-demo, what do you recommend I do to cost optimize?
(日本語訳: 現在の CPU 使用率を考慮して、EC2 Server-1-demo のコストを最適化するにはどうすればよいですか?)
その結果、 Q は以下のような応答を提供します:
図 11: Amazon Q からの最適化に関する応答
図のとおり、 Amazon Q は Server-1-demo の CPU 使用率のコンテキストを考慮し、 AWS Graviton などの活用を含む推奨事項を提示しました。なお、AWS Graviton は Amazon EC2 で実行されるクラウドワークロードに最高の価格性能を提供するように設計されたインスタンスタイプです。
コストを理解するためにQ を活用する
コンソールで Q を活用するもう一つの方法は、コストの分析です。開発者や IT プロフェッショナルは Amazon Q を使用して AWS Cost Explorer からコストデータを取得・分析できます。AWS のコストについて質問すると、実際の AWS アカウントのコストを反映した回答を、自然言語で受け取れます。
それでは、新しい Amazon Q のコンソールチャットウィンドウを開き、以下のプロンプトを試してみましょう:
サンプルプロンプト:
Show me the breakdown of EC2 costs by instance type for the last 30 days.
(日本語訳: 過去 30 日間の EC2 コストをインスタンスタイプ別に表示してください。)
図 12: 過去1か月の EC2 コストの内訳に関する Amazon Q からの応答
図 12 に示されているように、Amazon Q Developer は過去 30 日間の EC2 インスタンスタイプごとの詳細な内訳を提供しました。
では、別の例を試してみましょう:
サンプルプロンプト:
What was my cost breakdown by service for the past three months?
(日本語訳: 過去 3 か月間のサービス別コスト内訳を教えてください。)
図 13: 過去 3 か月間の支出分析に関する Amazon Q からの応答
図 13 に示すとおり、 Amazon Q は総支出に対する割合を含む詳細なコスト内訳を提供し、 AWS の使用状況とコストを簡単に理解できるようにします。この機能により、最もコストの高いサービスを素早く特定し、時間の経過に伴う支出傾向を追跡できます。最も正確な情報を得るには、定期的に AWS Cost Explorer でコストデータを確認してください。この機能の詳細については、この機能をより詳しく説明しているブログをご確認ください。
コンソールでの Amazon Q の活用に関するベストプラクティス
前のセクションでは、 AWS アプリケーションのアーキテクチャとアカウント管理のために Amazon Q の機能を活用する例を紹介しました。いずれの場合も、 Amazon Q に与える入力は出力の品質に直接影響します。ツールがシナリオや回答すべき内容を理解できるよう、質問は簡潔で明確で、必要な詳細情報を含んでいる必要があります。生成 AI チャットボットに効果的な入力を行うための推奨方法のことを「プロンプトエンジニアリング」といいます。以下のベストプラクティスに従うことで、 Amazon Q の使用時に、より良い結果を得ることができます:
- Q に実行してほしいタスクを指定する:概念の説明、サービスの比較、メリットとデメリットの列挙、 CLI コマンドの生成、コードスニペットの生成、シナリオに対するアーキテクチャオプションの提案など。
- コンテキストを提供する:なぜこの概念を知る必要があるのか?どの部分のアプリケーションやアーキテクチャにその知識を適用するのか?
図 14: より良い回答を提供するために Amazon Q が追加の詳細を求めている
この例では、シナリオの形式で返すよう指定しました。また、シナリオについて知りたいサービスと、シナリオのエッジケース(インスタンス作成後)を指定しました。 Amazon Q は私たちの質問を要約し、要求に応じてシナリオと関連情報を提供しました。
- 一連の質問を複数の質問に分割する
- 一度に1つのタスクについて尋ねる
- 最初の回答で終わらず、その情報を使用して質問を続け、 Q がより充実した回答を提供できるようにする
図 15: Amazon Q がチャットのコンテキストを使用して回答を提供している
このシナリオでは、提供された入力だけでは Q が十分な回答を生成できなかったため、追加の詳細な情報を求め、それらを回答のコンテキストとして考慮しました。
- アカウントのセキュリティに関する質問には注意してください。コンソールの Amazon Q は、アカウントのセキュリティに関する回答を提供しない場合があります。
- 入力できる文字数は最大 1000 文字までです。これも、入力を簡潔にする必要がある理由の1つです。
- 新しいトピックを開始する場合は、新しい会話を作成してください。不要なコンテキストは、新しい状況に対する Q の回答の具体性を低下させます。
図 16: Amazon Q はセキュリティに関するヒントを提供しません。新しい会話を作成してください。最大文字数は 1000 文字です。
まとめ
このブログ記事では、 AWS の生成 AI 搭載アシスタントである Amazon Q が、開発者、 DevOps エンジニア、アーキテクトの生産性向上とスタートアップ時間の短縮のために AWS コンソールでどのように活用されているかを様々な観点から探りました。 Amazon Q は AWS コンサルタントとして機能し、 AWS サービスの理解とベストプラクティスの実装、コードスニペットの生成や CLI コマンドの自動化など、様々なタスクについてアドバイスを提供します。特定のニーズに基づいて新しいワークロードを設計し、既存のワークロードを強化する機能について、詳細な例を用いて実証しました。また、 AI アシスタントから質の高い応答を引き出すための明確で簡潔なプロンプトの作成である、プロンプトエンジニアリングの重要性についても説明しました。コンソールでの Amazon Q の機能を活用することで、 AWS ユーザーはワークフローを効率化し、クラウドジャーニーを加速させることができます。経験豊富なクラウドアーキテクトであっても、これから始める方であっても、この AI 搭載アシスタントはパートナーとして、 AWS の領域をナビゲートし、新しいレベルの効率性を引き出すお手伝いをします。この記事で説明したベストプラクティスに従って、 Amazon Q の可能性を探求し続け、実験してください!
翻訳はApp Dev Consultantの宇賀神が担当しました。