[小ネタ]Amazon CloudWatch Internet Monitorが削除できないときの対処法

引き止めるくせにあっさり消える
2024.05.07

たぬき( @tanuki_tzp )です。
Internet Monitorを作成して、色々確認してみた後に消そうとしたらワンクッションありました。

モニターが消せない

test-monitorを消したくなったので、コンソールのアクションから消してみました。

エラーが出ます。

CLIでも試してみます。

[cloudshell-user@ip-10-134-15-18 ~]$ aws internetmonitor get-monitor --monitor-name test-monitor
{
    "MonitorName": "test-monitor",
    "MonitorArn": "arn:aws:internetmonitor:ap-northeast-1:0123456789012:monitor/test-monitor",
    "Resources": [
        "arn:aws:ec2:ap-northeast-1:0123456789012:vpc/vpc-08b566c26b91e8e74"
    ],
    "Status": "ACTIVE",
    "CreatedAt": "2024-05-06T13:00:25+00:00",
    "ModifiedAt": "2024-05-06T13:24:36+00:00",
    "ProcessingStatus": "COLLECTING_DATA",
    "ProcessingStatusInfo": "The monitor is OK and is collecting data-points to produce insights",
    "Tags": {},
    "InternetMeasurementsLogDelivery": {},
    "TrafficPercentageToMonitor": 100
}

[cloudshell-user@ip-10-134-15-18 ~]$ aws internetmonitor delete-monitor --monitor-name test-monitor
An error occurred (ValidationException) when calling the DeleteMonitor operation: monitor test-monitor must be in inactive state before deletion

やはり消せませんでした。

対処法

エラー文を読むと、どうやらActive状態のモニターは消せないようです。
そのため、削除する前に一度無効化してあげる必要があります。

コンソール

対象のモニターを選択し、アクションから「無効化」を選択します。

無効化されました。

この状態で再度削除を試すと、削除承認後にはモニターが正常に削除され、確認できなくなくなりました。

AWS CLI

AWS CLIでの無効化コマンドは下記です。 適宜、"monitor-name"と"region"を読み替えてください。

aws internetmonitor update-monitor --monitor-name <monitor-name> --region <region> --status INACTIVE

実行結果

[cloudshell-user@ip-10-134-15-18 ~]$ aws internetmonitor update-monitor --monitor-name test-monitor --status INACTIVE
{
    "MonitorArn": "arn:aws:internetmonitor:ap-northeast-1:0123456789012:monitor/test-monitor",
    "Status": "PENDING"
}
[cloudshell-user@ip-10-134-15-18 ~]$ aws internetmonitor get-monitor --monitor-name test-monitor
{
    "MonitorName": "test-monitor",
    "MonitorArn": "arn:aws:internetmonitor:ap-northeast-1:0123456789012:monitor/test-monitor",
    "Resources": [
        "arn:aws:ec2:ap-northeast-1:0123456789012:vpc/vpc-08b566c26b91e8e74"
    ],
    "Status": "INACTIVE",
    "CreatedAt": "2024-05-06T13:00:25+00:00",
    "ModifiedAt": "2024-05-06T13:36:03+00:00",
    "ProcessingStatus": "COLLECTING_DATA",
    "ProcessingStatusInfo": "The monitor is OK and is collecting data-points to produce insights",
    "Tags": {},
    "InternetMeasurementsLogDelivery": {},
    "TrafficPercentageToMonitor": 100
}
[cloudshell-user@ip-10-134-15-18 ~]$ aws internetmonitor delete-monitor --monitor-name test-monitor
[cloudshell-user@ip-10-134-15-18 ~]$ aws internetmonitor get-monitor --monitor-name test-monitor

An error occurred (ResourceNotFoundException) when calling the GetMonitor operation: No resource found for account 0123456789012 and resource monitor/test-monitor

正常に削除されました。
削除後のget-monitorでエラーが出ているのは、対象のモニターを削除したため、モニターの情報を取得できなくなったためです。

おわりに

大したことはしていないのですが、誰も書いていなかったので書いてみました。
誰かのお役に立てれば幸いです。