AWS AppConfig での機能フラグとフリーフォーム設定データの作成 - AWS AppConfig

AWS AppConfig での機能フラグとフリーフォーム設定データの作成

このセクションのトピックは、AWS AppConfig 内にある以下のタスクを実行するのに役立ちます。これらのタスクでは設定データのデプロイにおいて重要なアーティファクトが作成されます。

1. アプリケーションの名前空間を作成する

アプリケーションの名前空間を作成するには、アプリケーションと呼ばれる AWS AppConfig アーティファクトを作成する必要があります。アプリケーションはフォルダのようなシンプルな組織構造です。

2. 環境の作成

AWS AppConfig アプリケーションごとに、1 つ以上の環境を定義します。環境とは、BetaまたはProduction環境のアプリケーションなど、AWS AppConfigターゲットの論理的なデプロイメントグループです。アプリケーションの AWS Lambda functionsContainersWebMobile および Back-end といったコンポーネントを含む、アプリケーションのサブコンポーネントの環境を定義することもできます。‬‬

環境ごとにAmazon CloudWatchアラームを設定して、問題のある設定変更を自動的にロールバックできます。システムは、設定のデプロイ中にアラームをモニタリングします。アラームがトリガーされると、システムは設定をロールバックします。

3. 設定プロファイルの作成

設定データは、アプリケーションの動作に影響する設定のコレクションです。設定プロファイルには、AWS AppConfig が設定データの保存場所を特定するための URI やプロファイルタイプなどが含まれます。AWS AppConfig は、次のタイプの設定プロファイルをサポートします。

  • 機能フラグ: 機能フラグを使用して、アプリケーション内の機能を有効または無効にしたり、フラグ属性を使用してアプリケーション機能のさまざまな特性を設定したりできます。AWS AppConfig は、機能フラグ設定を、フラグとフラグ属性に関するデータおよびメタデータを含む機能フラグ形式で、AWS AppConfig でホストされた設定ストアに保存します。機能フラグ設定の URI は、シンプルに hosted です。

  • フリーフォーム設定: フリーフォーム設定では、次のいずれかのサービスや機能にデータを保存できます。

    • AWS AppConfig でホストされた設定ストア

    • Amazon Simple Storage Service

    • AWS CodePipeline

    • AWS Secrets Manager

    • AWS Systems Manager (SSM) パラメータストア

    • SSM ドキュメントストア

注記

ほとんどの機能や拡張機能が提供されるため、可能な場合は AWS AppConfig でホストされる設定ストアで設定データをホストすることをお勧めします。

4. (オプションですが推奨) マルチバリアント機能フラグを作成する

AWS AppConfig は、基本的な機能フラグを提供します。これは (有効な場合) リクエストごとに特定の設定データのセットを返します。ユーザーセグメンテーションとトラフィック分割のユースケースをより適切にサポートするために、AWS AppConfig には、リクエストに対して返す可能性のあるフラグ値のセットを定義できるマルチバリアント機能フラグも用意されています。マルチバリアントフラグには、異なるステータス (有効または無効) を設定することもできます。バリアントで設定されたフラグをリクエストする場合、アプリケーションは、AWS AppConfig がユーザー定義のルールセットに対して評価するコンテキストを提供します。リクエストで指定されたコンテキストとバリアントに定義されたルールに応じて、AWS AppConfig は異なるフラグ値をアプリケーションに返します。

次のセクションには、機能フラグとフリーフォーム設定データのサンプルが含まれています。

機能フラグ設定データ

次の機能フラグ設定データは、モバイル決済とデフォルト決済を地域ごとに有効または無効にします。

JSON
{ "allow_mobile_payments": { "enabled": false }, "default_payments_per_region": { "enabled": true } }
YAML
--- allow_mobile_payments: enabled: false default_payments_per_region: enabled: true

オペレーション設定データ

次のフリーフォームの設定データでは、アプリケーションのリクエスト処理方法に制限が課されます。

JSON
{ "throttle-limits": { "enabled": "true", "throttles": [ { "simultaneous_connections": 12 }, { "tps_maximum": 5000 } ], "limit-background-tasks": [ true ] } }
YAML
--- throttle-limits: enabled: 'true' throttles: - simultaneous_connections: 12 - tps_maximum: 5000 limit-background-tasks: - true

アクセス制御リスト設定データ

以下のアクセス制御リストのフリーフォーム設定データでは、アプリケーションにアクセスできるユーザーまたはグループを指定します。

JSON
{ "allow-list": { "enabled": "true", "cohorts": [ { "internal_employees": true }, { "beta_group": false }, { "recent_new_customers": false }, { "user_name": "Jane_Doe" }, { "user_name": "John_Doe" } ] } }
YAML
--- allow-list: enabled: 'true' cohorts: - internal_employees: true - beta_group: false - recent_new_customers: false - user_name: Jane_Doe - user_name: Ashok_Kumar