AWS FIS の実験ロギング - AWS 障害インジェクションサービス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS FIS の実験ロギング

実験ロギングを使用すると、実験の実行時に実験に関する詳細情報を取得できます。

実験ロギングについては、各ログの宛先タイプに関連付けられたコストに基づいて経費が請求されます。詳細については、「Amazon CloudWatch 料金表」(有料利用枠、ログ 、提供されるログ の下) および「Amazon S3 料金表 」を参照してください。 Amazon S3

アクセス許可

設定した各ログ送信先にログを送信する権限を AWS FIS に与える必要があります。詳細については、Amazon CloudWatch Logs ユーザーガイドの以下を参照してください。

ログスキーマ

以下は実験ロギングで使用されるスキーマです。スキーマの現在のバージョンは 2 です。details のフィールドは log_type の値によって異なります。resolved_targets のフィールドは target_type の値によって異なります。詳細については、「ログレコードの例」を参照してください。

{ "id": "EXP123abc456def789", "log_type": "experiment-start | target-resolution-start | target-resolution-detail | target-resolution-end | action-start | action-error | action-end | experiment-end", "event_timestamp": "yyyy-mm-ddThh:mm:ssZ", "version": "2", "details": { "account_id":"123456789012", "action_end_time": "yyyy-mm-ddThh:mm:ssZ", "action_id": "String", "action_name": "String", "action_start_time": "yyyy-mm-ddThh:mm:ssZ", "action_state": { "status": "pending | initiating | running | completed | cancelled | stopping | stopped | failed", "reason": "String" }, "action_targets": "String to string map", "error_information": "String", "experiment_end_time": "yyyy-mm-ddThh:mm:ssZ", "experiment_state": { "status": "pending | initiating | running | completed | stopping | stopped | failed", "reason": "String" }, "experiment_start_time": "yyyy-mm-ddThh:mm:ssZ", "experiment_template_id": "String", "page": Number, "parameters": "String to string map", "resolved_targets": [ { "field": "value" } ], "resolved_targets_count": Number, "status": "failed | completed", "target_name": "String", "target_resolution_end_time": "yyyy-mm-ddThh:mm:ssZ", "target_resolution_start_time": "yyyy-mm-ddThh:mm:ssZ", "target_type": "String", "total_pages": Number, "total_resolved_targets_count": Number } }
リリースノート
  • バージョン 2 で次が導入されました。

    • target_type フィールドを導入し、resolved_targets フィールドを ARN のリストからオブジェクトのリストに変更しました。resolved_targets オブジェクトの有効なフィールドは、ターゲットのリソースタイプである target_type の値によって異なります。

    • account_id フィールドを追加する action-error および target-resolution-detail イベントタイプ。

  • バージョン 1 は初期リリースです。

ログの宛先

AWS FIS は次の宛先へのログ配信をサポートしています。

  • Amazon S3 バケット

  • Amazon CloudWatch Logs ロググループ

S3 ログ配信

ログは次の場所に配信されます。

bucket-and-optional-prefix/AWSLogs/account-id/fis/region/experiment-id/YYYY/MM/DD/account-id_awsfislogs_region_experiment-id_YYYYMMDDHHMMZ_hash.log

ログがバケットに配信されるまでに数分かかることがあります。

CloudWatch ログの配信

ログは /aws/fis/experiment-id という名前のログストリームに配信されます。

ログは 1 分以内にロググループに配信されます。

ログレコードの例

以下は、ランダムに選択された EC2 インスタンスで aws:ec2:reboot-instances アクションを実行する実験のログレコードの例です。

experiment-start

以下に示したのは、experiment-start イベントのレコードの例です。

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "experiment-start", "event_timestamp": "2023-05-31T18:50:45Z", "version": "2", "details": { "experiment_template_id": "EXTCDh1M8HHkhxoaQ", "experiment_start_time": "2023-05-31T18:50:43Z" } }
target-resolution-start

以下に示したのは、target-resolution-start イベントのレコードの例です。

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "target-resolution-start", "event_timestamp": "2023-05-31T18:50:45Z", "version": "2", "details": { "target_resolution_start_time": "2023-05-31T18:50:45Z", "target_name": "EC2InstancesToReboot" } }
target-resolution-detail

以下に示したのは、target-resolution-detail イベントのレコードの例です。ターゲットの解決に失敗した場合、レコードには error_information フィールドも含まれます。

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "target-resolution-detail", "event_timestamp": "2023-05-31T18:50:45Z", "version": "2", "details": { "target_resolution_end_time": "2023-05-31T18:50:45Z", "target_name": "EC2InstancesToReboot", "target_type": "aws:ec2:instance", "account_id": "123456789012", "resolved_targets_count": 2, "status": "completed" } }
target-resolution-end

ターゲットの解決に失敗した場合、レコードには error_information フィールドも含まれます。total_pages が 1 より大きい場合、解決されたターゲットの数が 1 つのレコードのサイズ制限を超えています。残りの解決済みターゲットを含むレコードが他にも target-resolution-end レコードあります。

EC2 アクションの target-resolution-end イベントのレコード例を以下に示します。

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "target-resolution-end", "event_timestamp": "2023-05-31T18:50:45Z", "version": "2", "details": { "target_resolution_end_time": "2023-05-31T18:50:46Z", "target_name": "EC2InstanceToReboot", "target_type": "aws:ec2:instance", "resolved_targets": [ { "arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-0f7ee2abffc330de5" } ], "page": 1, "total_pages": 1 } }

以下は EKS アクションの target-resolution-end イベントのレコード例です。

{ "id": "EXP24YfiucfyVPJpEJn", "log_type": "target-resolution-end", "event_timestamp": "2023-05-31T18:50:45Z", "version": "2", "details": { "target_resolution_end_time": "2023-05-31T18:50:46Z", "target_name": "myPods", "target_type": "aws:eks:pod", "resolved_targets": [ { "pod_name": "example-696fb6498b-sxhw5", "namespace": "default", "cluster_arn": "arn:aws:eks:us-east-1:123456789012:cluster/fis-demo-cluster", "target_container_name": "example" } ], "page": 1, "total_pages": 1 } }
action-start

以下に示したのは、action-start イベントのレコードの例です。実験テンプレートでアクションのパラメータが指定されている場合、レコードには parameters フィールドも含まれます。

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "action-start", "event_timestamp": "2023-05-31T18:50:56Z", "version": "2", "details": { "action_name": "Reboot", "action_id": "aws:ec2:reboot-instances", "action_start_time": "2023-05-31T18:50:56Z", "action_targets": {"Instances":"EC2InstancesToReboot"} } }
action-error

以下に示したのは、action-error イベントのレコードの例です。このイベントは、アクションが失敗したときにのみ返されます。アクションが失敗したアカウントごとに返されます。

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "action-error", "event_timestamp": "2023-05-31T18:50:56Z", "version": "2", "details": { "action_name": "pause-io", "action_id": "aws:ebs:pause-volume-io", "account_id": "123456789012", "action_state": { "status": "failed", "reason":"Unable to start Pause Volume IO. Target volumes must be attached to an instance type based on the Nitro system. VolumeId(s): [vol-1234567890abcdef0]:" } } }
action-end

以下に示したのは、action-end イベントのレコードの例です。

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "action-end", "event_timestamp": "2023-05-31T18:50:56Z", "version": "2", "details": { "action_name": "Reboot", "action_id": "aws:ec2:reboot-instances", "action_end_time": "2023-05-31T18:50:56Z", "action_state": { "status": "completed", "reason": "Action was completed." } } }
experiment-end

以下に示したのは、experiment-end イベントのレコードの例です。

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "experiment-end", "event_timestamp": "2023-05-31T18:50:57Z", "version": "2", "details": { "experiment_end_time": "2023-05-31T18:50:57Z", "experiment_state": { "status": "completed", "reason": "Experiment completed" } } }

実験ロギングを有効にする

実験ロギングは、デフォルトで無効になっています。実験用に実験ログを受け取るには、ロギングを有効にした実験テンプレートから実験を作成する必要があります。過去にロギングに使用したことのない宛先を使用する設定のテストを初めて実行するときは、この宛先へのログ配信を設定するため、実験開始までに約 15 秒の遅延が生じます。

コンソールで実験ロギングの作成を有効にするには
  1. https://console.aws.amazon.com/fis/ で AWS FIS コンソールを開きます。

  2. ナビゲーションペインで、[実験テンプレート] を選択します。

  3. 実験テンプレートを選択し、[アクション][実験テンプレートを更新する] を選択します。

  4. [ログ] では、送信先オプションを設定します。S3 バケットにログを送信するには、[Amazon S3 バケットに送信] を選択し、バケット名とプレフィックスを入力します。ログを CloudWatch Logs に送信するには、 CloudWatch ログに送信を選択し、ロググループを入力します。

  5. [実験テンプレートの作成] を選択します。

AWS CLI を使用した実験ロギングを有効にするには

update-experiment-template コマンドを使用して、ログ設定を指定します。

実験ロギングの無効化

実験のログを受け取りたくない場合は、実験ロギングの作成を無効にできます。

コンソールを使用して実験ロギングの作成を無効にするには
  1. https://console.aws.amazon.com/fis/ で AWS FIS コンソール を開きます。

  2. ナビゲーションペインで、[実験テンプレート] を選択します。

  3. 実験テンプレートを選択し、[アクション][実験テンプレートを更新する] を選択します。

  4. ログ の場合Amazon S3 バケットへの送信 CloudWatch ログ への送信 をクリアします

  5. [実験テンプレートの更新] を選択します。

AWS CLI を使用して実験ロギングの作成を無効にするには

update-experiment-template コマンドを使用して、空のログ設定を指定します。