CodeDeploy プライマリコンポーネント - AWS CodeDeploy

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

CodeDeploy プライマリコンポーネント

サービスの使用を開始する前に、 CodeDeploy デプロイプロセスの主要なコンポーネントを理解しておく必要があります。

アプリケーション

アプリケーションは、デプロイするアプリケーションを一意に識別する名前です。この名前 CodeDeploy はコンテナとして機能し、デプロイ中にリビジョン、デプロイ設定、デプロイグループの正しい組み合わせが参照されるようにします。

コンピューティングプラットフォーム

コンピューティングプラットフォームは、アプリケーションを CodeDeploy デプロイするプラットフォームです。コンピューティングプラットフォームは 3 つあります。

  • EC2/オンプレミス : Amazon EC2 クラウドインスタンス、オンプレミスサーバー、またはその両方になり得る物理サーバーのインスタンスについて説明します。EC2/オンプレミスコンピューティングプラットフォームを使用して作成されたアプリケーションは、実行可能ファイル、設定ファイル、イメージなどで構成されます。

    EC2/オンプレミスコンピューティングプラットフォームを使用するデプロイでは、インプレースデプロイタイプまたはブルー/グリーンデプロイタイプを使用して、トラフィックがインスタンスに転送される方法を管理します。詳細については、「 CodeDeploy デプロイタイプの概要」を参照してください。

  • AWS Lambda : Lambda 関数の更新バージョンで構成されるアプリケーションをデプロイするために使用します。高可用性コンピューティング構造で構成されるサーバーレスコンピューティング環境で Lambda 関数 AWS Lambda を管理します。コンピューティングリソースのすべての管理は、 によって実行されます AWS Lambda。詳細については、「サーバーレスコンピューティングとアプリケーション」を参照してください。 AWS Lambda および Lambda 関数の詳細については、「」を参照してくださいAWS Lambda

    Canary、リニア、または all-at-once 設定を選択することで、デプロイ中にトラフィックが更新された Lambda 関数バージョンに移行する方法を管理できます。

  • Amazon ECS: Amazon ECSコンテナ化されたアプリケーションをタスクセットとしてデプロイするために使用します。 CodeDeploy は、アプリケーションの更新されたバージョンを新しい代替タスクセットとしてインストールすることで、ブルー/グリーンデプロイを実行します。 CodeDeploy reroutes は、元のアプリケーションタスクセットから代替タスクセットに本番トラフィックを送信します。デプロイが正常に完了すると、元のタスクセットは削除されます。Amazon の詳細についてはECS、「Amazon Elastic Container Service」を参照してください。

    Canary、リニア、または all-at-once 設定を選択することで、デプロイ中にトラフィックが更新されたタスクセットに移行する方法を管理できます。

注記

Amazon ECS Blue/Green デプロイは、 CodeDeploy と の両方でサポートされています AWS CloudFormation。これらのデプロイの詳細については、以降のセクションで説明します。

デプロイ設定

デプロイ設定は、デプロイ CodeDeploy 中に が使用するデプロイルールとデプロイの成功条件と失敗条件のセットです。デプロイで EC2/オンプレミスコンピューティングプラットフォームを使用している場合は、デプロイの正常なインスタンスの最小数を指定できます。デプロイで AWS Lambda または Amazon ECSコンピューティングプラットフォームを使用している場合は、更新された Lambda 関数またはECSタスクセットへのトラフィックのルーティング方法を指定できます。

EC2/オンプレミスコンピューティングプラットフォームを使用するデプロイの正常なホストの最小数を指定する方法の詳細については、「」を参照してください正常なインスタンスの最小数について

次のデプロイ設定は、Lambda またはECSコンピューティングプラットフォームを使用するデプロイ中にトラフィックがどのようにルーティングされるかを指定します。

  • Canary: トラフィックは 2 つの増分で移行されます。1 番目の増分で更新された Lambda 関数またはECSタスクセットにシフトされたトラフィックの割合と、残りのトラフィックが 2 番目の増分でシフトされる前の分単位の間隔を指定する、事前定義された Canary オプションから選択できます。

  • Linear: トラフィックは等しい増分で移行され、増分間の間隔 (分) も同じです。増分ごとに移行するトラフィックの割合 (%) と、増分間の間隔 (分) を指定する、事前定義済み線形オプションから選択できます。

  • A ll-at-once: すべてのトラフィックは、元の Lambda 関数またはECSタスクセットから更新された関数またはタスクセットに一度にシフトされます。

デプロイグループ

デプロイグループは、個々のインスタンスのセットです。デプロイグループには、個別にタグ付けされたインスタンス、Amazon EC2 Auto Scaling グループの Amazon EC2インスタンス、またはその両方が含まれます。Amazon EC2インスタンスタグの詳細については、「 コンソールを使用したタグの操作」を参照してください。オンプレミスインスタンスの詳細については、「Working with On-Premises Instances」を参照してください。Amazon EC2 Auto Scaling の詳細については、「」を参照してくださいAmazon EC2 Auto Scaling CodeDeploy との統合

デプロイタイプ

デプロイタイプは、デプロイグループ内のインスタンスで最新のアプリケーションリビジョンを使用できるようにするために使用される方法です。次の 2 種類のデプロイタイプがあります。

  • インプレイスデプロイ: デプロイグループの各インスタンス上のアプリケーションが停止され、最新のアプリケーションリビジョンがインストールされて、新バージョンのアプリケーションが開始され検証されます。ロードバランサーを使用し、デプロイ中はインスタンスが登録解除され、デプロイ完了後にサービスに復元されるようにできます。EC2/オンプレミスコンピューティングプラットフォームを使用するデプロイのみが、インプレースデプロイを使用できます。インプレイスデプロイの詳細については、「インプレースデプロイの概要」を参照してください。

  • Blue/Green デプロイ: デプロイの動作は、使用するコンピューティングプラットフォームにより異なります。

    • EC2/オンプレミスコンピューティングプラットフォームのブルー/グリーン: デプロイグループ (元の環境) のインスタンスは、次のステップを使用して別のインスタンスセット (置換環境) に置き換えられます。

      • 置き換え先の環境のインスタンスがプロビジョニングされます。

      • 最新のアプリケーションリビジョンは、置き換え先インスタンスにインストールされます。

      • オプションの待機時間は、アプリケーションのテストやシステム検証などのアクティビティに対して発生します。

      • 置き換え先環境のインスタンスは、1 つまたは複数の Elastic Load Balancing ロードバランサーに登録され、トラフィックは、それらに再ルーティングされます。元の環境のインスタンスは、登録が解除され、終了するか、他の使用のために実行することができます。

      注記

      EC2/オンプレミスコンピューティングプラットフォームを使用する場合は、ブルー/グリーンデプロイは Amazon EC2インスタンスでのみ機能することに注意してください。

    • AWS Lambda または Amazon ECSコンピューティングプラットフォームのブルー/グリーン: トラフィックは、Canary 線形 、またはall-at-onceデプロイ設定に従って増分でシフトされます。

    • によるブルー/グリーンデプロイ AWS CloudFormation: AWS CloudFormation スタックの更新の一環として、トラフィックは現在のリソースから更新されたリソースに移行されます。現在、ECSブルー/グリーンデプロイのみがサポートされています。

    ブルー/グリーンデプロイの詳細については、「Blue/Green デプロイの概要」を参照してください。

注記

Amazon ECS Blue/Green デプロイは、 CodeDeploy と の両方を使用してサポートされています AWS CloudFormation。これらのデプロイの詳細については、以降のセクションで説明します。

IAM インスタンスプロファイル

IAM インスタンスプロファイルは、Amazon EC2インスタンスにアタッチするIAMロールです。このプロファイルには、アプリケーションが保存されている Amazon S3 バケットまたは GitHub リポジトリへのアクセスに必要なアクセス許可が含まれます。詳細については、「ステップ 4: Amazon IAMインスタンスのEC2インスタンスプロファイルを作成する」を参照してください。

リビジョン

リビジョンは、アプリケーションのバージョンです。 AWS Lambda デプロイリビジョンは、デプロイする Lambda 関数に関する情報を指定する YAMLまたは JSON形式のファイルです。EC2/オンプレミスデプロイリビジョンは、ソースコンテンツ (ソースコード、ウェブページ、実行可能ファイル、デプロイスクリプト) とアプリケーション仕様ファイル (AppSpec ファイル) を含むアーカイブファイルです。 AWS Lambda リビジョンは Amazon S3 バケットに保存できます。EC2/オンプレミスリビジョンは Amazon S3 バケットまたは GitHub リポジトリに保存されます。Amazon S3 の場合、リビジョンは Amazon S3 オブジェクトキーとその ETag、バージョン、またはその両方によって一意に識別されます。の場合 GitHub、リビジョンはコミット ID によって一意に識別されます。

サービスロール

サービスロールは、 サービスが AWS リソースにアクセスできるように、 AWS サービスにアクセス許可を付与するIAMロールです。サービスロールにアタッチするポリシーによって、サービスがアクセスできる AWS リソースと、それらのリソースで実行できるアクションが決まります。の場合 CodeDeploy、サービスロールは以下に使用されます。

  • インスタンスに適用されるタグまたはインスタンスに関連付けられた Amazon EC2 Auto Scaling グループ名を読み取るには。これにより CodeDeploy 、 はアプリケーションをデプロイできるインスタンスを識別できます。

  • インスタンス、Amazon EC2 Auto Scaling グループ、および Elastic Load Balancing ロードバランサーに対してオペレーションを実行するには。

  • 指定されたデプロイイベントまたはインスタンスイベントが発生したときに通知を送信できるように、Amazon SNSトピックに情報を公開します。

  • デプロイの CloudWatch アラームモニタリングを設定するアラームに関する情報を取得するには。

詳細については、「ステップ 2: のサービスロールを作成する CodeDeploy」を参照してください。

ターゲットリビジョン

ターゲットリビジョンは、リポジトリにアップロードし、デプロイグループ内のインスタンスにデプロイしたいアプリケーションリビジョンの最新バージョンです。つまり、現在デプロイの対象としているアプリケーションリビジョン。これは、自動デプロイにプルされるリビジョンでもあります。

他のコンポーネント

CodeDeploy ワークフロー内の他のコンポーネントの詳細については、以下のトピックを参照してください。