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

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

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

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

設定 説明

デプロイタイプ

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

  • Linear (リニア): このタイプでは、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%、ターゲットの 8% のようにロールアウトされ、設定がすべてのターゲットにデプロイされるまで続行されます。

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

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

注記

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

デプロイ時間

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

>

ベイク時間

この設定では、時間の長さを指定します。AWS AppConfigは、Amazon CloudWatch の次のステップに進む前、またはデプロイを完了とみなす前にモニタリングします。この間にアラームがトリガーされた場合、AWS AppConfig はデプロイをロールバックします。のアクセス許可を設定する必要があります。AWS AppConfigCloudWatch アラームに基づいてロールバックします。詳細については、「」を参照してください(オプション) CloudWatch アラームに基づいてロールバック用のアクセス許可を設定する

定義済みのデプロイ戦略

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

デプロイ戦略 説明

AppConfig.AllAtOnce

クイック:

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

AppConfig.Linear50PercentEvery30Seconds

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

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

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

AppConfig.Canary10Percent20Minutes

AWS推奨:

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

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

デプロイ戦略の作成

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

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

以下の手順に従って、AWS AppConfigを使用したデプロイストラテジーAWS Systems Managerconsole.

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

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

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

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

重要

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

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

の作成AWS AppConfigデプロイ戦略 (コマンドライン)

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

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

  1. まだ AWS CLI または AWS Tools for PowerShell をインストールして設定していない場合は、インストールして設定します。

    詳細については、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