CodeDeploy 主なコンポーネント - AWS CodeDeploy

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

CodeDeploy 主なコンポーネント

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

アプリケーション

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

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

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

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

    EC2/オンプレミス コンピューティングプラットフォームを使用するデプロイでは、インプレイスまたは Blue/Green デプロイタイプを使用して、トラフィックをインスタンスに振り分ける方法を管理できます。詳細については、「 CodeDeploy 使い方が」を参照してください。

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

    Canary、線形設定、 all-at-once または設定を選択して、デプロイ時に更新済み Lambda 関数バージョンにトラフィックを移行する方法を管理できます。

  • Amazon ECS:Amazon ECS にコンテナ化されたアプリケーションをタスクセットとしてデプロイするために使用します。 CodeDeploy アプリケーションの更新バージョンを新しい置き換えタスクセットとしてインストールすることで、Blue/green デプロイを実行します。 CodeDeploy 本稼働トラフィックを元のアプリケーションタスクセットから置き換えタスクセットに再ルーティングします。デプロイが正常に完了すると、元のタスクセットは削除されます。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 つの増分で移行されます。事前定義された複数の Canary オプションから選択し、最初の増分および間隔でトラフィックを更新済み Lambda 関数または ECS タスクセットに移行する割合 (%) を分単位で指定できます。

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

  • All-at-once: すべてのトラフィックを元の Lambda 関数または ECS タスクセットから更新済み関数またはタスクセットに同時に移行します。

デプロイグループ

デプロイグループとは、個々のインスタンスのセットです。デプロイグループには、個別にタグ付けされた Amazon EC2 インスタンス、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 オンプレミスコンピューティングプラットフォームの Blue/Green: 以下のステップを使用して、デプロイグループのインスタンス (元の環境) がインスタンスの別のセット (置き換え先環境) に置き換えられます。

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

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

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

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

      注記

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

    • AWS Lambdaまたは Amazon ECS コンピューティングプラットフォームの青/緑:トラフィックは、カナリアリニアall-at-onceまたはデプロイ設定に従って段階的にシフトされます。詳細については、「デプロイ設定」を参照してください。

    • AWS CloudFormation を通じた Blue/Green デプロイ: AWS CloudFormation スタック更新の一環として、トラフィックが現在のリソースから更新されたリソースに移行されます。現時点では、ECS blue/green デプロイのみがサポートされています。

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

注記

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

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

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

リビジョン

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

サービスロール

サービスロールは、AWSのサービスに許可を付与して、AWSリソースにアクセスできるようにする IAM ロールです。サービスロールに添付するポリシーによって、どの AWS リソースにサービスがアクセスできるか、およびそれらのリソースで何ができるかが決まります。 CodeDeployでは、サービスロールは、以下の目的で使用されます。

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

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

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

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

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

リビジョンの計画を立てる

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

その他のコンポーネント

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