View a markdown version of this page

トラブルシューティング - AWS でのワークロード検出

トラブルシューティング

既知の問題解決には、既知のエラーを軽減するための手順が記載されています。これらの手順で問題が解決しない場合は、AWS サポートに問い合わせるセクションで、このソリューションに関する AWS サポートのケースを開く手順を参照してください。

既知の問題解決

AWS でのワークロード検出のデプロイ中およびデプロイ後のフェーズでは、いくつかの一般的な設定エラーが発生する可能性があります。

注記

トラブルシューティングを容易にするには、AWS CloudFormation テンプレートで失敗時のロールバック機能を無効にすることをお勧めします。AWS でのワークロード検出のデプロイ後の設定に関するドキュメントにも、追加のトラブルシューティングのヘルプが記載されています。

配信チャネル設定のエラー

問題: メインの AWS CloudFormation テンプレートをデプロイするときに次のエラーが発生します。

Failed to put delivery channel '<stack-name>-DiscoveryImport-<ID-string>-DeliveryChannel-<ID-string>' because the maximum number of delivery channels: 1 is reached. (Service: AmazonConfig; Status Code: 400; Error Code: MaxNumberOfDeliveryChannelsExceededException; Request ID: 4edc54bc-8c85-4925-b99d-7ef9c73215b3; Proxy: null)

理由: ソリューションは、AWS Config が既に有効になっているリージョンにデプロイされています。

解決策: 前提条件セクションの手順に従って、CloudFormation パラメータ AlreadyHaveConfigSetupYes に設定してソリューションをデプロイします。

既存の VPC にデプロイすると、サーチリゾルバースタックのデプロイがタイムアウトする

問題: OpenSearch クラスターにインデックスを作成するためにカスタムリソースをプロビジョニングするネストされたスタックが、次のエラーでタイムアウトします。

Embedded stack arn:aws:cloudformation:<region>::stack/<stack-name>-SearchResolversStack-<ID-string>/<guid> was not successfullycreated: Stack creation time exceeded the specified timeout

理由: CloudFormation パラメータとして指定されたプライベートサブネットは、S3 にルーティングできません (カスタムリソースは、署名済み URL を使用して実行結果を S3 バケットに書き込む必要があります)。これには、一般的に次の 2 つの理由が考えられます。

  1. プライベートサブネットに NAT ゲートウェイが関連付けられていないため、インターネットにアクセスできません。

  2. プライベートサブネットが NAT ゲートウェイではなく VPC エンドポイントを使用しており、S3 ゲートウェイエンドポイントが正しく設定されていません。

解決策:

  1. ドキュメントに従って、CloudFormation または AWS CLI を使用して、プライベートサブネットで実行されているタスクがインターネットにアクセスできるように、VPC に NAT ゲートウェイをプロビジョニングします。

  2. ドキュメントに従って、サブネットのルートテーブルが S3 VPC エンドポイント用に更新されていることを確認します。

アカウントのインポート後にリソースが検出されない

問題: Web UI からアカウントをインポートしましたが、検出プロセスの実行後にリソースが検出されないようです。

理由: 最も可能性の高い理由は次のとおりです。

  1. CrossAccountDiscovery CloudFormation パラメータが SELF_MANAGED に設定されている場合、グローバルリソース CloudFormation テンプレートはデプロイされていません。

  2. CrossAccountDiscovery CloudFormation パラメータが AWS_ORGANIZATIONS に設定されている場合、1 つ以上のアカウントが検出されず、[ロールステータス] 列に [デプロイされていません] というエントリがあります。これは、StackSets を使用したグローバルリソーステンプレートの自動デプロイに問題が発生していることを意味します。

  3. 検出プロセス ECS タスクのメモリが不足しています。これは、多数のアカウントまたはリソースをインポートするときに発生します。UI の [最後の検出] 列には、DiscoveryTaskFrequency CloudFormation パラメータで指定された値よりも大きい値 (デフォルト値は 15 分) があり、ECS コンソールにメモリ不足エラーが表示されます。

解決策:

  1. ドキュメントに従って、グローバルリソーステンプレートを必要なアカウントにデプロイします。

  2. AWS でのワークロード検出がデプロイされたリージョンの WdGlobalResources StackSet に移動し、デプロイに失敗したスタックインスタンスのエラーを確認します。

  3. Memory CloudFormation パラメータをより大きな値に更新します。最初は 2 倍の値から始め、エラーがなくなるまで値を増やし続けます。

注記

CPU ユニットとメモリ値の特定の組み合わせのみが有効なため、CpuUnits CloudFormation パラメータも更新する必要がある場合があります。組み合わせの完全なリストは、ECS ドキュメントに記載されています。

特定のアカウントでは AWS Config 以外のリソースのみが検出される

問題: このソリューションで検出されるリソースタイプは、サポートされているリソースセクションの表に記載されているもののみです。

理由: この問題の最も一般的な原因は次のとおりです。

  1. CrossAccountDiscovery CloudFormation パラメータを SELF_MANAGED に設定されている場合に、検出対象の各アカウントのリージョンにリージョンリソースの CloudFormation テンプレートがデプロイされていません。

  2. CrossAccountDiscovery CloudFormation パラメータが SELF_MANAGED に設定されている場合に、Config が有効になっていない複数のアカウントのリージョンにリージョンリソースの CloudFormation テンプレートがデプロイされているが、CloudFormation パラメータ AlreadyHaveConfigSetup が誤って Yes に設定されています。

  3. CrossAccountDiscovery CloudFormation パラメータが AWS_ORGANIZATIONS に設定されている場合に、検出対象となる各アカウントのリージョンで AWS Config が有効になっていません。AWS_ORGANIZATIONS モードでは、組織のポリシーに従って Config を有効にする責任があります。

解決策:

  1. ドキュメントに従って、必要なアカウントにリージョンリソーステンプレートをデプロイします。

  2. 以前にデプロイしたリージョンリソーススタックを削除し (削除しないと AWS Config が不整合な状態になります)、CloudFormation パラメータ AlreadyHaveConfigSetupNo に設定して再デプロイします。

  3. 検出対象となる各アカウントのリージョンで AWS Config を有効にします。