CodeDeploy を使用してデプロイ設定を作成する - AWS CodeDeploy

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

CodeDeploy を使用してデプロイ設定を作成する

CodeDeploy に用意してあるデフォルトのデプロイ設定のいずれも使用しない場合は、次の手順を実行して独自のデプロイ設定を作成できます。

CodeDeploy コンソール、AWS CLI、CodeDeploy API、または AWS CloudFormation テンプレートを使用して、カスタムデプロイ設定を作成できます。

AWS CloudFormation テンプレートを使用してデプロイ設定を作成する方法については、「AWS CloudFormation CodeDeploy参照用テンプレート」を参照してください。

デプロイ設定の作成 (コンソール)

AWS コンソールを使用してデプロイ設定を作成するには、次の手順を実行します。

コンソールを使用して CodeDeploy でデプロイ設定を作成するには
  1. AWS Management Console にサインインし、https://console.aws.amazon.com/codedeploy にある CodeDeploy コンソールを開きます。

    注記

    CodeDeploy の開始方法」で設定したのと同じユーザーでサインインします。

  2. ナビゲーションペインで [デプロイ設定] を選択します。

    組み込みのデプロイ設定のリストが表示されます。

  3. [Create deployment configuration (デプロイ設定の作成)] を選択します。

  4. [デプロイ設定名] に、デプロイ設定の名前を入力します。例えば、「my-deployment-config」と入力します。

  5. [コンピューティングプラットフォーム] で、次のいずれかを選択します。

    • EC2/オンプレミス

    • AWS Lambda

    • Amazon ECS

  6. 次のいずれかを行います:

    • EC2/オンプレミスを選択した場合:

      1. [正常なホストの最小数] で、デプロイ中のどの時点でも使用可能でなければならないインスタンスの数または割合を指定します。CodeDeploy がデプロイ中にインスタンスのヘルス状態をモニタリングおよび評価する方法の詳細については、「Instance Health」を参照してください。

      2. (オプション) [ゾーン設定] で、[ゾーン設定を有効にする] を選択すると、CodeDeploy は AWS リージョン内で一度に 1 つのアベイラビリティーゾーンにアプリケーションをデプロイします。一度に 1 つのアベイラビリティーゾーンにデプロイすることで、デプロイのパフォーマンスと実行可能性に対する信頼が高まるにつれて、デプロイを徐々に多くのユーザーに公開できます。ゾーン設定を有効にしない場合、CodeDeploy はリージョン内のランダムに選択されたホストにアプリケーションをデプロイします。

        ゾーン設定機能を有効にする場合は、次の点に注意してください。

        • ゾーン設定機能は、Amazon EC2 インスタンスへのインプレースデプロイでのみサポートされます (ブルー/グリーンデプロイやオンプレミスインスタンスはサポートされません)。インプレイスデプロイの詳細については、「デプロイタイプ」を参照してください。

        • ゾーン設定機能は、事前定義済みのデプロイ設定ではサポートされません。ゾーン設定を使用するには、ここで説明しているように、カスタムデプロイ設定を作成する必要があります。

        • CodeDeploy は、デプロイをロールバックする必要がある場合、ランダムなホストにロールバック操作を実行します (CodeDeploy は、想定とは異なり、一度に 1 つのゾーンを順にロールバックしません)。このロールバック動作は、パフォーマンス上の理由から選択されています。ロールバックの詳細については、「CodeDeploy を使用してデプロイを再デプロイしてロールバックする」を参照してください。

      3. [ゾーン設定を有効にする] チェックボックスをオンにした場合は、オプションで以下のオプションを指定します。

        • (オプション) [監視期間] で、CodeDeploy が 1 つのアベイラビリティーゾーンへのデプロイを完了してから待機する時間を秒単位で指定します。CodeDeploy は、次のアベイラビリティーゾーンへのデプロイを開始する前に、この時間だけ待機します。デプロイが 1 つのアベイラビリティーゾーンで完了して次のゾーンに進む前に、一定時間を確保して完了を実証 (ベイク) する場合は、監視期間を追加することを検討します。監視期間を指定しない場合、CodeDeploy は次のアベイラビリティーゾーンへのデプロイをすぐに開始します。[監視期間] 設定の仕組みについては、「アベイラビリティーゾーンあたりの正常なインスタンスの最小数について」を参照してください。

        • (オプション) [最初のゾーンに監視期間を追加] を選択すると、最初のアベイラビリティーゾーンにのみ監視期間が設定されます。このオプションは、1 つ目のアベイラビリティーゾーンのベイク時間を確保する場合に設定できます。[最初のゾーンの監視期間を追加] に値を指定しない場合、CodeDeploy は最初のアベイラビリティーゾーンの [監視期間] の値を使用します。

        • (オプション) [ゾーンあたりの正常なホストの最小数] で、デプロイ中に使用可能でなければならない、アベイラビリティーゾーンあたりのインスタンスの数または割合を指定します。FLEET_PERCENT を選択してパーセンテージを指定するか、HOST_COUNT を選択して数値を指定します。このフィールドは [正常なホストの最小数] フィールドと連動します。詳細については、「アベイラビリティーゾーンあたりの正常なインスタンスの最小数について」を参照してください。

          [ゾーンあたりの正常なホストの最小数] に値を指定しない場合、CodeDeploy はデフォルト値の 0 パーセントを使用します。

    • [AWS Lambda] または [Amazon ECS] を選択した場合:

      1. [タイプ]] で、[リニア] または [Canary] を選択します。

      2. [ステップ] フィールドと [間隔] フィールドで、次のいずれかを行います。

        • [Canary] を選択した場合は、[ステップ] に、移行するトラフィックのパーセンテージを 1~99 で入力します。この値は、最初の増分で移行されるトラフィックの割合を示します。残りのトラフィックは、2 回目の増分で、選択した間隔後に移行されます。

          [間隔] に、1 番目と 2 番目のトラフィック移行間の分数を入力します。

        • [リニア] を選択した場合は、[ステップ] に、移行するトラフィックのパーセンタージを 1~99 で入力します。この値は、各間隔の開始時に移行されるトラフィックの割合を示します。

          [間隔] に、各増分移行間の分数を入力します。

  7. [Create deployment configuration (デプロイ設定の作成)] を選択します。

    これで、デプロイグループに関連付けることができるデプロイ設定が整いました。

CodeDeploy を使用してデプロイ設定を作成する (AWS CLI)

AWS CLI を使用してデプロイ設定を作成するには、create-deployment-config コマンドを呼び出します。

次の例では、ThreeQuartersHealthy という名前の EC2/オンプレミスデプロイ設定を作成します。このデプロイ設定では、デプロイ中にターゲットインスタンスの 75% が常に正常であることが要求されます。

aws deploy create-deployment-config --deployment-config-name ThreeQuartersHealthy --minimum-healthy-hosts type=FLEET_PERCENT,value=75

次の例では、300Total50PerAZ という名前の EC2/オンプレミスデプロイ設定を作成します。このデプロイ設定では、デプロイあたり合計 300 個のターゲットインスタンス、およびアベイラビリティーゾーンあたり 50 個のターゲットインスタンスが常に正常であることが要求されます。また、監視期間を 1 時間に設定します。

aws deploy create-deployment-config --deployment-config-name 300Total50PerAZ --minimum-healthy-hosts type=HOST_COUNT,value=300 --zonal-config '{"monitorDurationInSeconds":3600,"minimumHealthyHostsPerZone":{"type":"HOST_COUNT","value":50}}'

次の例では、Canary25Percent45Minutes という名前の AWS Lambda デプロイ設定を作成します。この際、最初の増分でトラフィックの 25 パーセントを移行する Canary トラフィックを使用します。残りの 75 パーセントは 45 分後に移行されます。

aws deploy create-deployment-config --deployment-config-name Canary25Percent45Minutes --traffic-routing-config "type="TimeBasedCanary",timeBasedCanary={canaryPercentage=25,canaryInterval=45}" --compute-platform Lambda

次の例では、Canary25Percent45Minutes という名前の Amazon ECS デプロイ設定を作成します。この際、最初の増分でトラフィックの 25 パーセントを移行する Canary トラフィックを使用します。残りの 75 パーセントは 45 分後に移行されます。

aws deploy create-deployment-config --deployment-config-name Canary25Percent45Minutes --traffic-routing-config "type="TimeBasedCanary",timeBasedCanary={canaryPercentage=25,canaryInterval=45}" --compute-platform ECS