デプロイ戦略の使用 - AWS AppConfig

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

デプロイ戦略の使用

デプロイ戦略を使うと、数分または数時間かけて変更を本番環境にゆっくりとリリースできます。 AWS AppConfig デプロイ戦略は、設定デプロイの以下の重要な側面を定義します。

設定 説明

デプロイタイプ

デプロイタイプは、設定が をデプロイまたはロールアウトする方法を定義します。 は線形デプロイタイプと指数デプロイタイプ AWS AppConfig をサポートします。

  • 線形 : このタイプでは、 はデプロイ全体に均等に分散された増加係数の増分でデプロイ AWS AppConfig を処理します。以下に、20% の直線的成長を使用して 10 時間でデプロイのタイムラインの例を示します:

    経過時間 デプロイの進捗状況

    0 時間

    0%

    2 時間

    20%

    4 時間

    40%

    6 時間

    60%

    8 時間

    80%

    10 時間

    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% にデプロイされてから、デプロイが完了したと見なされるまでに Amazon CloudWatch アラームを AWS AppConfig モニタリングする時間を指定します。この間にアラームがトリガーされた場合、 AWS AppConfig はデプロイをロールバックします。 CloudWatch アラームに基づいてロールバック AWS AppConfig するには、 のアクセス許可を設定する必要があります。詳細については、「自動ロールバックのアクセス許可を設定する」を参照してください。

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

定義済みのデプロイ戦略

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

デプロイ戦略 説明

AppConfig.線形 20PercentEvery6Minutes

AWS 推奨

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

この戦略は、 AWS ベストプラクティスと一致し、長期間とベイク時間のため、デプロイの安全性に重点が置かれているため、本番環境のデプロイに使用することをお勧めします。

AppConfig.Canary10Percent20Minutes

AWS 推奨

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

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

AppConfig.AllAtOnce

クイック:

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

AppConfig.Linear50PercentEvery30Seconds

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

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

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

デプロイ戦略の作成

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

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

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

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

  2. ナビゲーションペインで、デプロイ戦略 を選択し、デプロイ戦略の作成 を選択します。

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

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

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

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

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

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

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

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

重要

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

構成のデプロイ に進みます。

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

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

デプロイ戦略をステップバイステップで作成するには
  1. を開きます AWS CLI。

  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