ステップ 4: デプロイ戦略の作成 - AWS AppConfig

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

ステップ 4: デプロイ戦略の作成

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

設定 説明

デプロイタイプ

デプロイの種類は、設定のデプロイ方法またはロールアウト方法を定義します。AWS AppConfig は、線形および指数デプロイタイプをサポートしています。

  • 線形: このタイプの場合、は、AWS AppConfigデプロイ全体に均等に分散される増加係数の増分によってデプロイを処理します。たとえば、ステップパーセンテージとして 20 を使用する線形デプロイでは、最初はターゲットの 20% に対して設定を利用可能にします。デプロイ時間の 5 分の 1 が経過すると、システムによりパーセンテージが 40% に更新されます。これは、ターゲットの 100% がデプロイされた設定を受信するように設定されるまで続きます。

  • 指数関数: このタイプの場合、AWS AppConfigは次の式を使用してデプロイを指数的に処理します。G*(2^N)。 この式では、Gはユーザーによって指定されたステップパーセンテージで、Nは設定がすべてのターゲットにデプロイされるまでのステップ数です。たとえば、増加係数に 2 を指定すると、次のように構成がロールアウトされます。

    2*(2^0) 2*(2^1) 2*(2^2)

    デプロイは、ターゲットの 2%、ターゲットの 4%、ターゲットの 8%、のようにロールアウトされ、設定がすべてのターゲットにデプロイされるまで続行されます。

ステップパーセンテージ (増加係数)

この設定では、デプロイの各ステップでターゲットとする発信者の割合を指定します。

注記

SDK および AWS AppConfig API リファレンス では、step percentagegrowth factor と呼んでいます。

デプロイ時間

この設定では、AWS AppConfig がホストにデプロイする時間の合計を指定します。これはタイムアウト値ではありません。これは、デプロイが間隔を置いて処理される時間枠です。

ベイク時間

この設定では、構成がターゲットの 100% にデプロイされた後、デプロイが完了したと見なされる前に、が AmazonAWS AppConfig CloudWatch アラームを監視する時間を指定します。この間にアラームがトリガーされた場合、AWS AppConfig はデプロイをロールバックします。 CloudWatch アラームに基づいてAWS AppConfigをロールバックするアクセス許可を設定する必要があります。詳細については、「(オプション) に基づいてロールバック用のアクセス許可の設定 CloudWatch アラーム」を参照してください。

定義済みのデプロイ戦略

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

デプロイ戦略 説明

AppConfig.AllAtOnce

クイック:

この戦略では、すべてのターゲットにただちに設定をデプロイします。システムは Amazon CloudWatch アラームを 10 分間監視します。この時間内にアラームが受信されなければ、デプロイは完了です。この間にアラームがトリガーされた場合、 AppConfig はデプロイをロールバックします。

AppConfig. リニア 50PercentEvery 30 秒

テスト/デモンストレーション:

この戦略では、30 秒ごとに設定をすべてのターゲットの半分にデプロイし、1 分間のデプロイを行います。システムは Amazon CloudWatch アラームを 1 分間監視します。この時間内にアラームが受信されなければ、デプロイは完了です。この間にアラームがトリガーされると、 AppConfig デプロイをロールバックします。

この戦略では、継続時間と処理時間が短いため、テストまたはデモンストレーションの目的でのみ使用することをお勧めします。

AppConfig・カナリア 10% 20分

AWS の推奨:

この戦略では、20 分間にわたって 10% の増加係数を使用し、デプロイを指数関数的に処理します。システムは Amazon CloudWatch アラームを 10 分間監視します。この時間内にアラームが受信されなければ、デプロイは完了です。この間にアラームがトリガーされると、 AppConfig デプロイをロールバックします。

この戦略は、設定のデプロイに関する AWS のベストプラクティスに沿っているため、本稼働環境のデプロイに使用することをお勧めします。

デプロイ戦略の作成

最大 20 のデプロイ戦略を作成できます。設定をデプロイするときに、アプリケーションおよび環境に最適なデプロイ戦略を選択できます。

AWS AppConfig デプロイ戦略の作成 (コンソール)

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

デプロイ戦略を作成するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/appconfig/) を開きます。

  2. ナビゲーションペインで、[AWS AppConfig] を選択します。

  3. [Deployment Strategies (デプロイ戦略)] タブを選択し、[Create deployment strategy (デプロイ戦略の作成)] を選択します。

  4. [Name (名前)] に、デプロイ戦略の名前を入力します。

  5. [Description (説明)] に、デプロイ戦略に関する情報を入力します。

  6. [Deployment type (デプロイタイプ)] で、タイプを選択します。

  7. [Step percentage (ステップパーセンテージ)] で、デプロイの各ステップでターゲットとする発信者の割合を選択します。

  8. [Deployment time (デプロイ時間)] に、デプロイの合計期間を分または時間単位で入力します。

  9. [Bake time] (焼き時間) には、デプロイの次のステップに進む前、またはデプロイを完了とみなす前に Amazon CloudWatch アラームをモニタリングする合計時間を分または時間単位で入力します。

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

  11. [Create deployment strategy (デプロイ戦略の作成)] を選択します。

重要

の設定プロファイルを作成した場合AWS CodePipeline、デプロイプロバイダー CodePipeline AWS AppConfigとして指定するパイプラインを作成する必要があります。ステップ 5: 構成のデプロイ を実行する必要はありません。ただし、「ステップ 6: 設定の取得」で説明されているように、アプリケーション設定の更新を受け取るようにクライアントを設定する必要があります。AWS AppConfigデプロイプロバイダーとして指定するパイプラインの作成については、「チュートリアル」を参照してください。AWS AppConfigAWS CodePipelineユーザーガイドでデプロイプロバイダーとして使用するパイプラインを作成します

ステップ 5: 構成のデプロイ に進みます。

AWS AppConfigデプロイパッケージの作成 (コマンドライン)

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

デプロイ戦略をステップバイステップで作成するには
  1. AWS CLI をインストールして設定します。詳細については、「AWS コマンドラインツールをインストールまたはアップグレードする」を参照してください。

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

    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