What is Amazon AppConfig? - Amazon AppConfig
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

What is Amazon AppConfig?

Amazon AppConfig feature flags and dynamic configurations help software builders quickly and securely adjust application behavior in production environments without full code deployments. Amazon AppConfig speeds up software release frequency, improves application resiliency, and helps you address emergent issues more quickly.

With feature flags, you can gradually release new capabilities to users and measure the impact of those changes before fully deploying the new capabilities to all users. With operational flags and dynamic configurations, you can update block lists, allow lists, throttling limits, logging verbosity, and perform other operational tuning to quickly respond to issues in production environments.

Get started with Amazon AppConfig

The following video can help you understand the capabilities of Amazon AppConfig.

Video: Introduction to Amazon AppConfig

View a video introduction to Amazon AppConfig capabilities.

View more Amazon videos on the Amazon Web Services YouTube Channel.

Amazon AppConfig use cases

Amazon AppConfig supports a broad spectrum of use cases:

  • Feature flags and toggles – Safely release new capabilities to your customers in a controlled environment. Instantly roll back changes if you experience a problem.

  • Application tuning – Carefully introduce application changes while testing the impact of those changes with users in production environments.

  • Allow list or block list – Control access to premium features or instantly block specific users without deploying new code.

  • Centralized configuration storage – Keep your configuration data organized and consistent across all of your workloads. You can use Amazon AppConfig to deploy configuration data stored in the Amazon AppConfig hosted configuration store, Amazon Secrets Manager, Systems Manager Parameter Store, or Amazon S3.

Benefits overview

The following brief overview outlines the benefits of using Amazon AppConfig.

Improve efficiency and release changes faster

Using feature flags with new capabilities speeds up the process of releasing changes to production environments. Instead of relying on long-lived development branches that require complicated merges before a release, feature flags enable you to write software using trunk-based development. Feature flags enable you to safely roll out pre-release code in a CI/CD pipeline that is hidden from users. When you are ready to release the changes, you can update the feature flag without deploying new code. After the launch is complete, the flag can still function as a block switch to disable a new feature or capability without the need to roll back the code deployment.

Avoid unintended changes or failures with built-in safety features

Amazon AppConfig offers the following safety features to help you avoid enabling feature flags or updating configuration data that could cause application failures.

  • Validators: A validator ensures that your configuration data is syntactically and semantically correct before deploying the changes to production environments.

  • Deployment strategies: A deployment strategy enables you to slowly release changes to production environments over minutes or hours.

  • Monitoring and automatic rollback: Amazon AppConfig integrates with Amazon CloudWatch to monitor changes to your applications. If your application becomes unhealthy because of a bad configuration change and that change triggers an alarm in CloudWatch, Amazon AppConfig automatically rolls back the change to minimize impact on your application users.

Secure and scalable feature flag deployments

Amazon AppConfig integrates with Amazon Identity and Access Management (IAM) to provide fine-grain, role-based access to the service. Amazon AppConfig also integrates with Amazon Key Management Service (Amazon KMS) for encryption and Amazon CloudTrail for auditing. Before being released to external customers, all Amazon AppConfig safety controls were initially developed with and validated by internal customers that use the service at scale.

How Amazon AppConfig works

This section provides a high-level description of how Amazon AppConfig works.

A diagram of how Amazon AppConfig works
1. Identify configuration values in code you want to manage in Amazon AppConfig

Before you create a configuration profile in Amazon AppConfig, we recommend you identify configuration data in your code that you want to dynamically manage using Amazon AppConfig. Good examples include feature flags or toggles, allow and block lists, logging verbosity, service limits, and throttling rules, to name a few. These types of configuration change frequently and can cause problems if not correct.

If your configuration data already exists in the cloud, for example in Parameter Store or Amazon S3, you can take advantage of Amazon AppConfig validation, deployment, and extension features to further streamline configuration data management.

2. Create a configuration profile in Amazon AppConfig

A configuration profile includes, among other things, a URI that enables Amazon AppConfig to locate your configuration data in its stored location and a profile type. Amazon AppConfig supports two configuration profile types: feature flags and freeform configurations. Both types can reduce the risk and complexity of software development and deployment by decoupling feature releases from code deployments. They also enable continuous delivery and risk mitigation through staged rollouts. Additionally, feature flags enable testing in production with real users, while freeform configurations enable you to retrieve configuration data from other Amazon services. Both profile types allow for faster iteration, experimentation, personalization, and efficient management of the software lifecycle. For more information about creating a configuration profile, see Creating a configuration profile in Amazon AppConfig.

A configuration profile can also include optional validators to ensure your configuration data is syntactically and semantically correct. Amazon AppConfig performs a check using the validators when you start a deployment. If any errors are detected, the deployment rolls back to the previous configuration data.

When you create a configuration profile, you also create an application in Amazon AppConfig. An application is simply a namespace or an organizational construct like a folder.

3. Deploy configuration data

When you start a deployment, Amazon AppConfig performs the following tasks:

  1. Retrieves the configuration data from the underlying data store by using the location path name in the configuration profile.

  2. Verifies the configuration data is syntactically and semantically correct by using the validators you specified when you created your configuration profile.

  3. Sends a copy of the data to Amazon AppConfig Agent to be read by your application. This copy is called the deployed data.

For more information about deploying a configuration, see Deploying feature flags and configuration data in Amazon AppConfig.

4. Retrieve the configuration

To retrieve the data, your application makes an HTTP call to the localhost server where Amazon AppConfig Agent has cached a local copy of your deployed configuration data. Retrieving data is a metered event. Amazon AppConfig Agent supports several use cases, as described in How to use Amazon AppConfig Agent to retrieve configuration data.

If Amazon AppConfig Agent isn't supported for your use case, you can configure your application to poll Amazon AppConfig for configuration updates by directly calling the StartConfigurationSession and GetLatestConfiguration API actions.

For more information about retrieving a configuration, see Retrieving feature flags and configuration data in Amazon AppConfig.

Pricing for Amazon AppConfig

Pricing for Amazon AppConfig is pay-as-you-go based on configuration data and feature flag retrieval. We recommend using the Amazon AppConfig Agent to help optimize costs. For more information, see Amazon Systems Manager Pricing.