トラブルシューティング - AWS のクォータモニター

トラブルシューティング

AWS のクォータモニタは、ソリューションの Lambda 関数に関するエラー、警告、情報メッセージ、デバッグメッセージをログに記録します。ログに記録するメッセージのタイプを選択するには、Lambda コンソールで該当する関数を見つけ、LOG_LEVEL 環境変数を該当するタイプのメッセージに変更します。

レベル 説明

ERROR

ログには、オペレーションが失敗する原因となるすべての情報が含まれます。

WARNING

ログには、オペレーションの失敗につながるわけではないが、関数の不整合を引き起こす可能性のあるすべての要因に関する情報が含まれます。ログには ERROR メッセージも含まれます。

NFO

ログには、関数の動作に関する概要情報が含まれます。ログには ERROR および WARNING メッセージも含まれます。

DEBUG

ログには、関数の問題のデバッグに役立つ可能性のある情報が含まれます。ログには、ERRORWARNING、および INFO メッセージも含まれます。

これらの手順で問題が解決しない場合は、「AWS サポートへのお問い合わせ」セクションで、このソリューションの AWS サポートケースの作成手順を確認してください。

問題: ソリューションが想定されるアカウントまたはリージョンをモニタリングしていない

ソリューションをデプロイしたが、アカウントやリージョンをモニタリングしておらず、スタックがスポークアカウントにデプロイされていない場合は、以下の手順に従ってトラブルシューティングを行います。

  1. SSM パラメータの更新: デプロイ後に以下の SSM パラメータが更新済みであることを確認します。

    • /QuotaMonitor/OUs (Organizations またはハイブリッドデプロイの場合)

    • /QuotaMonitor/Accounts (アカウントまたはハイブリッドデプロイの場合)

    • /QuotaMonitor/RegionsToDeploy

  2. パラメータ値: これらのパラメータの値が正しく、適切にフォーマットされていることを確認します (カンマ区切りリスト)。

  3. デプロイモデル: スタックの作成時に正しいデプロイモデル (Organizations、アカウント、またはハイブリッド) を選択していることを確認します。

  4. StackSet のデプロイ: Organizations またはハイブリッドモードを使用している場合は、CloudFormation StackSets コンソールで、想定しているアカウントやリージョンでスタックを作成済みであることを確認します。

解決方法

上記のいずれかが正しくない場合は、正しい値で SSM パラメータを更新します。ソリューションにより、これらの変更が検出され、デプロイが適切に調整されます。問題が解決しない場合は、メインスタックを更新して再デプロイをトリガーします。

問題: ハブスタックを更新した後、SNS スポークスタックが新しいリージョンにデプロイされない

ハブスタックを更新した後、SNS スポークスタックが新しいリージョンにデプロイされていない場合は、以下の手順に従ってトラブルシューティングを行います。

解決方法

ハブスタックで SNS スポークリージョンを変更したら、必ず 1 つのリージョンのみを指定し、Systems Manager Parameter Store で OU またはアカウントのパラメータを更新 (または再保存) します。

問題: Amazon CloudWatch Events バス許可エラー

スポークスタックのデプロイ中に、TAWarnRule または TASErrorRuleCREATE_FAILED メッセージを受け取った場合は、プライマリアカウントの CloudWatch イベントバスが、スポークアカウントからモニタリングアカウントへのイベント送信を許可していることを確認します。

解決方法

ハブスタックをセカンダリアカウント ID で更新するか、次のタスクを完了します。

  1. モニタリングアカウントで、Amazon CloudWatch コンソールに移動します。

  2. ナビゲーションペインの [イベントバス] を選択します。

  3. [アクセス許可の追加] を選択します。

  4. [プリンシパル] には、該当するセカンダリアカウント ID を入力します。

  5. [全員 ()] ボックスを選択します。

  6. [追加] を選択します。

問題: Slack 通知を受信していない

WARN イベントまたは ERROR イベントに関する Slack 通知が受信できない場合は、CloudWatch ログでエラーメッセージを確認してください。

  1. プライマリアカウントで、Amazon CloudWatch コンソールに移動します。

  2. ナビゲーションペインで [ログ] を選択します。

  3. /aws/lambda/[replaceable]<stackname>`-SlackNotifier-[replaceable]<randomstring>` ロググループを選択します。

  4. 一番上の (最新の) ログストリームを選択します。

  5. 次のエラーを探します。

    AWS のクォータモニタのエラー例

    クォータモニタのエラー

解決方法

以下のタスクを実行します。

  1. プライマリアカウントで、AWS Systems Manager コンソールに移動します。

  2. [共有リソース]のナビゲーションペインで、[パラメータストア] を選択します。

  3. /QuotaMonitor/SlackHook パラメータを選択し、パラメータに正しい値が表示されていることを確認します。

問題: E メール通知を受信していない

E メール通知を受信していない場合は、Amazon SNS トピックにサブスクライブしていることを確認します。

  1. プライマリアカウントで、Amazon SNS コンソールに移動します。

  2. ナビゲーションペインで、[トピック] を選択します。

  3. <stackname>-SNSTopic-<randomstring> ARN 値を選択します。

  4. [サブスクリプション ID] に ARN 値が表示されていることを確認します。

解決方法

[サブスクリプション ID] フィールドに PendingConfirmation が表示されている場合は、次のタスクを実行します。

  1. [PendingConfirmation] の横にあるチェックボックスを選択します。

  2. [サブスクリプション] で、[リクエスト][確認] を選択します。

  3. 該当する E メール受信トレイに移動します。

  4. サブスクリプション通知 E メールで、SubscribeURL リンクを選択します。

  5. Amazon SNS コンソールで、サブスクリプション ID に ARN 値があることを確認します。

問題: ハブスタックの作成に失敗した

ハブスタックの作成が次のエラーで失敗した場合、Organizations との信頼されたアクセスが許可されていません。

You must enable organizations access to operate a service managed stack set (Service: CloudFormation, Status Code: 400, Request ID: ABCXYZ

解決方法

AWS CloudFormation コンソールまたは AWS Organizations コンソールでサービスマネージドアクセス許可を使用するには、AWS Organizations で信頼できるアクセスを許可します。手順については、「ステップ 2b。前提条件を手動で満たす (オプション)」を参照してください。

問題: サマライザー SQS キューにキューに入れられているメッセージが多すぎる

QMSummarizerEventQueueQMSummarizerEventQueue SQS キューに入れられているメッセージが多すぎて、キューに入れられたメッセージの数が増え続ける場合。

解決方法

QMReporterQMReporterLambda Lambda 関数はキューからのイベントを消費し、デフォルトで 5 分ごとに呼び出されます。次のいずれかを試します。

  • デフォルトバスの QMReporterQMReporterEvents EventBridge ルールのレートを上げます。

  • Lambda 関数の MAX_LOOPS 環境変数の値を増やします。

問題: スポークアカウントのクォータアラートを一元化するハブアカウント番号を特定する

Organization/ハイブリッドモードでは、特定のスポークアカウントのクォータアラートを一元化するハブアカウントを特定するのは難しい場合があります。

解決方法

ハブアカウント番号を特定するには:

  1. スポークアカウントにログインします。

  2. Amazon EventBridge コンソールにサインインします。

  3. 「QuotaMonitorSpokeBus」イベントバスを選択します。

  4. 「QMUtilizationWarn」または「QMUtilizationErr」という名前のルールを探します。

  5. 特定したルールをクリックします。

  6. ルールの詳細でターゲットイベントバス ARN を調べます。

ターゲットイベントバス ARN のアカウント番号はハブアカウント番号です。

ARN の例

arn:aws:events:us-east-1:123456789012:event-bus/QuotaMonitorBus

この例では、123456789012 がハブアカウント番号です。

問題: CloudFormation の外部でリソースが削除されたため、スタックを更新できなかった

ソリューションのリソースが CloudFormation スタックの外部で手動で削除された場合、CloudFormation スタックはリソースを見つけることができないため、ソリューションの更新は失敗します。

解決方法

解決策については、AWS re:Post の「How do I update a CloudFormation stack that’s failing because of a resource that I manually deleted?」の記事を参照してください。