Amazon CloudWatch Synthetics Canary の一般的な問題をトラブルシューティングしたいです。
簡単な説明
CloudWatch Synthetics Canary で発生する可能性のある一般的な問題を次に示します。
- ロールとアクセス許可の問題
- Amazon Simple Storage Service (Amazon S3) に関する問題
- AWS Lambda に関する問題
- Amazon Virtual Private Cloud (Amazon VPC) に関する問題
CloudWatch Synthetics Canary の問題をトラブルシューティングするためのベストプラクティスを次に示します。
- [可用性] タブをチェックして、特定の失敗または成功した実行に関する問題を特定します。
- [詳細] ページのエラーメッセージを確認して、Canary で障害が発生している理由を確認します。
- スクリーンショットを確認して、最新のCanary 呼び出しを確認します。
- ログファイルを確認して、アクセス許可の問題やスロットリングの例外を特定します。
- Canary メトリクスと Lambda メトリクスについては、[モニタリング] タブを確認します。
- 最近の Canary 操作ログについては、/aws/lambda/cwsyn-MyCanaryName-randomId という名前の CloudWatch Logs ロググループを確認します。
- スクリーンショットや HAR ファイルなどのアーティファクトのアップロードについては、cw-syn-results-accountID-region という名前の Amazon S3 バケットをチェックします。
- Canary によって公開された CloudWatch メトリクスを確認します。
解決策
CloudWatch Synthetics Canary の一般的な問題をトラブルシューティングするには、以下のアクションを実行します。
ロールとアクセス許可の問題
Canary を作成して管理する場合は、特定のアクセス許可が必要です。また、作成する Canary には特定のアクセス許可が必要です。詳細については、「CloudWatch Canary を管理するユーザーに必要なロールとアクセス許可」および「Canary に必要なロールとアクセス許可」を参照してください。ユーザーのアクセス許可を制限する場合は、「ユーザーが特定のCanary のみを閲覧できるよう制限する」を参照してください。
Amazon S3 バケットに関する問題
Amazon S3 バケットの問題に関連して CloudWatch Synthetics Canary で発生する可能性のある一般的なエラーを次に示します。
- 指定されたバケットが存在しません。
- S3 にアーティファクトをアップロードできません。例外: S3 バケットの場所を取得できません: アクセスが拒否されました。
- この Canary は現在エラー状態です。エラーメッセージ 1 件の検証エラーが検出されました: 'content.s3Bucket' の値 'XXXXX' は制約を満たしていません。 メンバーは正規表現パターンを満たす必要があります: ^[0-9A-Za-z\.\-_]*(?<!\.)$
指定されたバケットは存在しません
このエラーは、Amazon S3 バケットが削除されており、CloudWatch Synthetics Canary がそのバケットを見つけることができないことを示しています。今後このエラーが起こらないようにするには、Amazon S3 バケットにライフサイクルを作成して CloudWatch Synthetics Canary アーティファクトを保存します。詳細については、「ストレージライフサイクルの管理」を参照してください。
S3 にアーティファクトをアップロードできません。例外: S3 バケットの場所を取得できません: アクセスが拒否されました
このエラーをトラブルシューティングするには、次の点を確認してください。
- Canary の AWS Identity and Access Management (IAM) ロールに正しい Amazon S3 バケットアクセス許可があることを確認します。組織が Amazon S3 バケットに関連するアクセス許可を制限していないことを確認します。詳細については、「サービスコントロールポリシー (SCP)」を参照してください。
- Canary が暗号化にAWS Key Management Service (AWS KMS) のカスタマーマネージドキーではなく、標準の AWS マネージドキーを使用していることを確認します。Canary が AWS KMS カスタマーマネージドキーを使用している場合、Canary の IAM ロールには暗号化または復号化のアクセス許可がない可能性があります。詳細については、「Canary アーティファクトの暗号化」を参照してください。
- Canary とバケットポリシーの暗号化モードが同じであることを確認してください。これらが同じでない場合、バケットポリシーではCanary が使用する暗号化メカニズムが許可されません。
- Canary がビジュアルモニタリングを行っているかどうかを確認します。詳細については、「ビジュアルモニタリングを使用する場合のアーティファクトの場所と暗号化を更新する」を参照してください。
この Canary は現在エラー状態です。エラーメッセージ 1 件の検証エラーが検出されました: 'content.s3Bucket' の値 'XXXXX' は制約を満たしていません。 メンバーは正規表現パターンを満たす必要があります: ^[0-9A-Za-z\.\-_]*(?<!\.)$
このエラーを解決するには、Canary スクリプトが Amazon S3 にあることを確認します。スクリプトが Amazon S3 にある場合は、スクリプトコードでバケット名を指定します。バケット名の先頭には、s3:// を含めないでください。
AWS Lambda に関する問題
AWS Lambda に関連して CloudWatch Synthetics Canary で発生する可能性のある一般的なエラーを次に示します。
- Canary は最新の Lambda レイヤーを検出できません。
- Canary にアタッチされている IAM ロールに、Lambda サービスとの信頼関係がありません。
Canary は最新の Lambda レイヤーを検出できません
Canary は、手動で変更を加えた場合や Lambda 関数が削除された場合に、最新の Lambda レイヤーを検出する場合があります。この問題を解決するには、新しいCanary を作成します。
Canary にアタッチされている IAM ロールに、Lambda サービスとの信頼関係がありません
Canary IAM ロールに Lambda サービスとの信頼関係がない場合は、IAM ロールに次のステートメントが含まれていることを確認します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Amazon VPC に関する問題
Amazon VPC の問題をトラブルシューティングするには、「VPC で作成した CloudWatch Canary で発生したエラーを解決する方法を教えてください」を参照してください。
関連情報
CloudWatch Canary の実行が停止した理由を教えてください
CloudWatch Synthetics を使用してウェブサイトのパフォーマンスを監視する方法を教えてください