

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

# に機能フラグと設定データをデプロイする AWS AppConfig
<a name="deploying-feature-flags"></a>

機能フラグとフリーフォームの設定データを扱うために[必要なアーティファクトを作成](https://docs.aws.amazon.com/appconfig/latest/userguide/creating-feature-flags-and-configuration-data.html)したら、新しいデプロイを作成できるようになります。新しいデプロイを作成するときは、以下の情報を指定します。
+ アプリケーション ID
+ 設定プロファイル ID
+ 設定バージョン。
+ 設定データをデプロイする環境 ID
+ 変更をどのくらいの速さで反映させたいかを定義するデプロイ戦略 ID
+ カスタマーマネージドキーを使用してデータを暗号化するための AWS Key Management Service (AWS KMS) キー ID。

[StartDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StartDeployment.html) API アクションを呼び出すと、 は次のタスク AWS AppConfig を実行します。

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

1. 設定プロファイルに作成したときに指定したバリデータを使用して、設定データが構文的にも意味論的にも正しいことを確認します。

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

Amazon CloudWatch アラームに基づくデプロイ戦略と自動ロールバックを組み合わせて使用することで、設定データの AWS AppConfig デプロイによってアプリケーションでエラーが発生する状況を軽減できます。デプロイ戦略を使用すると、エンティティベースのデプロイを活用して、セッションベースまたは独自のターゲットディメンションに沿って、すべてのターゲットまたは特定のセグメントへの変更を数分または数時間かけて徐々にリリースできます。CloudWatch を設定した後、デプロイ中に 1 つ以上のアラームがアラーム状態になった場合、 は設定データを以前のバージョン AWS AppConfig に自動的にロールバックします。デプロイ戦略の詳細については、「[デプロイ戦略の使用](appconfig-creating-deployment-strategy.md)」を参照してください。自動ロールバックの詳細については、「[自動ロールバックのためのデプロイのモニタリング](monitoring-deployments.md)」を参照してください。

**注記**  
AWS AppConfig エージェント (バージョン 2.0.136060 以降) では、段階的なロールアウト中に、機能フラグまたは自由形式の設定データを特定のセグメントまたは個々のユーザーにデプロイできます。エンティティベースの段階的なデプロイでは、ユーザーまたはセグメントが設定バージョンを受信すると、どのコンピューティングリソースがリクエストを処理するかに関係なく、デプロイ期間中同じバージョンを引き続き受け取ることができます。詳細については、「[ユーザーベースまたはエンティティベースの段階的なデプロイに AWS AppConfig エージェントを使用する](appconfig-agent-how-to-use.md#appconfig-entity-based-gradual-deployments)」を参照してください。

**Topics**
+ [デプロイ戦略の使用](appconfig-creating-deployment-strategy.md)
+ [構成のデプロイ](appconfig-deploying.md)
+ [CodePipeline を使用した AWS AppConfig 設定のデプロイ](appconfig-integration-codepipeline.md)
+ [設定の復元](appconfig-deploying-reverting.md)

# デプロイ戦略の使用
<a name="appconfig-creating-deployment-strategy"></a>

デプロイ戦略を使用すると、エンティティベースのデプロイを活用して、セッションベースまたは独自のターゲットディメンションに沿って、すべてのターゲットまたは特定のセグメントへの変更を数分または数時間かけて徐々にリリースできます。

**注記**  
AWS AppConfig エージェント (バージョン 2.0.136060 以降) では、段階的なロールアウト中に、機能フラグまたは自由形式の設定データを特定のセグメントまたは個々のユーザーにデプロイできます。エンティティベースの段階的なデプロイでは、ユーザーまたはセグメントが設定バージョンを受信すると、どのコンピューティングリソースがリクエストを処理するかに関係なく、デプロイ期間中同じバージョンを引き続き受け取ることができます。詳細については、「[ユーザーベースまたはエンティティベースの段階的なデプロイに AWS AppConfig エージェントを使用する](appconfig-agent-how-to-use.md#appconfig-entity-based-gradual-deployments)」を参照してください。

 AWS AppConfig デプロイ戦略は、設定デプロイの以下の重要な側面を定義します。


****  

| 設定 | 説明 | 
| --- | --- | 
| 経過時間 | デプロイの進捗状況 | 
| --- | --- | 
|  デプロイタイプ  | デプロイタイプは、設定のデプロイまたは*ロールアウト*方法を定義します。 は**線形**デプロイタイプと**指数**デプロイタイプ AWS AppConfig をサポートします。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html)  | 
|  ステップパーセンテージ (増加係数)  |  この設定では、デプロイの各ステップでターゲットとする発信者の割合を指定します。  SDK および [AWS AppConfig API リファレンス](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateDeploymentStrategy.html) では、`step percentage` を `growth factor` と呼んでいます。   | 
|  デプロイ時間  |  この設定では、 がホストに AWS AppConfig デプロイする時間を指定します。これはタイムアウト値ではありません。これは、デプロイが間隔を置いて処理される時間枠です。 | 
|  ベイク時間  |  この設定では、設定がターゲットの 100% にデプロイされてから、デプロイが完了したと見なされるまでの Amazon CloudWatch アラーム AWS AppConfig のモニタリング時間を指定します。この間にアラームがトリガーされた場合、 AWS AppConfig はデプロイをロールバックします。CloudWatch アラームに基づいてロールバック AWS AppConfig するには、 のアクセス許可を設定する必要があります。詳細については、「[自動ロールバックのアクセス許可を設定する](setting-up-appconfig.md#getting-started-with-appconfig-cloudwatch-alarms-permissions)」を参照してください。  | 
|  0 時間  |  0%  | 
|  2 時間  |  20%  | 
|  4 時間  |  40%  | 
|  6 時間  |  60%  | 
|  8 時間  |  80%  | 
|  10 時間  |  100%  | 

に含まれている事前定義された戦略を選択する AWS AppConfig か、独自の戦略を作成できます。

**注記**  
AWS AppConfig エージェント (バージョン 2.0.136060 以降) では、段階的なロールアウト中に、機能フラグまたは自由形式の設定データを特定のセグメントまたは個々のユーザーにデプロイできます。エンティティベースの段階的なデプロイでは、ユーザーまたはセグメントが設定バージョンを受信すると、どのコンピューティングリソースがリクエストを処理するかに関係なく、デプロイ期間中同じバージョンを引き続き受け取ることができます。詳細については、「[ユーザーベースまたはエンティティベースの段階的なデプロイに AWS AppConfig エージェントを使用する](appconfig-agent-how-to-use.md#appconfig-entity-based-gradual-deployments)」を参照してください。

**Topics**
+ [定義済みのデプロイ戦略の使用](appconfig-creating-deployment-strategy-predefined.md)
+ [デプロイ戦略の作成](appconfig-creating-deployment-strategy-create.md)

# 定義済みのデプロイ戦略の使用
<a name="appconfig-creating-deployment-strategy-predefined"></a>

AWS AppConfig には、設定をすばやくデプロイするための事前定義されたデプロイ戦略が含まれています。設定をデプロイするときには、独自の戦略を作成する代わりに、次のいずれかを選択できます。


****  

| デプロイ戦略 | 説明 | 
| --- | --- | 
|  AppConfig.Linear: 6 分ごとに 20 パーセント  | **AWS 推奨**: この戦略では、6 分ごとに設定をすべてのターゲットの20%にデプロイし、30 分間のデプロイを行います。システムは Amazon CloudWatch アラームを 30 分間監視します。この時間内にアラームが受信されなければ、デプロイは完了です。この間にアラームがトリガーされた場合、 はデプロイを AWS AppConfig ロールバックします。この戦略は、 AWS ベストプラクティスに沿っており、長期間とベイク時間のため、デプロイの安全性をさらに重視しているため、本番環境のデプロイに使用することをお勧めします。  | 
|  AppConfig.Canary10Percent20Minutes  | **AWS 推奨**: この戦略では、20 分間にわたって 10% の増加係数を使用し、デプロイを指数関数的に処理します。システムは CloudWatch アラームを 10 分間監視します。この時間内にアラームが受信されなければ、デプロイは完了です。この間にアラームがトリガーされた場合、 はデプロイを AWS AppConfig ロールバックします。この戦略は、設定デプロイの AWS ベストプラクティスと一致するため、本番デプロイに使用することをお勧めします。  | 
|  AppConfig.AllAtOnce  | **クイック**: この戦略では、すべてのターゲットにただちに設定をデプロイします。システムは CloudWatch アラームを 10 分間監視します。この時間内にアラームが受信されなければ、デプロイは完了です。この間にアラームがトリガーされた場合、 AWS AppConfig はデプロイをロールバックします。  | 
|  AppConfig.Linear50PercentEvery30Seconds  | **テスト中/デモンストレーション**: この戦略では、30 秒ごとに設定をすべてのターゲットの半分にデプロイし、1 分間のデプロイを行います。システムは、Amazon CloudWatch アラームを 1 分間監視します。この時間内にアラームが受信されなければ、デプロイは完了です。この間にアラームがトリガーされた場合、 はデプロイを AWS AppConfig ロールバックします。この戦略では、継続時間と処理時間が短いため、テストまたはデモンストレーションの目的でのみ使用することをお勧めします。  | 

# デプロイ戦略の作成
<a name="appconfig-creating-deployment-strategy-create"></a>

定義済みのデプロイ戦略のいずれかを使用しない場合は、独自のデプロイ戦略を作成できます。最大 20 のデプロイ戦略を作成できます。設定をデプロイするときに、アプリケーションおよび環境に最適なデプロイ戦略を選択できます。

## AWS AppConfig デプロイ戦略の作成 (コンソール)
<a name="appconfig-creating-deployment-strategy-create-console"></a>

 AWS Systems Manager コンソールを使用して AWS AppConfig デプロイ戦略を作成するには、次の手順に従います。

**デプロイ戦略を作成するには**

1. [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/) で AWS Systems Manager コンソールを開きます。

1. ナビゲーションペインで、**[デプロイ戦略]** タブを選択し、**[デプロイ戦略を作成]** を選択します。

1. **名前** に、デプロイ戦略の名前を入力します。

1. **説明** に、デプロイ戦略に関する情報を入力します。

1. **デプロイタイプ** で、タイプを選択します。

1. **ステップパーセンテージ** で、デプロイの各ステップでターゲットとする発信者の割合を選択します。

1. **デプロイ時間** に、デプロイの合計期間を分または時間単位で入力します。

1. **ベイク時間** には、デプロイの次のステップに進む前、またはデプロイを完了とみなす前に Amazon CloudWatch アラームをモニタリングする合計時間を分または時間単位で入力します。

1. **タグ** セクションで、キーとオプションの値を入力します。1 つのリソースに対して最大 50 個のタグを指定できます。

1. **デプロイ戦略の作成** を選択します。

**重要**  
の設定プロファイルを作成した場合は AWS CodePipeline、*デプロイプロバイダー* AWS AppConfig として を指定するパイプラインを CodePipeline で作成する必要があります。[構成のデプロイ](appconfig-deploying.md) を実行する必要はありません。ただし、「[AWS AppConfig エージェントを使用せずに設定データを取得する](about-data-plane.md)」で説明されているように、アプリケーション設定の更新を受け取るようにクライアントを設定する必要があります。デプロイプロバイダー AWS AppConfig として を指定するパイプラインの作成については、 *AWS CodePipeline ユーザーガイド*の[「チュートリアル: デプロイプロバイダー AWS AppConfig として を使用するパイプラインを作成する](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-AppConfig.html)」を参照してください。

[構成のデプロイ](appconfig-deploying.md) に進みます。

## AWS AppConfig デプロイ戦略の作成 (コマンドライン)
<a name="appconfig-creating-deployment-strategy-create-commandline"></a>

次の手順では、 AWS CLI (Linux または Windows の場合) または AWS Tools for PowerShell を使用して AWS AppConfig デプロイ戦略を作成する方法について説明します。

**デプロイ戦略をステップバイステップで作成するには**

1. を開きます AWS CLI。

1. 以下のコマンドを実行して、デプロイ戦略を作成します。

------
#### [ Linux ]

   ```
   aws appconfig create-deployment-strategy \
     --name A_name_for_the_deployment_strategy \
     --description A_description_of_the_deployment_strategy \
     --deployment-duration-in-minutes Total_amount_of_time_for_a_deployment_to_last \
     --final-bake-time-in-minutes Amount_of_time_AWS AppConfig_monitors_for_alarms_before_considering_the_deployment_to_be_complete \
     --growth-factor The_percentage_of_targets_to_receive_a_deployed_configuration_during_each_interval \
     --growth-type The_linear_or_exponential_algorithm_used_to_define_how_percentage_grows_over_time \
     --replicate-to To_save_the_deployment_strategy_to_a_Systems_Manager_(SSM)_document \
     --tags User_defined_key_value_pair_metadata_of_the_deployment_strategy
   ```

------
#### [ Windows ]

   ```
   aws appconfig create-deployment-strategy ^
     --name A_name_for_the_deployment_strategy ^
     --description A_description_of_the_deployment_strategy ^
     --deployment-duration-in-minutes Total_amount_of_time_for_a_deployment_to_last ^
     --final-bake-time-in-minutes Amount_of_time_AWS AppConfig_monitors_for_alarms_before_considering_the_deployment_to_be_complete ^
     --growth-factor The_percentage_of_targets_to_receive_a_deployed_configuration_during_each_interval ^
     --growth-type The_linear_or_exponential_algorithm_used_to_define_how_percentage_grows_over_time ^
     --name A_name_for_the_deployment_strategy ^
     --replicate-to To_save_the_deployment_strategy_to_a_Systems_Manager_(SSM)_document ^
     --tags User_defined_key_value_pair_metadata_of_the_deployment_strategy
   ```

------
#### [ PowerShell ]

   ```
   New-APPCDeploymentStrategy ` 
     --Name A_name_for_the_deployment_strategy ` 
     --Description A_description_of_the_deployment_strategy `
     --DeploymentDurationInMinutes Total_amount_of_time_for_a_deployment_to_last `
     --FinalBakeTimeInMinutes Amount_of_time_AWS AppConfig_monitors_for_alarms_before_considering_the_deployment_to_be_complete `
     --GrowthFactor The_percentage_of_targets_to_receive_a_deployed_configuration_during_each_interval `
     --GrowthType The_linear_or_exponential_algorithm_used_to_define_how_percentage_grows_over_time `
     --ReplicateTo To_save_the_deployment_strategy_to_a_Systems_Manager_(SSM)_document `
     --Tag Hashtable_type_User_defined_key_value_pair_metadata_of_the_deployment_strategy
   ```

------

   システムが以下のような情報をレスポンスします。

------
#### [ Linux ]

   ```
   {
      "Id": "Id of the deployment strategy",
      "Name": "Name of the deployment strategy",
      "Description": "Description of the deployment strategy",
      "DeploymentDurationInMinutes": "Total amount of time the deployment lasted",
      "GrowthType": "The linear or exponential algorithm used to define how percentage grew over time",
      "GrowthFactor": "The percentage of targets that received a deployed configuration during each interval",  
      "FinalBakeTimeInMinutes": "The amount of time AWS AppConfig monitored for alarms before considering the deployment to be complete",
      "ReplicateTo": "The Systems Manager (SSM) document where the deployment strategy is saved"
   }
   ```

------
#### [ Windows ]

   ```
   {
      "Id": "Id of the deployment strategy",
      "Name": "Name of the deployment strategy",
      "Description": "Description of the deployment strategy",
      "DeploymentDurationInMinutes": "Total amount of time the deployment lasted",
      "GrowthType": "The linear or exponential algorithm used to define how percentage grew over time",
      "GrowthFactor": "The percentage of targets that received a deployed configuration during each interval",  
      "FinalBakeTimeInMinutes": "The amount of time AWS AppConfig monitored for alarms before considering the deployment to be complete",
      "ReplicateTo": "The Systems Manager (SSM) document where the deployment strategy is saved"
   }
   ```

------
#### [ PowerShell ]

   ```
   ContentLength               : Runtime of the command
   DeploymentDurationInMinutes : Total amount of time the deployment lasted
   Description                 : Description of the deployment strategy
   FinalBakeTimeInMinutes      : The amount of time AWS AppConfig monitored for alarms before considering the deployment to be complete
   GrowthFactor                : The percentage of targets that received a deployed configuration during each interval
   GrowthType                  : The linear or exponential algorithm used to define how percentage grew over time
   HttpStatusCode              : HTTP Status of the runtime
   Id                          : The deployment strategy ID
   Name                        : Name of the deployment strategy
   ReplicateTo                 : The Systems Manager (SSM) document where the deployment strategy is saved
   ResponseMetadata            : Runtime Metadata
   ```

------

# 構成のデプロイ
<a name="appconfig-deploying"></a>

機能フラグとフリーフォーム設定データを操作する[ために必要なアーティファクトを作成](https://docs.aws.amazon.com/appconfig/latest/userguide/creating-feature-flags-and-configuration-data.html)したら、 AWS マネジメントコンソール、、 AWS CLIまたは SDK を使用して新しいデプロイを作成できます。でデプロイを開始すると、[StartDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StartDeployment.html) API オペレーションが AWS AppConfig 呼び出されます。この呼び出しには、デプロイする AWS AppConfig アプリケーションの ID、環境、構成プロファイル、および構成データバージョン （オプショナル） が含まれます。この呼び出しには、使用するデプロイ戦略の ID も含まれます。ID は、構成データのデプロイ方法を決定します。

に保存されているシークレット AWS Secrets Manager、カスタマーマネージドキーで暗号化された Amazon Simple Storage Service (Amazon S3) オブジェクト、またはカスタマーマネージドキーで暗号化された Parameter Store AWS Systems Manager に保存されている安全な文字列パラメータをデプロイする場合は、 `KmsKeyIdentifier` パラメータの値を指定する必要があります。設定が暗号化されていない場合、または で暗号化されている場合は AWS マネージドキー、 `KmsKeyIdentifier`パラメータの値を指定する必要はありません。

**注記**  
`KmsKeyIdentifier` に指定する値は、カスタマーマネージド型キーである必要があります。これは設定の暗号化に使用したキーと同じである必要はありません。  
を使用してデプロイを開始する場合`KmsKeyIdentifier`、 AWS Identity and Access Management (IAM) プリンシパルにアタッチされたアクセス許可ポリシーで `kms:GenerateDataKey`オペレーションを許可する必要があります。

AWS AppConfig はすべてのホストへのディストリビューションをモニタリングし、ステータスを報告します。ディストリビューションが失敗した場合、 は設定を AWS AppConfig ロールバックします。

**注記**  
環境には、一度に 1 つの設定のみデプロイできます。ただし、1 つの設定をそれぞれ異なる環境に同時にデプロイすることができます。

## 設定をデプロイする (コンソール)
<a name="appconfig-deploying-console"></a>

コンソールを使用して AWS AppConfig 設定を AWS Systems Manager デプロイするには、次の手順に従います。

**コンソールを使用して設定をデプロイするには**

1. [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/) で AWS Systems Manager コンソールを開きます。

1. ナビゲーションペインで、**[アプリケーション]** を選択し、[でのアプリケーションの名前空間の作成 AWS AppConfig](appconfig-creating-namespace.md) で作成したアプリケーションを選択します。

1. **[環境]** タブで環境のラジオボタンを入力し、**[詳細を表示]** を選択します。

1. **デプロイの開始** を選択します。

1. **設定** で、リストから設定を選択します。

1. 設定のソースに応じて、バージョンリストを使用して、デプロイするバージョンを選択します。

1. **デプロイ戦略** で、リストから戦略を選択します。

1. (オプション)**[デプロイの説明]** に説明を入力します。

1. **その他の暗号化オプション**については、リストから AWS Key Management Service キーを選択します。

1. (オプション) **[タグ]** セクションで **[新しいタグを追加]** を選択し、キーとオプションの値を入力します。1 つのリソースに対して最大 50 個のタグを指定できます。

1. **デプロイの開始** を選択します。

## 設定をデプロイする (コマンドライン)
<a name="appconfig-deploying-commandline"></a>

次の手順では、 AWS CLI (Linux または Windows) または AWS Tools for PowerShell を使用して AWS AppConfig 設定をデプロイする方法について説明します。

**設定をステップバイステップでデプロイする**

1. を開きます AWS CLI。

1. 次のコマンドを実行して、設定をデプロイします。

------
#### [ Linux ]

   ```
   aws appconfig start-deployment \
     --application-id The_application_ID \
     --environment-id The_environment_ID \
     --deployment-strategy-id The_deployment_strategy_ID \
     --configuration-profile-id The_configuration_profile_ID \
     --configuration-version The_configuration_version_to_deploy \
     --description A_description_of_the_deployment \
     --tags User_defined_key_value_pair_metadata_of_the_deployment
   ```

------
#### [ Windows ]

   ```
   aws appconfig start-deployment ^
     --application-id The_application_ID ^
     --environment-id The_environment_ID ^
     --deployment-strategy-id The_deployment_strategy_ID ^
     --configuration-profile-id The_configuration_profile_ID ^
     --configuration-version The_configuration_version_to_deploy ^
     --description A_description_of_the_deployment ^
     --tags User_defined_key_value_pair_metadata_of_the_deployment
   ```

------
#### [ PowerShell ]

   ```
   Start-APPCDeployment `
     -ApplicationId The_application_ID `
     -ConfigurationProfileId The_configuration_profile_ID `
     -ConfigurationVersion The_configuration_version_to_deploy `
     -DeploymentStrategyId The_deployment_strategy_ID `
     -Description A_description_of_the_deployment `
     -EnvironmentId The_environment_ID `
     -Tag Hashtable_type_user_defined_key_value_pair_metadata_of_the_deployment
   ```

------

   システムが以下のような情報をレスポンスします。

------
#### [ Linux ]

   ```
   {   
      "ApplicationId": "The ID of the application that was deployed",
      "EnvironmentId" : "The ID of the environment",
      "DeploymentStrategyId": "The ID of the deployment strategy that was deployed",
      "ConfigurationProfileId": "The ID of the configuration profile that was deployed",
      "DeploymentNumber": The sequence number of the deployment,
      "ConfigurationName": "The name of the configuration",
      "ConfigurationLocationUri": "Information about the source location of the configuration",
      "ConfigurationVersion": "The configuration version that was deployed",
      "Description": "The description of the deployment",
      "DeploymentDurationInMinutes": Total amount of time the deployment lasted,
      "GrowthType": "The linear or exponential algorithm used to define how percentage grew over time",
      "GrowthFactor": The percentage of targets to receive a deployed configuration during each interval,
      "FinalBakeTimeInMinutes": Time AWS AppConfig monitored for alarms before considering the deployment to be complete,
      "State": "The state of the deployment",  
   
      "EventLog": [ 
         { 
            "Description": "A description of the deployment event",
            "EventType": "The type of deployment event",
            "OccurredAt": The date and time the event occurred,
            "TriggeredBy": "The entity that triggered the deployment event"
         }
      ],
   
      "PercentageComplete": The percentage of targets for which the deployment is available,
      "StartedAt": The time the deployment started,
      "CompletedAt": The time the deployment completed   
   }
   ```

------
#### [ Windows ]

   ```
   {
      "ApplicationId": "The ID of the application that was deployed",
      "EnvironmentId" : "The ID of the environment",
      "DeploymentStrategyId": "The ID of the deployment strategy that was deployed",
      "ConfigurationProfileId": "The ID of the configuration profile that was deployed",
      "DeploymentNumber": The sequence number of the deployment,
      "ConfigurationName": "The name of the configuration",
      "ConfigurationLocationUri": "Information about the source location of the configuration",
      "ConfigurationVersion": "The configuration version that was deployed",
      "Description": "The description of the deployment",
      "DeploymentDurationInMinutes": Total amount of time the deployment lasted,
      "GrowthType": "The linear or exponential algorithm used to define how percentage grew over time",
      "GrowthFactor": The percentage of targets to receive a deployed configuration during each interval,
      "FinalBakeTimeInMinutes": Time AWS AppConfig monitored for alarms before considering the deployment to be complete,
      "State": "The state of the deployment",  
   
      "EventLog": [ 
         { 
            "Description": "A description of the deployment event",
            "EventType": "The type of deployment event",
            "OccurredAt": The date and time the event occurred,
            "TriggeredBy": "The entity that triggered the deployment event"
         }
      ],
   
      "PercentageComplete": The percentage of targets for which the deployment is available,
      "StartedAt": The time the deployment started,
      "CompletedAt": The time the deployment completed 
   }
   ```

------
#### [ PowerShell ]

   ```
   ApplicationId               : The ID of the application that was deployed
   CompletedAt                 : The time the deployment completed
   ConfigurationLocationUri    : Information about the source location of the configuration
   ConfigurationName           : The name of the configuration
   ConfigurationProfileId      : The ID of the configuration profile that was deployed
   ConfigurationVersion        : The configuration version that was deployed
   ContentLength               : Runtime of the deployment 
   DeploymentDurationInMinutes : Total amount of time the deployment lasted
   DeploymentNumber            : The sequence number of the deployment
   DeploymentStrategyId        : The ID of the deployment strategy that was deployed
   Description                 : The description of the deployment
   EnvironmentId               : The ID of the environment that was deployed
   EventLog                    : {Description : A description of the deployment event, EventType : The type of deployment event, OccurredAt : The date and time the event occurred,
            TriggeredBy : The entity that triggered the deployment event}
   FinalBakeTimeInMinutes      : Time AWS AppConfig monitored for alarms before considering the deployment to be complete
   GrowthFactor                : The percentage of targets to receive a deployed configuration during each interval
   GrowthType                  : The linear or exponential algorithm used to define how percentage grew over time
   HttpStatusCode              : HTTP Status of the runtime
   PercentageComplete          : The percentage of targets for which the deployment is available
   ResponseMetadata            : Runtime Metadata
   StartedAt                   : The time the deployment started
   State                       : The state of the deployment
   ```

------

# CodePipeline を使用した AWS AppConfig 設定のデプロイ
<a name="appconfig-integration-codepipeline"></a>

AWS AppConfig は ( AWS CodePipeline CodePipeline) の統合デプロイアクションです。CodePipeline はフルマネージド型の継続的デリバリーサービスで、アプリケーションとインフラストラクチャの更新を迅速かつ高い信頼性で行うために、パイプラインのリリースを自動化します。CodePipeline はお客様が定義したリリースモデルに基づき、コードチェンジがあった場合のフェーズの構築、テスト、およびデプロイを自動化します。詳細については、「[What is AWS CodePipeline?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)」を参照してください。

 AWS AppConfig と CodePipeline の統合には、次の利点があります。
+ オーケストレーションを管理するために CodePipeline を使用するお客様は、コードベース全体をデプロイすることなく、アプリケーションに設定変更をデプロイする軽量な手段が利用できるようになりました。
+  AWS AppConfig を使用して設定デプロイを管理したいが、 が現在のコードまたは設定ストアをサポート AWS AppConfig していないため制限されているお客様には、追加のオプションが追加されました。CodePipeline は AWS CodeCommit、、GitHub、BitBucket (例として) をサポートしています。

**注記**  
AWS AppConfig CodePipeline との統合は、CodePipeline が[利用可能な](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) AWS リージョン でのみサポートされています。

## 統合の仕組み
<a name="appconfig-integration-codepipeline-how"></a>

まず、CodePipeline をセットアップして設定します。これには、CodePipeline がサポートするコードストアに設定を追加することが含まれます。次に、次のタスクを実行して AWS AppConfig 環境を設定します。
+ [「名前空間と設定プロファイルを作成する」](https://docs.aws.amazon.com/appconfig/latest/userguide/creating-feature-flags-and-configuration-data.html)
+ [定義済みのデプロイ戦略の選択または独自のデプロイ戦略の作成](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html)

これらのタスクが完了したら、*デプロイプロバイダー* AWS AppConfig として を指定するパイプラインを CodePipeline に作成します。作成できたら、設定を変更して、CodePipeline コードストアにアップロードします。新しい設定をアップロードすると、CodePipeline で新しいデプロイが自動的に開始されます。デプロイが完了したら、変更を確認できます。をデプロイプロバイダー AWS AppConfig として指定するパイプラインの作成については、 *AWS CodePipeline ユーザーガイド*の[「チュートリアル: デプロイプロバイダー AWS AppConfig として を使用するパイプラインを作成する](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-AppConfig.html)」を参照してください。

# 設定の復元
<a name="appconfig-deploying-reverting"></a>

デプロイ中、不正な形式または誤った設定データが原因でアプリケーションにエラーが発生する状況を軽減するには、自動ロールバックを使用する (デプロイ中にアラームがトリガーされた場合) か、設定データを以前のバージョンに戻す (デプロイが正常に完了した場合) 必要があります。

自動ロールバックでは、 AWS AppConfig [デプロイ戦略](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html)と Amazon CloudWatch アラームの組み合わせを使用できます。設定後、デプロイ中に 1 つ以上の CloudWatch アラームが `ALARM`状態になると、 は設定データを以前のバージョン AWS AppConfig に自動的にロールバックし、アプリケーションの停止やエラーを防ぎます。開始するには、「[自動ロールバックのアクセス許可を設定する](setting-up-appconfig.md#getting-started-with-appconfig-cloudwatch-alarms-permissions)」を参照してください。

**注記**  
また、デプロイが進行中に [StopDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StopDeployment.html) API オペレーションを呼び出すことで、設定をロールバックすることもできます。

正常に完了したデプロイの場合、 は、[StopDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StopDeployment.html) API オペレーションで `AllowRevert`パラメータを使用して設定データを以前のバージョンに戻す AWS AppConfig こともサポートします。一部のお客様では、デプロイが成功した後に以前の設定に戻すと、データはデプロイ前と同じであることが保証されます。また、元に戻すとアラームモニターも無視され、アプリケーションの緊急事態中にロールフォワードが進行するのを防ぐことができます。

**重要**  
`AllowRevert` パラメータを有効に`StopDeployment`して を呼び出すと、 AWS AppConfig は過去 72 時間以内にデプロイが成功した場合にのみデプロイを元に戻します。72 時間が経過すると、デプロイを元に戻すことはできません。新しいデプロイを作成する必要があります。

以下は、さまざまな状況に基づく `StopDeployment` 機能の内訳です。

1. 進行中のデプロイで `StopDeployment` が呼び出された場合、結果のデプロイ状態は `ROLLED_BACK` になります。

1. 進行中のデプロイで `StopDeployment` (`AllowRevert`) が呼び出された場合、結果のデプロイ状態は `ROLLED_BACK` になります。

1. 完了したデプロイで `StopDeployment` が呼び出された場合、`BadRequestException` がスローされます。

1. 完了したデプロイで `StopDeployment` (`AllowRevert`) が呼び出された場合、結果のデプロイ状態は `REVERTED` になります。

1. 72 時間後に完了したデプロイで `StopDeployment` (`AllowRevert`) が呼び出された場合、`BadRequestException` がスローされます。

を使用して AWS CLI 、 `AllowRevert`パラメータを使用して [StopDeployment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/appconfig/stop-deployment.html) オペレーションを呼び出すことができます。`AllowRevert` パラメータを含む AWS CLI コマンドの例を次に示します。

```
aws appconfig stop-deployment \
    --application-id 339ohji \
    --environment-id 54j1r29 \
    --deployment-number 2 \
    --allow-revert
```