

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

# CodeDeploy プライマリコンポーネント
<a name="primary-components"></a>

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

**Topics**
+ [アプリケーション](#primary-components-application)
+ [コンピューティングプラットフォーム](#primary-components-compute-platform)
+ [Deployment configuration](#primary-components-deployment-configuration)
+ [デプロイグループ](#primary-components-deployment-group)
+ [デプロイタイプ](#primary-components-deployment-type)
+ [IAM インスタンスプロファイル](#primary-components-iam-instance-profile)
+ [リビジョン](#primary-components-revision)
+ [サービスロール](#primary-components-service-role)
+ [ターゲットリビジョン](#primary-components-target-revision)
+ [他のコンポーネント](#primary-components-other-components)

## アプリケーション
<a name="primary-components-application"></a>

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

## コンピューティングプラットフォーム
<a name="primary-components-compute-platform"></a>

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

  EC2/オンプレミス コンピューティングプラットフォームを使用するデプロイでは、インプレイスまたは Blue/Green デプロイタイプを使用して、トラフィックをインスタンスに振り分ける方法を管理できます。詳細については、「[CodeDeploy デプロイタイプの概要](welcome.md#welcome-deployment-overview)」を参照してください。
+ **AWS Lambda**: Lambda 関数の更新バージョンで構成されるアプリケーションをデプロイするために使用されます。 は、高可用性コンピューティング構造で構成されるサーバーレスコンピューティング環境で Lambda 関数 AWS Lambda を管理します。コンピューティングリソースの管理はすべて、 によって実行されます AWS Lambda。詳細については、「[サーバーレスコンピューティングとアプリケーション](https://aws.amazon.com/serverless/)」を参照してください。 AWS Lambda および Lambda 関数の詳細については、「」を参照してください[AWS Lambda](https://aws.amazon.com/lambda/)。

  Canary 設定、線形設定、または一度にすべての設定を選択して、デプロイ時に更新済み Lambda 関数バージョンにトラフィックを移行する方法を管理できます。
+ **Amazon ECS**：Amazon ECS にコンテナ化されたアプリケーションをタスクセットとしてデプロイするために使用します。CodeDeploy は、アプリケーションの更新バージョンを新しい置き換えタスクセットとしてインストールすることで、blue/Green のデプロイを実行します。CodeDeploy は、元のアプリケーションタスクセットからの本稼働トラフィックを置き換えタスクセットに再ルーティングします。デプロイが正常に完了すると、元のタスクセットは終了します。Amazon ECS の詳細については、「[Amazon Elastic Container Service](https://aws.amazon.com/ecs/)」を参照してください。

  Canary 設定、線形設定、または一度にすべての設定を選択して、デプロイ時に更新済みタスクセットにトラフィックを移行する方法を管理できます。

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

## Deployment configuration
<a name="primary-components-deployment-configuration"></a>

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

EC2/オンプレミスコンピューティングプラットフォームを使用したデプロイに対する正常なホストの最小数の指定については、「[正常なインスタンスの最小数について](instances-health.md#minimum-healthy-hosts)」を参照してください。

以下のデプロイ設定では、Lambda または ECS コンピューティングプラットフォームを使用するデプロイの間にトラフィックをルーティングする方法を指定します。
+ **Canary**: トラフィックは 2 つの増分で移行されます。事前定義された canary オプションから選択できます。これらのオプションでは、更新された Lambda 関数または ECS タスクセットに、2 回目の増分で移行される前に最初の増分および間隔 (分単位) で移行される、トラフィックの割合 (%) が指定されています。
+ **Linear**: トラフィックは等しい増分で移行され、増分間の間隔 (分) も同じです。増分ごとに移行するトラフィックの割合 (%) と、増分間の間隔 (分) を指定する、事前定義済み線形オプションから選択できます。
+ **一度にすべて**: すべてのトラフィックを元の Lambda 関数または ECS タスクセットから更新された関数またはタスクセットに同時に移行します。

## デプロイグループ
<a name="primary-components-deployment-group"></a>

*デプロイグループ*は、個々のインスタンスのセットです。デプロイグループには、個別にタグ付けされた Amazon EC2 インスタンス、Amazon EC2 Auto Scaling グループ内の Amazon EC2 インスタンス、またはその両方が含まれます。Amazon EC2 インスタンスタグの詳細については、「[コンソールでのタグの操作](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_Console)」を参照してください。オンプレミスインスタンスの詳細については、「[CodeDeploy 用のオンプレミスインスタンスを用いての作業](instances-on-premises.md)」を参照してください。Amazon EC2 Auto Scaling の情報に関しては、「[CodeDeploy と Amazon EC2 Auto Scaling の統合](integrations-aws-auto-scaling.md)」を参照してください。

## デプロイタイプ
<a name="primary-components-deployment-type"></a>

*デプロイタイプ*は、デプロイグループ内のインスタンスで最新のアプリケーションリビジョンを使用できるようにするために使用される方法です。次の 2 種類のデプロイタイプがあります。
+ **インプレイスデプロイ**: デプロイグループの各インスタンス上のアプリケーションが停止され、最新のアプリケーションリビジョンがインストールされて、新バージョンのアプリケーションが開始され検証されます。ロードバランサーを使用し、デプロイ中はインスタンスが登録解除され、デプロイ完了後にサービスに復元されるようにできます。EC2 オンプレミスコンピューティングプラットフォームを使用するデプロイのみが、インプレイスデプロイを使用できます。インプレイスデプロイの詳細については、「[インプレースデプロイの概要](welcome.md#welcome-deployment-overview-in-place)」を参照してください。
+ **Blue/Green デプロイ**: デプロイの動作は、使用するコンピューティングプラットフォームにより異なります。
  + **EC2 オンプレミスコンピューティングプラットフォームの Blue/Green**: 以下のステップを使用して、デプロイグループのインスタンス (元の環境) がインスタンスの別のセット (置き換え先環境) に置き換えられます。
    + 置き換え先の環境のインスタンスがプロビジョニングされます。
    + 最新のアプリケーションリビジョンは、置き換え先インスタンスにインストールされます。
    + オプションの待機時間は、アプリケーションのテストやシステム検証などのアクティビティに対して発生します。
    + 置き換え先環境のインスタンスは、1 つまたは複数の Elastic Load Balancing ロードバランサーに登録され、トラフィックは、それらに再ルーティングされます。元の環境のインスタンスは、登録が解除され、終了するか、他の使用のために実行することができます。
**注記**  
EC2/オンプレミスのコンピューティングプラットフォームを使用する場合は、blue/green デプロイが Amazon EC2 インスタンスでのみ機能することに注意してください。
  + ** AWS Lambda または Amazon ECS コンピューティングプラットフォームの Blue/Green**: トラフィックは**、Canary**、**線形**、または **all-at-once**のデプロイ設定に従って増分でシフトされます。
  + **経由のブルー/グリーンデプロイ CloudFormation**: スタック CloudFormation の更新の一環として、トラフィックは現在のリソースから更新されたリソースに移行されます。現時点では、ECS blue/green デプロイのみがサポートされています。

  ブルー/グリーンデプロイの詳細については、「[Blue/Green デプロイの概要](welcome.md#welcome-deployment-overview-blue-green)」を参照してください。

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

## IAM インスタンスプロファイル
<a name="primary-components-iam-instance-profile"></a>

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

## リビジョン
<a name="primary-components-revision"></a>

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

## サービスロール
<a name="primary-components-service-role"></a>

*サービスロール*は、 AWS リソースにアクセスできるように AWS サービスにアクセス許可を付与する IAM ロールです。サービスロールにアタッチするポリシーによって、サービスがアクセスできる AWS リソースと、それらのリソースで実行できるアクションが決まります。CodeDeploy では、サービスロールは、以下の目的で使用されます。
+ インスタンスに適用されているタグやインスタンスに関連付けられている Amazon EC2 Auto Scaling グループ名を読み取ることができます。これにより、CodeDeploy はアプリケーションをデプロイできるインスタンスを識別できます。
+ インスタンス、Amazon EC2 Auto Scaling グループ、および Elastic Load Balancing ロードバランサーでオペレーションを実行するには。
+ 指定したデプロイまたはインスタンスイベントが発生したときに通知を送信できるように、Amazon SNS トピックに情報を公開すること。
+ CloudWatch アラームに関する情報を取得して、デプロイのアラームモニタリングを設定します。

詳細については、「[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)」を参照してください。

## ターゲットリビジョン
<a name="primary-components-target-revision"></a>

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

## 他のコンポーネント
<a name="primary-components-other-components"></a>

CodeDeploy ワークフローの他のコンポーネントの詳細については、次のトピックを参照してください。
+ [CodeDeploy リポジトリタイプを選択する](application-revisions-repository-type.md)
+  [CodeDeploy デプロイ](deployment-steps.md)
+  [CodeDeploy アプリケーション仕様 (AppSpec) ファイル](application-specification-files.md)
+  [CodeDeploy インスタンスのヘルス](instances-health.md)
+  [CodeDeploy エージェントの使用](codedeploy-agent.md)
+  [CodeDeploy 用のオンプレミスインスタンスを用いての作業](instances-on-premises.md)