AWS AppConfig で設定プロファイルの比較が出来るようになりました

2021.07.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

AWS SystemsManagerには、AWS AppConfigという機能があります。
様々な構成ファイルや設定プロファイルをAWS上で保存・更新・デプロイするためのマネージド環境が提供されています。

今回、AWS AppConfigに設定値の比較機能が追加されましたので、早速使い勝手を試してみました。

やってみた

AWS AppConfig上で以下の設定プロファイルを作成します。
Webアプリケーションやモバイルアプリケーションで、デプロイ後に再デプロイを伴わずにアプリケーションの挙動を変えたいシーンは多いと思いますが、そういった際に使うjson設定ファイルを想定しています。

{
  "features": [
    {
      "features": "enable-admin",
      "enabled": true
    },
    {
      "features": "enable-password-encrypt",
      "enabled": true
    }
  ],
  "apis": [
    {
      "function": "get-users",
      "ref": "https://xxx-xxx.xx/xxxxx"
    },
    {
      "function": "get-admins",
      "ref": "https://xxx-xxx.xx/xxxxx"
    }
  ]
}

アプリケーションの運用中に、試験的に運用していた管理機能を無効化することになり、連携を行うAPIのドメインが変更されたとします。
以下のように変更を行います。

{
  "features": [
    {
      "features": "enable-admin",
      "enabled": false
    },
    {
      "features": "enable-password-encrypt",
      "enabled": true
    }
  ],
  "apis": [
    {
      "function": "get-users",
      "ref": "https://xxx-aaa.xx/xxxxx"
    },
    {
      "function": "get-admins",
      "ref": "https://xxx-aaa.xx/xxxxx"
    }
  ]
}

設定プロファイルの比較はバージョン右に Compare versionsボタンが追加されています。

実行すると、比較元バージョンと比較先バージョンを選択し、変更箇所がハイライトされています。

このバージョン比較は、設定プロファイル上で確認出来るので、環境へのデプロイ操作前に問題がないかの確認が出来るという点が大きなポイントです。

変更に加えて、要素の削除や追加も併せて行ってみましょう。

{
  "features": [
    {
      "features": "enable-admin",
      "enabled": false
    },
    {
      "features": "enable-password-encrypt",
      "enabled": true
    },
    {
      "features": "enable-hogehoge",
      "enabled": true
    },
  ],
  "apis": [
    {
      "function": "get-admins",
      "ref": "https://xxx-aaa.bb/xxxxx"
    }
  ]
}

現時点では、変更、追加、削除が全て同じ色で表示されます。
複数の変更をまとめて行う運用の是非は置いておくとして、変更・追加・削除で色分けなどされるとより見やすくなりそうですね!  

まとめ

AppConfigを利用されている方にとって、この追加機能とても嬉しいです。
必須だろ今まで出来なかったのか?とさえちょっと思ってしまうくらいです。

ローカルで十分確認したとしても、クラウド上で作業をするときに同じ状況になっているのかという心配は多かったと思います。
データベースやストレージへ設定ファイルを保存するなどでアプリケーション構成ファイルを管理するケースもまだまだ多いと思いますが、AWS AppConfigがもっと使われるきっかけになれば良いと思っています。