はじめに
こんにちは、クラウド事業部の山路です。
先日のAWSアップデートで、AWS Application Discovery Service (以降AWS ADS) に登録したサーバーなどのリソースを削除することができるようになりました。今回はこの機能について簡単に紹介いたします。
アップデート内容の紹介
今回のアップデートは以下のページで紹介されています。
今回のアップデートでは、AWS ADSに関する新しいAPIが利用できるようになりました。新しいAPIは以下の3つです。
- BatchDeleteAgents - AWS Application Discovery Service
- DescribeBatchDeleteConfigurationTask - AWS Application Discovery Service
- StartBatchDeleteConfigurationTask - AWS Application Discovery Service
※AWS CLIは以下のリンクから
- batch-delete-agents — AWS CLI 2.15.11 Command Reference
- describe-batch-delete-configuration-task — AWS CLI 2.15.11 Command Reference
- start-batch-delete-configuration-task — AWS CLI 2.15.11 Command Reference
これらのAPIを利用することで、AWS ADSに登録した一部リソースを削除できるようになりました。これまでAWS ADSに登録したサーバーやデータコレクターなどのリソースは削除することができず、検証目的で登録したり移行に使用したデータがそのまま残り続けるという問題がありました。今回のアップデートによりそれらリソースが削除できるようになったため、ADS上に余計なデータが残り続ける状態を解消できるようになりました。
検証してみる
ここから実際に新しいAPIを使ってAWS ADS上のデータを削除します。なお、本記事を投稿した時点ではAWSマネジメントコンソール上では操作できず、AWS CLIなどを使って実行する必要があります。
作業前の状況は以下の通り、AWS ADS上にはいくつかサーバーやエージェントのデータが残っています。これらは以前紹介した記事での検証で使ったものが残り続けていましたので、これを利用しました。
まずはエージェントを削除するため、 aws discovery batch-delete-agents
コマンドを利用します。なお今回はAWS CloudShell上でAWS CLIを実行します。
aws discovery batch-delete-agents
コマンドを実行するには、対象のエージェントIDを取得する必要があります。IDはAWSマネジメントコンソールからも取得可能ですが、ここではコマンドから取得しました。
[cloudshell-user@ip-10-6-77-68 ~]$ aws discovery describe-agents { "agentsInfo": [ { "agentId": "o-3rcrte46m3pg8xmm7", # エージェントID "hostName": "ip-10-0-0-198", "agentNetworkInfoList": [ { "ipAddress": "10.0.0.198", "macAddress": "06:5F:0E:EC:36:73" } ], "version": "2.0.2116.0", "health": "SHUTDOWN", "lastHealthPingTime": "2023-10-14T07:25:40Z", "collectionStatus": "STOPPED", "agentType": "ONPREMISES", "registeredTime": "2023-10-14T06:08:31Z" }, { "agentId": "o-3u1lsepaqtce77qr5", # エージェントID "hostName": "ip-10-0-0-217", "agentNetworkInfoList": [ { "ipAddress": "10.0.0.217", "macAddress": "06:A6:F8:99:7C:0B" } ], "version": "2.0.2116.0", "health": "SHUTDOWN", "lastHealthPingTime": "2023-10-02T09:35:37Z", "collectionStatus": "STOP_SCHEDULED", "agentType": "ONPREMISES", "registeredTime": "2023-10-02T08:28:56Z" } ] } [cloudshell-user@ip-10-6-77-68 ~]$
取得したIDを指定してコマンドを実行します。
[cloudshell-user@ip-10-6-77-68 ~]$ aws discovery batch-delete-agents --delete-agents agentId=o-3rcrte46m3pg8xmm7 { "errors": [] } [cloudshell-user@ip-10-6-77-68 ~]$
コマンドを実行すると、該当のエージェントが削除されているのを確認できます。
続いてサーバーの削除を行います。サーバーの削除を行う aws discovery start-batch-delete-configuration-task
というコマンドを実行するには、各サーバーの持つConfiguration IDを指定する必要があります。ここでは aws discovery list-configurations
というコマンドからIDを取得します。
[cloudshell-user@ip-10-6-77-68 ~]$ aws discovery list-configurations --configuration-type SERVER { "configurations": [ { "server.agentId": "o-3rcrte46m3pg8xmm7", "server.configurationId": "d-server-02oiqr8k8w66k7", # Configuration ID "server.hostName": "ip-10-0-0-198", "server.osName": "Linux - Ubuntu 20.04.6 LTS x86_64 (Linux 5.15.0-1036-aws)", "server.osVersion": "20.4.0.0", "server.source": "Agent", "server.timeOfCreation": "2023-10-14 06:11:28.9", "server.type": "OTHER" }, { "server.agentId": "o-3u1lsepaqtce77qr5", "server.configurationId": "d-server-03ewjpazc9gor6", # Configuration ID "server.hostName": "ip-10-0-0-217", "server.osName": "Linux - Ubuntu 20.04.6 LTS x86_64 (Linux 5.15.0-1036-aws)", "server.osVersion": "20.4.0.0", "server.source": "Agent", "server.timeOfCreation": "2023-10-02 08:32:25.1", "server.type": "OTHER" } ] } [cloudshell-user@ip-10-6-77-68 ~]$
取得したIDをもとにサーバー削除のコマンドを実行します。
[cloudshell-user@ip-10-6-77-68 ~]$ aws discovery start-batch-delete-configuration-task --configuration-type SERVER --configuration-ids d-server-02oiqr8k8w66k7 { "taskId": "f4413830-fac4-4691-bf22-d137d09990aa" } # 削除タスクの状況を確認する [cloudshell-user@ip-10-6-77-68 ~]$ aws discovery describe-batch-delete-configuration-task --task-id f4413830-fac4-4691-bf22-d137d09990aa { "task": { "taskId": "f4413830-fac4-4691-bf22-d137d09990aa", "status": "COMPLETED", "startTime": "2023-11-13T02:06:00.913000+00:00", "endTime": "2023-11-13T02:06:03.526000+00:00", "configurationType": "SERVER", "requestedConfigurations": [ "d-server-02oiqr8k8w66k7" ], "deletedConfigurations": [ "d-server-02oiqr8k8w66k7" ], "failedConfigurations": [], "deletionWarnings": [] } } [cloudshell-user@ip-10-6-77-68 ~]$
コマンド実行後、該当のサーバーが削除されるのを確認できます。
以上のように、AWS CLIからリソースを削除できることを確認できました。これまで検証で使ったリソースが残り続けていたのが気になっていたのですが、簡単に削除できるようになったのが地味にうれしかったので紹介しました。似たような境遇の方は是非お試しください。
最後に
弊社はAWSアドバンスドティアサービスパートナー認定を受けております。また以下のようにAWSの活用を支援するサービスも行っているので、何かご相談したいことがあればお気軽にご連絡ください。