

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

# デプロイ戦略の使用
<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
   ```

------