過去と現行のEC2およびRDS設定をCLIで比較する方法

## はじめに
EC2とRDSのインスタンスタイプを変更後、describeコマンドを実行して差分を取得してみた


### EC2を作成してインスタンスタイプをt2.microにしてみた
変更前
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2599002/2954e202-1160-8746-a167-d0b1d0401559.png)

cloudshellを起動して以下のコマンドを取得して設定情報を取得した
```
aws ec2 describe-instances --instance-ids <インスタンスID i-042961aa090ca3366> > list_bef
```
### EC2を作成してインスタンスタイプをt2.smallにしてみた
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2599002/ee245580-6a48-4787-ec82-8fe19e02f9de.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2599002/501e5d65-917e-c89b-32c4-519493f0d141.png)

cloudshellを起動して以下のコマンドを取得して設定情報を取得した
```
aws ec2 describe-instances --instance-ids <インスタンスID i-042961aa090ca3366> > list_aft
```

### インスタンスタイプの変更前と変更後で差分を比較してみた

インスタンスタイプの変更の差分が正しく出力されました。
EC2をインスタンスタイプを変更するために停止したため、EC2のパブリックIPアドレスが変わったため、差分として出力されています。
```
[cloudshell-user@ip-10-132-81-127 ~]$ diff list_bef list_aft
10c10
<                     "InstanceType": "t2.micro",
---
>                     "InstanceType": "t2.small",
12c12
<                     "LaunchTime": "2024-07-28T13:12:34+00:00",
---
>                     "LaunchTime": "2024-07-28T13:39:15+00:00",
24,25c24,25
<                     "PublicDnsName": "ec2-パブリックIPアドレス.ap-northeast-1.compute.amazonaws.com",
<                     "PublicIpAddress": "パブリックIPアドレス",
---
>                     "PublicDnsName": "ec2-パブリックIPアドレス.ap-northeast-1.compute.amazonaws.com",
>                     "PublicIpAddress": "パブリックIPアドレス",
53,54c53,54
<                                 "PublicDnsName": "パブリックIPアドレス.ap-northeast-1.compute.amazonaws.com",
<                                 "PublicIp": "パブリックIPアドレス"
---
>                                 "PublicDnsName": "ec2-パブリックIPアドレス.ap-northeast-1.compute.amazonaws.com",
>                                 "PublicIp": "パブリックIPアドレス"
81,82c81,82
<                                         "PublicDnsName": "ec2-13-115-230-66.ap-northeast-1.compute.amazonaws.com",
<                                         "PublicIp": "パブリックIPアドレス"
---
>                                         "PublicDnsName": "ec2-パブリックIPアドレス.ap-northeast-1.compute.amazonaws.com",
>                                         "PublicIp": "パブリックIPアドレス"
```

### RDSのインスタンスタイプをt3.microに設定しました
変更前
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2599002/d1167421-fef3-b188-741e-6ba2cb00b3f2.png)

cloudshellを起動して以下のコマンドを取得して設定情報を取得した
```
aws rds describe-db-instances --db-instance-identifier <RDSインスタンスID test-rds>  > list_rds_bef
```
### RDSのインスタンスタイプをt3.smallに設定しました
変更後
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2599002/da8d5a2f-87de-ee5b-ccd1-e9fbc7a5c84e.png)

cloudshellを起動して以下のコマンドを取得して設定情報を取得した
```
 aws rds describe-db-instances --db-instance-identifier test-rds > list_rds_aft
```
### インスタンスタイプの変更前と変更後で差分を比較してみた
```
[cloudshell-user@ip-10-132-81-127 ~]$ diff list_rds_bef list_rds_aft
5c5
<             "DBInstanceClass": "db.t3.micro",
---
>             "DBInstanceClass": "db.t3.small",
66c66
<             "LatestRestorableTime": "2024-07-28T13:50:00+00:00",
---
```

## まとめ
AWS CLIのdescribeコマンドを使用することで、設定変更後の比較が非常に見やすくなることが判明しました
過去取得したバックアップからEC2およびRDSのインスタンスを復元した後、現行のインスタンスと復元したインスタンスの設定値を比較することは、システムの健全性を確認するために非常に重要です。目視による比較は見落としのリスクがあるため、AWS CLIのdescribeコマンドを使用して効率的に比較する方法を知っていると、今後の運用に大変役立ちます