- 公開日
- 最終更新日
Amazon Q Developerでトラブルシューティングしてみる
この記事を共有する

目次
はじめに
こんにちは!パーソル&サーバーワークスのEndoです。
少し時間が経ってしてしまいましたが、2025年6月 に更新された Amazon Q Developer のチャットを利用したトラブルシューティング機能がとても便利だと感じたので、自分でも確認してみたいと思い本記事を執筆しました。
前提
Amazon Q は re:Invent 2023 で生成AIアシスタントサービスとして発表され、2024年5月に Amazon Q 製品である Amazon Q Business および Amazon Q Developer がそれぞれ一般公開されました。
今回は、その中でも Amazon Q Developerについてご紹介したいと思います。
Amazon Q Developer
Amazon Q Developer とは、Amazon Bedrock 上に構築された会話アシスタントです。
機能の詳細については、Amazon Q - 生成 AI アシスタント から引用してご紹介します。
Amazon Q Developer は、ソフトウェアの構築、運用、変換を行うための最も有能な生成 AI 搭載アシスタントで、データと AI/ML を管理するための高度な機能を備えています。Amazon Q Developer はコーディングにとどまらず、コーディング、テスト、デプロイから、トラブルシューティング、セキュリティスキャンと修正の実行、アプリケーションのモダナイゼーション、AWS リソースの最適化、データエンジニアリングパイプラインの作成まで、デベロッパーと IT プロフェッショナルのすべてのタスクを支援します。 AWS アーキテクチャ、 AWS リソース、などの質問に対する回答や、統合開発環境 (IDE) を使用することでソフトウェア開発を支援します。
料金体系について
Amazon Q Developer の料金は、無料利用枠とProの2種類となっています。Proはユーザー単位でのサブスクリプションとなります。
無料利用枠では高度な機能への 1 か月あたりのアクセス回数の制限がありますが、Proでは高度な機能の制限が緩和されるのに加え、カスタマイズなどが可能です。
詳細については Amazon Q Developer の料金 をご参照ください。
トラブルシューティング
実際にトラブルシューティングできるか確認してみます。今回は無料利用枠で検証します!
トラブルシューティング用に、Amazon S3 にファイルが PUT されたらイベント通知機能で Amazon SNS で通知するアーキテクチャを構築しました。
構築時のCloudFormationテンプレートは以下を展開してご参照ください。
※トラブルシューティング用のため、敢えて一部パラメータを設定していません。
ここを押すと展開します
AWSTemplateFormatVersion: '2010-09-09'
Resources:
### SNS Ropic
SNSTopic:
Type: AWS::SNS::Topic
Properties:
TopicName: s3-event-notification
SNSSubscription:
Type: AWS::SNS::Subscription
Properties:
Protocol: email
Endpoint: XXXXXXXXX@XXXXXXXXX.co.jp
TopicArn: !Ref SNSTopic
### Lambda Role
LambdaExecutionRole:
Type: AWS::IAM::Role
Properties:
RoleName: s3-event-notification-role
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service: lambda.amazonaws.com
Action: sts:AssumeRole
Policies:
- PolicyName: lambda-logging-and-sns
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- logs:CreateLogGroup
- logs:CreateLogStream
- logs:PutLogEvents
Resource: '*'
### Lambda
S3TriggerFunction:
Type: AWS::Lambda::Function
Properties:
FunctionName: s3-event-trigger-function
Handler: index.lambda_handler
Role: !GetAtt LambdaExecutionRole.Arn
Runtime: python3.12
Timeout: 10
Code:
ZipFile: !Sub |
import json
import boto3
import logging
# Configure logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
logger.info("Lambda function started")
logger.info(f"Event: {json.dumps(event)}")
try:
# Get the S3 bucket and key from the event
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
logger.info(f"Processing S3 object: {bucket}/{key}")
# Create SNS client
sns = boto3.client('sns')
# Prepare message
message = f"New object uploaded to S3 bucket: {bucket}/{key}"
subject = "S3 Object Upload Notification"
logger.info("Attempting to publish to SNS")
# Publish to SNS topic
response = sns.publish(
TopicArn='arn:aws:sns:ap-northeast-1:XXXXXXXXX:s3-event-notification',
Message=message,
Subject=subject
)
logger.info(f"SNS publish response: {response}")
return {
'statusCode': 200,
'body': json.dumps('Notification sent successfully!')
}
except Exception as e:
logger.error(f"Error: {str(e)}")
raise e
### S3 Bucket
S3Bucket:
Type: AWS::S3::Bucket
DependsOn: LambdaInvokePermission
Properties:
BucketName: XXXXXXXXX
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: AES256
NotificationConfiguration:
LambdaConfigurations:
- Event: s3:ObjectCreated:Put
Function: !GetAtt S3TriggerFunction.Arn
### LambdaPermission
LambdaInvokePermission:
Type: AWS::Lambda::Permission
Properties:
FunctionName: !Ref S3TriggerFunction
Action: lambda:InvokeFunction
Principal: s3.amazonaws.com
リソース構築後、Amazon S3 バケットに test_1.txtをアップロード (PUT) しましたが、メールは送信されませんでした。
Amazon Q Developer へ原因を聞いてみたいと思います。
※2025年7月現在、マネジメントコンソールのチャットでは英語のみ対応しているようです。
⇒2025年7月31日のアップデートで日本語も対応しました!
問い合わせ内容
問い合わせ内容には 実際のリソース情報からメールが送信されない原因を調査をしてほしい旨を問い合わせました。
回答内容
以下の流れで回答が生成されました。 ※回答の生成には少し時間がかかります。
- 指定したリソース情報の取得および調査
指定したリソースの権限や状態などを取得します。
- 原因箇所の特定および解決方法
Lambda関数にアタッチしているIAMロールにSNS Publishを実行する許可ポリシーが含まれていませんでした。
追加するポリシーの内容も教えてくれました。
IAMポリシーに SNS publish を追加して S3 バケットに test_2.txtをアップロードしてみます。
メールが送信されました!!
おわりに
今回の検証では AWS Lambda と IAM 、そして Amazon SNS リソース間のトラブルシューティングをマネジメントコンソール上で行いました。
特に別途ツールをインストールすることなく、無料でこのような機能が利用できるので、効率的に使っていきたいと思います!
この記事がどなたかのお役に立てましたら幸いです。
参考情報
New and improved Amazon Q Developer experience in the AWS Management Console and chat applications
この記事は私が書きました
S.Endo
記事一覧コーヒーを飲みながら仕事をしています
