みなさん、こんにちは。サニービュー事業部の小寺です。
AWS Systems Managerをお使いの方は多くいらっしゃると思います。
今回、AWS Systems Managerの一機能であるAWS AppConfigがより便利になりました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/07/aws-announces-appconfig-extensions/

AWS AppConfigとは

AWS System Managerのアプリケーション管理の機能の一つです。Systems Managerについては、過去記事があるので、こちらからご確認ください。
アプリケーション管理としては、他にApplication Manager、パラメータストアの2つの機能があります。

AWS AppConfigは、様々な構成ファイルや設定プロファイルをAWS上で保存・更新・デプロイするためのマネージドサービスです。通常のコード管理用のサービスとは異なり、毎回コードをデプロイする必要はないです。 主な管理対象が構成ファイルや設定プロファイルとなるため、必要に応じてコード管理系のAWS CodeCommitなどとの使い分けが必要です。

AWS AppConfigの特徴

・設定変更の一元管理
AppConfigを利用することで、設定の変更をまとめて一元的にデプロイができます。設定ソースはSystems Manager(SSM)ドキュメント、Parameter Store、Simple Storage Service(S3)、AWS CodePipelineに保存が可能です。

・デプロイ先のサービスに合わせて拡張が可能
デプロイ先のサービスに合わせて拡張が可能です。
デプロイ先としては、 Amazon Elastic Compute Cloud (EC2) インスタンス、コンテナ、AWS Lambda 関数、モバイルアプリケーション、IoT デバイス、またはオンプレミスインスタンスに設定をデプロイできます。

・デプロイの事前検証ができる
設定値の比較機能があるので、デプロイ前の検証ができます。バージョン比較は、設定プロファイル上で確認出来るので、デプロイ操作に問題がないのか事前検証が行えます。

・デプロイ戦略が実行できる
デプロイ戦略をカスタマイズして、変更を即時に反映したり、段階的にロールアウトすることができます。デプロイ戦略は通常は3パターンから選べます。
Amazon CloudWatch アラームがトリガーされると、デプロイされた設定は AWS AppConfigから自動的にロールバックされます。

今回のアップデート内容

拡張機能でどのようなことができるようになったのでしょうか。
拡張機能は「App Config」の「拡張機能」タブから確認ができます。

「AppConfig Feature Flags Helper(機能フラグ)」では、例えば、ホストされている構成データのJSONが更新される毎に、タイムスタンプを追加したいとします。
拡張機能を利用すればPRE_CREATE_HOSTED_CONFIGURATION_VERSIONアクションポイントにフックして、タイムスタンプを追加してくれるAWS Lambdaが利用できます。

さらに、データ形式に関係なく、ホストされている構成データの各バージョンのコピーをGithubなどのソースリポジトリにエクスポートすることもできるようになりました。PRE_CREATE_HOSTED_CONFIGURATION_VERSIONアクションポイントにフックする別の拡張機能を作成して、データが変更されるたびにホストされているデータをリポジトリにエクスポートすることもできます。

注意点としては、ライフサイクルの拡張機能をアプリケーションに関連付けると、後日作成された設定ファイルも含め、アプリケーションでホストされているすべての構成プロファイルに 自動的に適用されます。デプロイ前には、別のソースからのデータを構成データにマージする必要がある場合もありますので、要注意です。

「AppConfig integration with Atlassian Jira」では、AppConfig機能フラグヘルパー拡張機能と、機能フラグに関連付けられたJiraについて、課題を作成および管理するJira統合も行うことができます。

残りの3つは通知系の拡張機能です。ON_DEPLOYMENT_START、ON_DEPLOYMENT_COMPLETE、およびON_DEPLOYMENT_ROLLEDBACKアクションポイントについて、EventBridge、SNS、SQS にプッシュする AppConfig Notificationも利用できるようになりました。こちらは、アプリケーション作成時に「拡張機能を関連付ける」から選択をすることができます。

まとめ

いかがでしたでしょうか。より便利になった拡張機能について活用してみたいと思います。また、将来的には、AWSが所有する多くの拡張機能といくつかのサードパーティの拡張機能をリリースする予定があるとのことです。