AWS AppConfig の概要 - AWS AppConfig

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS AppConfig の概要

AWS AppConfig 機能フラグと動的構成により、ソフトウェア開発者はコードをフルデプロイしなくても本番環境でアプリケーションの動作を迅速かつ安全に調整できます。AWS AppConfig ソフトウェアのリリース頻度を短縮し、アプリケーションの耐障害性を向上させ、緊急の問題に迅速に対処できるようにします。機能フラグを使用すると、新しい機能をすべてのユーザーに完全に展開する前に、徐々にユーザーにリリースし、それらの変更の影響を測定できます。運用フラグと動的構成を使用すると、ブロックリスト、許可リスト、スロットリング制限、ロギングの冗長性を更新したり、その他の運用上の調整を行うことで、実稼働環境の問題に迅速に対応できます。

注記

AWS AppConfig は AWS Systems Manager の一機能です。

効率を高め、変更をより早くリリースできます

機能フラグを新機能とともに使用すると、変更内容を本番環境にリリースするプロセスがスピードアップします。機能フラグを使用すると、リリース前に複雑なマージを必要とする長期にわたる開発ブランチに頼る代わりに、トランクベースの開発を使用してソフトウェアを作成できます。機能フラグを使用すると、ユーザーには見えない CI/CD パイプラインでリリース前のコードを安全にロールアウトできます。変更をリリースする準備ができたら、新しいコードをデプロイしなくても機能フラグを更新できます。リリースが完了した後も、フラグはコードのデプロイをロールバックしなくても新しい機能や無効にするブロックスイッチとして機能します。

組み込みの安全機能により、意図しない変更や障害を回避できます

AWS AppConfig には、アプリケーション障害の原因となる可能性のある機能フラグを有効にしたり、設定データを更新することを避けるのに役立つ次の安全機能が用意されています。

  • バリデーター:バリデーターが、本番環境にデプロイする前に、構文的にもセマンティック的にも正しいことを確認します。

  • デプロイ戦略:この戦略を使うと、数分または数時間かけて変更を製品環境にゆっくりとリリースできます。

  • モニタリングと自動ロールバック:Amazon CloudWatchは AWS AppConfig と統合して、アプリケーションの変更を監視します。不適切な設定変更が原因でアプリケーションに異常が発生し、その変更が CloudWatch のアラームをトリガーした場合、AWS AppConfig アプリケーションユーザーへの影響を最小限に抑えるために変更を自動的にロールバックします。

安全でスケーラブルな機能フラグのデプロイ

AWS AppConfig は AWS Identity and Access Management (IAM) と統合して、サービスへのきめ細かな役割ベースのアクセスを提供します。 AWS AppConfig はまた、暗号化と監査のために AWS Key Management Service (AWS KMS) と AWS CloudTrail 統合されています。外部の顧客にリリースされる前は、すべての AWS AppConfig 安全制御は当初、このサービスを大規模に利用する社内の顧客と共同で開発され、検証されていました。

AWS AppConfig ユースケース

アプリケーション構成の内容はアプリケーションごとに大きく異なる場合がありますが、お客様の幅広いニーズに対応する AWS AppConfig は以下のユースケースをサポートしています。

  • 機能フラグとトグル — 管理された環境で、新しい機能を安全に顧客にリリースできます。問題が発生した場合は、変更を即座にロールバックできます。

  • アプリケーションのチューニング — アプリケーションの変更を慎重に導入し、その変更による影響を本番環境のユーザーにテストします。

  • 許可リストまたは禁止リスト — 新しいコードをデプロイしなくても、プレミアム機能へのアクセスを制御したり、特定のユーザーを即座にブロックできます。

  • 一元化された構成ストレージ — すべてのワークロードにわたって設定データを整理し、一貫性のある状態に保ちます。AWS AppConfig を使用して、AWS AppConfig ホストされた設定ストア、システム・マネージャパラメータストア、 AWS Secrets Manager 、または Amazon S3 に保存されている設定データをデプロイできます。

AWS AppConfig を使用する利点

AWS AppConfig は、組織に次のような利点を提供します。

  • 顧客の予期しないダウンタイムを削減します

    AWS AppConfig を使用すると設定を検証するルールを作成できるため、アプリケーションのダウンタイムを短縮できます。有効でない設定はデプロイできません。AWS AppConfig には設定を検証するための以下の 2 つのオプションがあります。

    • 構文検証には、JSON スキーマを使用することができます。AWS AppConfig は JSON スキーマを使用して設定を検証し、設定の変更がアプリケーションの要件に準拠していることを確認します。

    • セマンティック検証では、AWS AppConfig が所有している AWS Lambda 関数を呼び出して、設定内のデータを検証できます。

  • 一連ののターゲットにわたって迅速に変更をデプロイします

    AWS AppConfigは、中央の場所から構成変更を展開することで、大規模なアプリケーションの管理を簡素化します。AWS AppConfigは、 AWS AppConfigホストされたコンフィグレーション・ストア、Systems Managerパラメータ・ストア、Systems Manager (SSM)ドキュメント、およびAmazon S3に保存されたコンフィグレーションをサポートしています。AWS AppConfig は、EC2 インスタンス、 AWS Lambda、コンテナ、モバイルアプリケーション、または IoT デバイスでホストされているアプリケーションで使用できます。

    ターゲットは、他のシステム・マネージャ機能に必要な システム・マネージャSSM エージェント または (IAM) インスタンスプロファイルを使用して設定する必要はありません。つまり、AWS AppConfig はアンマネージド型インスタンスで動作します。

  • 中断することなくアプリケーションを更新する

    AWS AppConfig は、重いビルドプロセスを実行したりターゲットをサービスから外したりせずに、実行時にターゲットに設定変更をデプロイします。

  • アプリケーション全体で変更のデプロイを制御する

    構成変更をターゲットにデプロイする場合、AWS AppConfig では、デプロイ戦略を使用してリスクを最小限に抑えることができます。デプロイメント戦略により、設定の変更を徐々にフリートに展開できます。デプロイ中に問題が発生した場合は、設定変更が大半のホストに届く前にロールバックできます。

AWS AppConfig の仕組み

このセクションでは、その仕組みと AWS AppConfig 使用方法の大まかな説明を提供します。

1. クラウドで管理したいコード内の設定値を特定します。

AWS AppConfig アーティファクトの作成を開始する前に、AWS AppConfig を使用して動的に管理したいコード内の設定データを特定することをお勧めします。良い例としては、機能フラグやトグル、許可リストと禁止リスト、ロギングの冗長性、サービス制限、スロットリングルールなどがあります。

設定データがすでにクラウドに存在する場合は、AWS AppConfig 検証、デプロイ、拡張機能を活用して、設定データ管理をさらに効率化できます。

2. アプリケーションの名前空間を作成します

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

3. 環境の作成

AWS AppConfig アプリケーションごとに、1 つ以上の環境を定義します。環境とは、 Beta または Production 環境内のアプリケーション、AWS Lambda 関数、コンテナなどのターゲットの論理的グループです。Web‬、Mobile‬、および Back-end‬ など、アプリケーションのサブコンポーネントの環境を定義することもできます。‬‬‬

各環境に対して Amazon CloudWatch のアラームを設定できます。システムは、構成のデプロイ中にアラームをモニタリングします。アラームがトリガーされると、システムは構成をロールバックします。

4. 構成プロファイルの作成

設定プロファイルにはURIとプロファイルタイプがあります。AWS AppConfig は自分の設定データとプロファイルタイプを割り当て、AWS AppConfig では、機能フラグとフリーフォーム構成の2種類の構成プロファイルがサポートされています。機能フラグ設定プロファイルは、AWS AppConfig ホストにされた設定ストアにデータを格納しますが、URI hosted はシンプルです。フリーフォームの設定プロファイルの場合は、AWS AppConfig で説明されているように、AWS AppConfig ホストされた設定ストアまたは AWS と統合される任意の でのフリーフォーム設定プロファイルの作成 AWS AppConfig サービスにデータを保存できます。

設定プロファイルにオプションのバリデータを含めて、設定データが構文的にもセマンティック的にも正しいことを確認することもできます。AWS AppConfig は、デプロイの開始時にバリデータを使用してチェックを実行します。エラーが検出されると、デプロイは前の設定データにロールバックします。

5. 設定データをデプロイします

新しいデプロイメントを作成する際には、以下を指定できます。

  • アプリケーションID

  • 設定プロファイル ID

  • 設定バージョン。

  • 設定データをデプロイする環境 ID

  • 変更をどのくらいの速さで反映させたいかを定義するデプロイ戦略 ID

「StartDeployment」 API アクションを呼び出すと、以下の AWS AppConfig タスクが実行されます。

  1. 設定プロファイルのロケーション URI を使用して、基になるデータストアから設定データを取得します。

  2. 設定プロファイルに作成したときに指定したバリデータを使用して、設定データが構文的にもセマンティック的にも正しいことを確認します。

  3. データのコピーをキャッシュして、アプリケーションがすぐに取り出せるようにします。このキャッシュされたコピーはデプロイされたデータと呼ばれます。

6. 設定を取得します。

AWS AppConfigエージェントをローカルホストとして設定し、エージェントに設定の更新をAWS AppConfigポーリングさせます。エージェントは 「StartConfigurationSession」「GetLatestConfiguration」 API アクションを呼び出し、設定データをローカルにキャッシュします。データを取得するために、アプリケーションはローカルホストサーバーに HTTP 呼び出しを行います。AWS AppConfig「簡略化された検索方法」で説明されているように、エージェントはさまざまなユースケースをサポートしています。

ご使用のユースケースで AWS AppConfig エージェント がサポートされていない場合は、「StartConfigurationSession」「GetLatestConfiguration」 API アクションを直接呼び出して、AWS AppConfigの設定新をポーリングするようにアプリケーションを設定できます。

AWS AppConfig の使用を開始

以下のリソースは、AWS AppConfig を直接使用する場合に役立ちます。

ビデオ:AWS AppConfig 機能フラグの概要

AWS AppConfig 機能フラグ機能のビデオ紹介をご覧ください。

「Amazon Web Services YouTube Channel で AWS の詳細のビデオをご覧ください。

以下のブログは、AWS AppConfig とその機能を詳しく説明しています。

SDK

AWS AppConfigの言語固有の SDK については、次の関連リソースを参照してください。

AWS AppConfig の料金

AWS AppConfig の料金は、設定データと機能フラグの取得に基づく従量制料金です。コストを最適化するために AWS AppConfig エージェントの使用をお勧めします。詳細については、「AWS Systems Manager の料金」を参照してください。

AWS AppConfig のクォータ

AWS AppConfig エンドポイントと Service Quotas および他のシステム・マネージャのクォータについては、Amazon Web Services 全般のリファレンス で説明されています。

注記

AWS AppConfig 設定を格納するサービスのクォータについては、「設定ストアのクォータと制限について」を参照してください。