Route 53 ヘルスチェックを設定するための AWS CloudFormation テンプレート - Amazon EventBridge

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

Route 53 ヘルスチェックを設定するための AWS CloudFormation テンプレート

グローバルエンドポイントを使用する場合は、リージョンのステータスを監視するために Route 53 ヘルスチェックが必要です。次のテンプレートは、Amazon CloudWatch アラームを定義し、それを使用して Route 53 ヘルスチェックを定義します。

Route 53 ヘルスチェックを定義するための AWS CloudFormation テンプレート

Route 53 ヘルスチェックを定義するには、次のテンプレートを使用します。

Description: |- Global endpoints health check that will fail when the average Amazon EventBridge latency is above 30 seconds for a duration of 5 minutes. Note, missing data will cause the health check to fail, so if you only send events intermittently, consider changing the heath check to use a longer evaluation period or instead treat missing data as 'missing' instead of 'breaching'. Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: "Global endpoint health check alarm configuration" Parameters: - HealthCheckName - HighLatencyAlarmPeriod - MinimumEvaluationPeriod - MinimumThreshold - TreatMissingDataAs ParameterLabels: HealthCheckName: default: Health check name HighLatencyAlarmPeriod: default: High latency alarm period MinimumEvaluationPeriod: default: Minimum evaluation period MinimumThreshold: default: Minimum threshold TreatMissingDataAs: default: Treat missing data as Parameters: HealthCheckName: Description: Name of the health check Type: String Default: LatencyFailuresHealthCheck HighLatencyAlarmPeriod: Description: The period, in seconds, over which the statistic is applied. Valid values are 10, 30, 60, and any multiple of 60. MinValue: 10 Type: Number Default: 60 MinimumEvaluationPeriod: Description: The number of periods over which data is compared to the specified threshold. You must have at least one evaluation period. MinValue: 1 Type: Number Default: 5 MinimumThreshold: Description: The value to compare with the specified statistic. Type: Number Default: 30000 TreatMissingDataAs: Description: Sets how this alarm is to handle missing data points. Type: String AllowedValues: - breaching - notBreaching - ignore - missing Default: breaching Mappings: "InsufficientDataMap": "missing": "HCConfig": "LastKnownStatus" "breaching": "HCConfig": "Unhealthy" Resources: HighLatencyAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmDescription: High Latency in Amazon EventBridge MetricName: IngestionToInvocationStartLatency Namespace: AWS/Events Statistic: Average Period: !Ref HighLatencyAlarmPeriod EvaluationPeriods: !Ref MinimumEvaluationPeriod Threshold: !Ref MinimumThreshold ComparisonOperator: GreaterThanThreshold TreatMissingData: !Ref TreatMissingDataAs LatencyHealthCheck: Type: AWS::Route53::HealthCheck Properties: HealthCheckTags: - Key: Name Value: !Ref HealthCheckName HealthCheckConfig: Type: CLOUDWATCH_METRIC AlarmIdentifier: Name: Ref: HighLatencyAlarm Region: !Ref AWS::Region InsufficientDataHealthStatus: !FindInMap [InsufficientDataMap, !Ref TreatMissingDataAs, HCConfig] Outputs: HealthCheckId: Description: The identifier that Amazon Route 53 assigned to the health check when you created it. Value: !GetAtt LatencyHealthCheck.HealthCheckId

イベント ID は API 呼び出し間で変更されることがあるため、リージョン間でイベントを関連付けるには、不変の一意の識別子が必要です。消費者も冪等性を念頭に置いて設計する必要があります。そうすれば、イベントを複製したり、アーカイブから再生したりする場合、イベントが両方のリージョンで処理されることによる副作用はありません。

CloudWatch アラームテンプレートのプロパティ

注記

すべての editable フィールドについて、1 秒あたりのスループットを考慮します。断続的にイベントを送信するだけの場合は、ヘルスチェックを、より長い評価期間を使用するか、欠損データを breaching ではなく missing として扱うように変更することを検討してください。

テンプレートの CloudWatch アラームセクションでは、次のプロパティが使用されます。

メトリクス 説明

AlarmDescription

アラームの説明。

デフォルト: High Latency in Amazon EventBridge

MetricName

アラームに関連付けられているメトリクスの名前。これは、メトリクスに基づくアラームの場合に必須です。数式に基づくアラームの場合は、代わりに Metrics を使用し、MetricName を指定することはできません。

デフォルト: IngestionToInvocationStartLatency

Namespace

アラームに関連付けられているメトリクスの名前空間。これは、メトリクスに基づくアラームの場合に必須です。数式に基づくアラームの場合、Namespace を指定することはできず、代わりに Metrics を使用します。

デフォルト: AWS/Events

Statistic

アラームに関連付けられているメトリクスの統計 (パーセンタイル以外)。

デフォルト: Average

Period

統計を適用する時間 (秒)。これは、メトリクスに基づくアラームの場合に必須です。可能な値は 10、30、60、および 60 の倍数です。

デフォルト: 60

EvaluationPeriods

指定した Threshold の値とデータを比較する時間。アラームをトリガーするために、複数の連続するデータポイントがしきい値を超過することが必要なアラームを設定する場合、この値はその数を指定します。「N 個中 M 個」のアラームを設定する場合、この値は N で、DatapointsToAlarm は M です。

デフォルト: 5

Threshold

指定された統計と比較する値。

デフォルト: 30,000

ComparisonOperator

指定した statistic および threshold の値を比較するときに使用する算術演算。指定した statistic の値が 1 番目のオペランドとして使用されます。

デフォルト: GreaterThanThreshold

TreatMissingData

このアラームが不足しているデータポイントを処理する方法を設定します。

有効な値: breachingnotBreachingignore、および missing

デフォルト: breaching

Route 53 ヘルスチェックテンプレートのプロパティ

注記

すべての editable フィールドについて、1 秒あたりのスループットを考慮します。断続的にイベントを送信するだけの場合は、ヘルスチェックを、より長い評価期間を使用するか、欠損データを breaching ではなく missing として扱うように変更することを検討してください。

テンプレートの Route 53 ヘルスチェックセクションでは、次のプロパティが使用されます。

メトリクス 説明

HealthCheckName

ヘルスチェックの名前。

デフォルト: LatencyFailuresHealthCheck

InsufficientDataHealthStatus

CloudWatch のメトリクスに関するデータが不十分なためにアラーム状態を判断できないときに、Amazon Route 53 がヘルスチェックに割り当てるステータス。

有効な値:

  • Healthy: Route 53 のヘルスチェックが正常であると見なされます。

  • Unhealthy: Route 53 のヘルスチェックが不正常であると見なされます。

  • LastKnownStatus: Route 53 は、CloudWatch がアラーム状態を判断するのに十分なデータを持っていた最後の時点からのヘルスチェックのステータスを使用します。既知の最新ステータスがない新しいヘルスチェックの場合、ヘルスチェックのデフォルトステータスは "正常" になります。

デフォルト: Unhealthy

注記

このフィールドは、TreatMissingData フィールドへの入力に基づいて更新されます。TreatingMissingDataMissing に設定された場合、LastKnownStatus に更新されます。TreatingMissingDataBreaching に設定された場合、Unhealthy に更新されます。