

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

# CodeDeploy でのデプロイモニタリング
<a name="monitoring"></a>

モニタリングは、CodeDeploy と AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分です。マルチポイント障害が発生した場合は、その障害をより簡単にデバッグできるように、 AWS ソリューションのすべての部分からモニタリングデータを収集する必要があります。ただし、CodeDeploy のモニタリングを開始する前に、以下の質問に対する回答を反映したモニタリング計画を作成する必要があります。
+ モニタリングの目的は何ですか?
+ どのリソースをモニタリングしますか?
+ どのくらいの頻度でこれらのリソースをモニタリングしますか?
+ どのモニタリングツールを利用しますか?
+ 誰がモニタリングタスクを実行しますか?
+ 問題が発生したときに誰が通知を受け取りますか?

次のステップでは、さまざまなタイミングと負荷条件で CodeDeploy パフォーマンスを測定することにより、お客様の環境で通常の のパフォーマンスのベースラインを確定します。CodeDeploy のモニタリングでは、過去のモニタリングデータを保存し、現在のパフォーマンスデータと比較することで、パフォーマンスの通常パターンと異常パターンを特定し、問題に対処する方法を考案できます。

例えば、CodeDeploy を使用すると、デプロイおよびターゲットインスタンスのステータスをモニタリングできます。デプロイまたはインスタンスが失敗すると、アプリケーション仕様ファイルの再設定、CodeDeploy エージェントの再インストールまたは更新、アプリケーションまたはデプロイグループの設定の更新、インスタンスの設定または AppSpec ファイルの変更が必要が生じることがあります。

ベースラインを確立するには、少なくとも次の項目をモニタリングする必要があります。
+ デプロイイベントとステータス
+ インスタンスイベントとステータス

## 自動モニタリングツール
<a name="monitoring_automated_tools"></a>

AWS には、CodeDeploy のモニタリングに使用できるさまざまなツールが用意されています。これらのツールの一部はモニタリングを行うように設定できますが、一部のツールは手動による介入が必要です。モニタリングタスクをできるだけ自動化することをお勧めします。

以下の自動化されたモニタリングツールを使用して、CodeDeploy を監視し、問題が発生したときにレポートできます。
+ **Amazon CloudWatch アラーム** - 指定した期間にわたって単一のメトリクスをモニタリングし、複数の期間にわたる特定のしきい値に対するメトリクスの値に基づいて 1 つ以上のアクションを実行します。アクションは、Amazon Simple Notification Service (Amazon SNS) のトピックまたは Amazon EC2 Auto Scaling のポリシーに送信される通知です。CloudWatch アラームは、特定の状態にあるという理由だけでアクションを呼び出すことはありません。状態が変更され、指定された期間維持されている必要があります。詳細については、「[Amazon CloudWatch ツールを使用したデプロイのモニタリング](monitoring-cloudwatch.md)」を参照してください。

  CloudWatch アラームモニタリングを使用するサービスロールの更新に関する詳細については、「[CloudWatch アクセス権限を CodeDeploy サービスロールに付与する](monitoring-create-alarms-grant-permissions.md)」を参照してください。CloudWatch アラームモニタリングの CodeDeploy オペレーションへの追加の詳細については、「[CodeDeploy でアプリケーションを作成する](applications-create.md)」、「[CodeDeploy でデプロイグループを作成する](deployment-groups-create.md)」または「[CodeDeploy を使用して、デプロイグループの設定を変更します。](deployment-groups-edit.md)」を参照してください。

  
+ **Amazon CloudWatch Logs** - AWS CloudTrail またはその他の出典のログファイルのモニタリング、保存、アクセスを行います。詳細については、「Amazon CloudWatch ユーザーガイド」の「[ログファイルのモニタリング](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)」を参照してください。**

  CloudWatch コンソールを使用して CodeDeploy ログを表示する方法については、「[CloudWatch Logs コンソールで CodeDeploy ログを表示する](https://aws.amazon.com/blogs/devops/view-aws-codedeploy-logs-in-amazon-cloudwatch-console/)」を参照してください。。
+ **Amazon CloudWatch Events** - イベントに一致したものを 1 つ以上のターゲットの関数またはストリームに渡して、変更、状態の情報の収集、是正措置を行います。詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[Amazon CloudWatch Events とは](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchEvents.html)」を参照してください。

  CodeDeploy オペレーションで CloudWatch Events の使用の詳細については、「[Amazon CloudWatch Events を使用したデプロイのモニタリング](monitoring-cloudwatch-events.md)」を参照してください。
+ **AWS CloudTrail ログモニタリング** – アカウント間でログファイルを共有し、CloudWatch Logs に送信CloudWatch CloudTrail ログファイルをリアルタイムでモニタリングし、Java でログ処理アプリケーションを書き込み、CloudTrail による配信後にログファイルが変更されていないことを確認します。詳細については、「*AWS CloudTrail ユーザーガイド*」の「[CloudTrail ログファイルの使用](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-working-with-log-files.html)」を参照してください。

  CodeDeploy での CloudTrail の使用についての詳細は、「[を使用したデプロイのモニタリング AWS CloudTrail](monitoring-cloudtrail.md)」を参照してください。
+ **Amazon Simple 通知サービス** - イベント駆動型のトリガーを設定して、成功または失敗など、デプロイおよびインスタンスイベントについての SMS や電子メール通知を受信します。詳細については、「[トピックの作成](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) と [Amazon Simple Notification Service とは](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)」を参照してください。

  アカウントレベルの Amazon SNS の CodeDeploy 通知をセットアップする詳しい方法については、「[Amazon SNS イベント通知を使用したデプロイのモニタリング](monitoring-sns-event-notifications.md)」を参照してください。

## 手動モニタリングツール
<a name="monitoring_manual_tools"></a>

CodeDeploy のモニタリングでもう 1 つ重要な点は、CloudWatch のアラームの対象外の項目を手動でモニタリングすることです。CodeDeploy、CloudWatch、およびその他の AWS コンソールダッシュボードには、 AWS 環境の状態がat-a-glanceビューが表示されます。CodeDeploy デプロイのログファイルを確認することもお勧めします。
+ CodeDeploy コンソールは以下で表示されます。
  + デプロイのステータス
  + リビジョンのデプロイを最後に試みた日時と、最後に成功した日時
  + デプロイの成功、失敗、スキップ、進行中のインスタンス数
  + オンプレミスインスタンスのステータス
  + オンプレミスインスタンスが登録、または登録解除された日時
+ CloudWatch ホームページには、次の内容が表示されます。
  + 現在のアラームとステータス
  + アラームとリソースのグラフ
  + サービスのヘルスステータス

  また、CloudWatch を使用して以下のことを行えます。
  + 重視するサービスをモニタリングするための[カスタマイズしたダッシュボード](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CloudWatch_Dashboards.html)を作成します
  + メトリクスデータをグラフ化して、問題のトラブルシューティングを行い、傾向を確認する
  + すべての AWS リソースメトリクスを検索して参照する
  + 問題があることを通知するアラームを作成/編集する

**トピック**
+ [Monitoring Deployments with Amazon CloudWatch Tools](monitoring-cloudwatch.md)
+ [Monitoring Deployments](monitoring-cloudtrail.md)
+ [Monitoring Deployments with Amazon SNS Event Notifications](monitoring-sns-event-notifications.md)

# Amazon CloudWatch ツールを使用したデプロイのモニタリング
<a name="monitoring-cloudwatch"></a>

CodeDeploy デプロイは、Amazon CloudWatch Events、CloudWatch アラーム、およびAmazon CloudWatch Logs の CloudWatch ツールを使用して、モニタリングできます。

CodeDeploy エージェントおよびデプロイによって作成されたログを確認することにより、デプロイの障害の原因のトラブルシューティングを行うのに役立ちます。各インスタンスで個別に CodeDeploy ログを確認する代わりに、CloudWatch Logs を使用してすべてのログを一元的にモニタリングできます。

CloudWatch アラームと CloudWatch Events を使用して CodeDeploy デプロイをモニタリングする方法については、以下のトピックを参照してください。

**Topics**
+ [CodeDeploy での CloudWatch アラームを使用したデプロイのモニタリング](monitoring-create-alarms.md)
+ [Amazon CloudWatch Events を使用したデプロイのモニタリング](monitoring-cloudwatch-events.md)

# CodeDeploy での CloudWatch アラームを使用したデプロイのモニタリング
<a name="monitoring-create-alarms"></a>

CodeDeploy オペレーションで使用するインスタンスや Amazon EC2 Auto Scaling グループの CloudWatch アラームを作成する方法を説明します。アラームは、指定期間にわたって単一のメトリクスを監視し、その値と複数期間に対するしきい値との比較結果に基づいて 1 つ以上のアクションを実行します。CloudWatch アラームは、状態が変化したときにアクションを呼び出します（例えば、`OK` から `ALARM`)。

ネイティブ CloudWatch アラーム機能では、デプロイで使用しているインスタンスが失敗したときに Amazon SNS 通知を送信したり、インスタンスを停止、終了、再起動、復旧したりするなど、CloudWatch でサポートされているアクションを指定できます。CodeDeploy オペレーションでは、デプロイグループに関連付けた CloudWatch アラームがアクティブ化されるたびにデプロイを停止するようにデプロイグループを設定できます。

最大 10 個の CloudWatch アラームを CodeDeploy デプロイグループに関連付けることができます。指定したアラームがアクティブ化した場合、デプロイは停止し、ステータスは [Stopped] に更新されます。このオプションを使用するには、CodeDeploy サービスロールに対して CloudWatch へのアクセス許可を付与する必要があります。

CloudWatch コンソール での CloudWatch アラームの設定に関する詳細については、[Amazon CloudWatch アラームの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/AlarmThatSendsEmail.html) は *Amazon CloudWatch ユーザーガイド* を参照してください。

CloudWatch アラームを CodeDeploy でデプロイグループに関連付ける方法については、「[CodeDeploy でデプロイグループを作成する](deployment-groups-create.md)」および「[CodeDeploy を使用して、デプロイグループの設定を変更します。](deployment-groups-edit.md)」を参照してください。

**Topics**
+ [CloudWatch アクセス権限を CodeDeploy サービスロールに付与する](monitoring-create-alarms-grant-permissions.md)

# CloudWatch アクセス権限を CodeDeploy サービスロールに付与する
<a name="monitoring-create-alarms-grant-permissions"></a>

デプロイで CloudWatch アラームモニタリングを使用する前に、CodeDeploy オペレーションで使用するサービスロールに対して CloudWatch リソースへのアクセス許可を付与する必要があります。

**CloudWatch アクセス権限を CloudWatch サービスロールに付与する**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. IAM コンソールのナビゲーションペインで [**ロール**] を選択します。

1.  AWS CodeDeploy オペレーションで使用するサービスロールの名前を選択します。

1. [**アクセス許可**] タブの [**インラインポリシー**] エリアで、[**ロールポリシーの作成**] を選択します。

   -または-

   [**Create Role Policy**] ボタンを使用できない場合は、[**Inline Policies**] エリアを拡張して、[**click here**] を選択します。

1. [**Set Permissions**] ページで、[**Custom Policy**] を選択し、次に [**Select**] を選択します。

1. [**Review Policy**] ページで、[**Policy Name**] フィールドに、このポリシーを識別するための名前 [`CWAlarms`] などを入力します。

1. [**Policy Document**] フィールドに以下を貼り付けます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "cloudwatch:DescribeAlarms",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. **[ポリシーを適用]** を選びます。

# Amazon CloudWatch Events を使用したデプロイのモニタリング
<a name="monitoring-cloudwatch-events"></a>

Amazon CloudWatch Events を使用して、インスタンスの状態の変更、または CodeDeploy オペレーションのデプロイ (「イベント」として) を検出して対処できます。次に、作成したルールに基づいて CloudWatch Events はデプロイまたはインスタンスが、ルールで指定した状態になると、1 つ以上のターゲットアクションを呼び出します。状態変更のタイプに応じて、通知を送信、状態情報を取得し、修正作業またはその他のアクションを取ることができます。CodeDeploy オペレーションの一部として CloudWatch Events を使用している場合は、以下のターゲットのタイプを選択できます。
+ AWS Lambda 関数
+  Kinesis Streams
+ Amazon SQS キュー
+ 組み込みターゲット (`EC2 CreateSnapshot API call`、`EC2 RebootInstances API call`、`EC2 StopInstances API call` および `EC2 TerminateInstances API call`) 。
+ Amazon SNS トピック

次にユースケースをいくつか示します。
+ Lambda 機能を使用して、デプロイが失敗するたびに Slack チャネルに通知を配信します。
+ Kinesis ストリームにデプロイまたはインスタンスのデータをプッシュして、包括的でリアルタイムの状態モニタリングをサポートします。
+ CloudWatch アラームアクションを使用して、指定したデプロイやインスタンスイベントが発生したときに、Amazon EC2 インスタンスを自動的に停止、終了、再起動、復旧します。

このトピックの残りの部分では、CodeDeploy の CloudWatch Events ルールを作成するための基本的な手順について説明します。ただし CodeDeploy オペレーションで使用するイベントルールを作成する前に、以下のことを実行する必要があります。
+ CloudWatch Events の前提条件を完了します。詳細については、「[Amazon CloudWatch Events 前提条件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CWE_Prerequisites.html)」を参照してください。
+ CloudWatch Events のイベント、ルール、およびターゲットをしっかりと理解しておきます。詳細については、[Amazon CloudWatch Events とは](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)」および[「新しい CloudWatch Events — AWS リソースの変更を追跡して応答する](https://aws.amazon.com/blogs/aws/new-cloudwatch-events-track-and-respond-to-changes-to-your-aws-resources/)」を参照してください。
+ イベントのルールで使用するターゲットを作成します。

**CodeDeploy の CloudWatch Events ルールを作成するには**

1. CloudWatch コンソール ([https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)) を開きます。

1. ナビゲーションペインの **Events**] を選択します。

1. [**ルールの作成**] を選択してから、[**イベントの選択**] で [**AWS CodeDeploy**] を選択します。

1. 詳細タイプを指定します。
   + インスタンスとデプロイの両方のすべての状態変更に適用されるルールを作成するには、[**Any detail type**] を選択してから、ステップ 6 に進んでください。
   + インスタンスのみに適用するルールを作成するためには [**Specific detail type**] を選択してから、[**CodeDeploy インスタンスの状態変更通知**] を選択します。
   + デプロイのみに適用するルールを作成するためには [**Specific detail type**] を選択してから、[**CodeDeploy デプロイの状態変更通知**] を選択します。

1. ルールを適用する状態変更を指定します。
   + すべての状態変更に適用されるルールを作成するには、[**Any state**] を選択します。
   + いくつかの状態変更のみに適用されるルールを作成するためには、**Specific state(s)** を選択してから、リストから 1 つ以上のステータス値を選択します。次の表は、使用できるステータス値を一覧表示します。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/monitoring-cloudwatch-events.html)

1. ルールが適用される CodeDeploy アプリケーションを指定します。
   + すべてのアプリケーションに適用するルールを作成するためには、[**Any application**] を選択し、ステップ 8 に進んでください。
   + 1 つのアプリケーションのみに適用するルールを作成するためには、[**Specific application**] を選択してから、リストからアプリケーション名を選択します。

1. ルールが適用されるデプロイを指定します。
   + 選択したアプリケーションと関連付けられたすべてのデプロイグループに適用されるルールを作成するためには、[**Any deployment group**] を選択します。
   + 選択したアプリケーションに関連付けられる 1 つのデプロイグループのみに適用されるルールを作成するためには、[**Specific deployment group(s)**] を選択してから、リストからデプロイグループ名を選択します。

1. ルール設定を確認して、イベントモニタリング要件を満たしていることを確認します。

1. [**Targets**] エリアで、[**Add target\$1**] を選択します。

1. **Select target type** リストで、このルールを使用するために準備したターゲットのタイプを選択してから、そのタイプに必要な追加オプションを設定します。

1. **設定の詳細** を選択します。

1. [**Configure rule details**] ページで、ルールの名前と説明を入力し、[**State**] ボックスを選択して、すぐにルールを有効化します。

1. ルールが適切であることを確認したら、[**Create rule**] を選択します。

# を使用したデプロイのモニタリング AWS CloudTrail
<a name="monitoring-cloudtrail"></a>

CodeDeploy は CloudTrail と統合されています。CloudTrail は、 AWS アカウントで CodeDeploy によって、または CodeDeploy に代わって行われた API コールをキャプチャし、指定した Amazon S3 バケットにログファイルを配信するサービスです。CloudTrail は、CodeDeploy コンソール、 を介した CodeDeploy コマンド AWS CLI、または CodeDeploy APIs。CloudTrail によって収集された情報を使用して、CodeDeploy に対してどのようなリクエストが行われたかを判断することができます。リクエストの作成元のソース IP アドレス、リクエストの実行者、リクエストの実行日時などです。設定や有効化の方法など、CloudTrail の詳細については、「[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)」を参照してください。

## CloudTrail での CodeDeploy 情報
<a name="service-name-info-in-cloudtrail"></a>

 AWS アカウントで CloudTrail ログ記録が有効になっている場合、CodeDeploy アクションに対して行われた API コールはログファイルに記録されます。CodeDeploy レコードは、他の AWS サービスレコードと一緒にログファイルに書き込まれます。CloudTrail は、期間とファイルサイズに基づいて、新しいファイルをいつ作成して書き込むかを決定します。

CodeDeploy のアクションはすべてログに記録されます。このアクションについては、「[AWS CodeDeploy コマンドラインリファレンス](https://docs.aws.amazon.com/cli/latest/reference/deploy/index.html)」および「[AWS CodeDeploy API リファレンス](https://docs.aws.amazon.com/codedeploy/latest/APIReference/)」に記載されています。たとえば、デプロイを作成し、アプリケーションを削除し、アプリケーションリビジョンを登録する呼び出しは、CloudTrail ログファイルにエントリを生成します。

各ログエントリには、リクエストの生成者に関する情報が含まれます。ログのユーザー ID 情報は、リクエストがルート認証情報またはユーザー認証情報で行われたか、ロールまたはフェデレーティッドユーザーの一時的なセキュリティ認証情報で行われたか、または別の AWS サービスによって行われたかを判断するのに役立ちます。詳細については、[CloudTrail ログイベントリファレンス](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/event_reference_top_level.html)の **userIdentity** フィールドを参照してください。

必要な場合はログファイルを自身のバケットに保管できますが、ログファイルを自動的にアーカイブまたは削除するにように Amazon S3 ライフサイクルルールを定義することもできます。デフォルトで、Amazon S3 のサーバー側の暗号化 (SSE) を使用して、ログファイルが暗号化されます。

新しいログファイルが配信されるときに、CloudTrail が Amazon SNS の通知を発行するようにできます。詳細については、[CloudTrail 用の Amazon SNS 通知の設定](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)を参照してください。

複数の AWS リージョンと複数の AWS アカウントからの CodeDeploy ログファイルを 1 つの Amazon S3 バケットに集約することもできます。詳細については、「[複数のリージョンから CloudTrail ログファイルを受けるとき](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/aggregating_logs_top_level.html)」を参照してください。

## CodeDeploy ログファイルエントリの理解
<a name="understanding-service-name-entries"></a>

CloudTrail ログファイルには、複数の JSON 形式イベントで構成されるひとつ以上のログエントリを記録できます。ログエントリは任意の送信元からの単一のリクエストを表し、リクエストされたアクション、任意のパラメータ、アクションの日時などに関する情報を含みます。ログエントリは、特定の順序になるように生成されるわけではありません。つまり、パブリック API コールの順序付けられたスタックトレースではありません。

以下の例は、CodeDeploy がデプロイグループのアクションを作成することを示す CloudTrail ログエントリを示しています。

```
{
	"Records": [{
		"eventVersion": "1.02",
		"userIdentity": {
			"type": "AssumedRole",
			"principalId": "AKIAI44QH8DHBEXAMPLE:203.0.113.11",
			"arn": "arn:aws:sts::123456789012:assumed-role/example-role/203.0.113.11",
			"accountId": "123456789012",
			"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
			"sessionContext": {
				"attributes": {
					"mfaAuthenticated": "false",
					"creationDate": "2014-11-27T03:57:36Z"
				},
				"sessionIssuer": {
					"type": "Role",
					"principalId": "AKIAI44QH8DHBEXAMPLE",
					"arn": "arn:aws:iam::123456789012:role/example-role",
					"accountId": "123456789012",
					"userName": "example-role"
				}
			}
		},
		"eventTime": "2014-11-27T03:57:36Z",
		"eventSource": "codedeploy.amazonaws.com",
		"eventName": "CreateDeploymentGroup",
		"awsRegion": "us-west-2",
		"sourceIPAddress": "203.0.113.11",
		"userAgent": "example-user-agent-string",
		"requestParameters": {
			"applicationName": "ExampleApplication",
			"serviceRoleArn": "arn:aws:iam::123456789012:role/example-instance-group-role",
			"deploymentGroupName": "ExampleDeploymentGroup",
			"ec2TagFilters": [{
                "value": "CodeDeployDemo",
				"type": "KEY_AND_VALUE",
				"key": "Name"
            }],
            "deploymentConfigName": "CodeDeployDefault.HalfAtATime"
		},
		"responseElements": {
			"deploymentGroupId": "7d64e680-e6f4-4c07-b10a-9e117EXAMPLE"
		},
		"requestID": "86168559-75e9-11e4-8cf8-75d18EXAMPLE",
		"eventID": "832b82d5-d474-44e8-a51d-093ccEXAMPLE",
		"eventType": "AwsApiCall",
		"recipientAccountId": "123456789012"
	},
    ... additional entries ...
    ]
}
```

# Amazon SNS イベント通知を使用したデプロイのモニタリング
<a name="monitoring-sns-event-notifications"></a>

トリガーを CodeDeploy デプロイグループに追加すると、そのデプロイグループのデプロイまたはインスタンスに関連するイベントに関する通知を受信できます。これらの通知は、トリガーのアクションの一部にした Amazon SNS トピックをサブスクライブする受信者に送信されます。

SMS メッセージまたは電子メールメッセージで、CodeDeploy イベントの通知を受信できます。また、Amazon SQS キューへのメッセージの送信、または AWS Lambdaでの関数の呼び出しなど、指定されたイベントが他の方法で発生したときに作成される JSON データを使用することもできます。デプロイおよびインスタンストリガーに提供される JSON データの構造については、「[CodeDeploy トリガーの JSON データ形式](monitoring-sns-event-notifications-json-format.md)」を参照してください。

次の場合に、トリガーを使用して通知を受け取ることもできます。
+ トラブルシューティングできるように、デプロイが失敗または停止したときに知る必要がある開発者の場合。
+ Amazon EC2 フリートの状態を監視するために、いくつのインスタンスが失敗したかを知る必要があるシステム管理者の場合。
+ デスクトップの電子メールクライアントのフォルダに様々なタイプの通知をルーティングするフィルタリングルールを使用して、デプロイおよびインスタンスのイベントの数を一目で把握したいマネージャーの場合。

次のいずれかのイベントタイプに対して、CodeDeploy デプロイグループごとに最大 10 のトリガーを作成できます。


| デプロイイベント | インスタンスイベント | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/monitoring-sns-event-notifications.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/monitoring-sns-event-notifications.html)  | 
| Blue/Green デプロイにのみ適用されます。最新のアプリケーションのリビジョンが、置き換え先環境でインスタンスにインストールされており、元の環境からのトラフィックをロードバランサーの背後で再ルーティングすることができることを示します。詳細については、「[CodeDeploy でのデプロイグループの使用](deployments.md)」を参照してください。 | 

**Topics**
+ [サービスロールへの Amazon SNS アクセス許可の付与](monitoring-sns-event-notifications-permisssions.md)
+ [CodeDeploy イベントのトリガーを作成](monitoring-sns-event-notifications-create-trigger.md)
+ [デプロイグループのトリガーの編集](monitoring-sns-event-notifications-edit-trigger.md)
+ [デプロイグループからトリガーを削除](monitoring-sns-event-notifications-delete-trigger.md)
+ [トリガーの JSON データの形式](monitoring-sns-event-notifications-json-format.md)

# Amazon SNS アクセス許可を CodeDeploy サービスロールに付与する
<a name="monitoring-sns-event-notifications-permisssions"></a>

トリガーが通知を生成する前に、CodeDeploy オペレーションで使用するサービスロールには、Amazon SNS リソースへのアクセス許可を付与する必要があります。

**サービスロールへの Amazon SNS アクセス許可の付与**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. IAM コンソールのナビゲーションペインで [**ロール**] を選択します。

1.  AWS CodeDeploy オペレーションで使用するサービスロールの名前を選択します。

1. [**アクセス許可**] タブの [**インラインポリシー**] エリアで、[**ロールポリシーの作成**] を選択します。

   -または-

   [**Create Role Policy**] ボタンを使用できない場合は、[**Inline Policies**] エリアを拡張して、[**click here**] を選択します。

1. [**Set Permissions**] ページで、[**Custom Policy**] を選択し、次に [**Select**] を選択します。

1. [**ポリシーの確認**] ページで、[**ポリシー名**] フィールドにポリシーを識別する名前 (`SNSPublish` など) を入力します。

1. [**Policy Document**] フィールドに以下を貼り付けます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "sns:Publish",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. **[ポリシーを適用]** を選びます。

# CodeDeploy イベントのトリガーを作成
<a name="monitoring-sns-event-notifications-create-trigger"></a>

 AWS CodeDeploy デプロイまたはインスタンスイベントの Amazon SNS (Amazon Simple Notification Service) トピックを発行するトリガーを作成できます。次に、そのイベントが発生した場合、関連付けられたトピックのすべてのサブスクライバーは、SMS メッセージまたは E メールメッセージなどの、トピックで指定されたエンドポイントを経由して通知を受信します。Amazon SNS では、トピックをサブスクライブするための複数の方法が用意されています。

トリガーを作成する前に、トリガーの参照先となる Amazon SNS トピックを設定する必要があります。詳細については、「[トピックの作成](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)」を参照してください。トピックを作成する際には、`Topic-group-us-west-3-deploy-fail` または `Topic-group-project-2-instance-stop` などの形式で、目的をわかりやすくする名前を付けることをお勧めします。

トリガーのために通知を送信する前に、Amazon SNS サービスロールに CodeDeploy アクセス許可を付与する必要もあります。詳細については、「[Amazon SNS アクセス許可を CodeDeploy サービスロールに付与する](monitoring-sns-event-notifications-permisssions.md)」を参照してください。

トピックを作成した後、サブスクライバーを追加できます。トピックの作成、管理、およびサブスクライブについての詳細は、「[Amazon Simple Notification Service とは](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)」を参照してください。



## CodeDeploy イベントの通知を送信するトリガーの作成 (コンソール)
<a name="monitoring-sns-event-notifications-create-trigger-console"></a>

CodeDeploy コンソールを使用して、CodeDeploy イベント用のトリガーを作成できます。セットアッププロセスの最後に、アクセス許可およびトリガーの詳細の両方が正しくセットアップされていることを確認するためにテスト通知メッセージが送信されます。

**CodeDeploy イベントのトリガーを作成**

1. で AWS マネジメントコンソール、 AWS CodeDeploy コンソールを開きます。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) で CodeDeploy コンソールを開きます。
**注記**  
「[CodeDeploy の開始方法](getting-started-codedeploy.md)」で設定したのと同じユーザーでサインインします。

1. ナビゲーションペインで [**デプロイ**] を展開し、[**アプリケーション**] を選択します。

1. [**アプリケーション**] ページで、トリガーを追加するデプロイグループに関連付けられているアプリケーションの名前を選択します。

1. [**アプリケーションの詳細**] ページで、トリガーを追加するデプロイグループを選択します。

1.  **[編集]** を選択します。

1.  [**Advanced - optional (詳細 - オプション)**] を展開します。

1.  [**トリガー**] エリアで、[**Create trigger (トリガーの作成)**] を選択します。

1. [**Create deployment trigger (デプロイトリガーの作成)**] ペインで、次の操作を行います。

   1. [**トリガー名**] に、用途をわかりやすく示すトリガーの名前を入力します。`Trigger-group-us-west-3-deploy-fail` または `Trigger-group-eu-central-instance-stop` などの形式をお勧めします。

   1. [**イベント**] で、通知を送信するために Amazon SNS トピックをトリガーするイベントタイプまたはタイプを選択します。

   1. [**Amazon SNS トピック**] で、このトリガーの通知を送信するために作成したトピックの名前を選択します。

   1.  [**Create trigger (トリガーの作成)**] を選択します。CodeDeploy は、CodeDeploy および Amazon SNS トピックとの間のアクセスを正しく設定したことを確認するためのテスト通知を送信します。トピックに対して選択したエンドポイントタイプに応じて、トピックをサブスクライブしている場合は、SMS メッセージまたは E メールメッセージで確認を受信します。

1.  **[Save changes]** (変更の保存) をクリックします。

## CodeDeploy イベントの通知を送信するトリガーの作成 (CLI)
<a name="monitoring-sns-event-notifications-create-trigger-cli"></a>

CLI を使用して、デプロイグループを作成するときにトリガーを含めることも、既存のデプロイグループにトリガーを追加することもできます。

### 新しいデプロイグループの通知を送信するためのトリガーを作成するには
<a name="monitoring-sns-event-notifications-create-trigger-cli-new"></a>

JSON ファイルを作成してデプロイグループを設定し、[デプロイメントグループの作成](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) コマンドの使用 `--cli-input-json` オプションを実行します。

JSON ファイルを作成する最も簡単な方法は、`--generate-cli-skeleton` オプションを使用して JSON 形式のコピーを取得し、プレーンテキストエディターで必要な値を指定することです。

1. 次のコマンドを実行し、結果をプレーンテキストエディターにコピーします。

   ```
   aws deploy create-deployment-group --generate-cli-skeleton
   ```

1. 既存の CodeDeploy アプリケーションの名前を追加します。

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentGroupName": "",
       "deploymentConfigName": "",
       "ec2TagFilters": [
           {
               "Key": "",
               "Value": "",
               "Type": ""
           }
       ],
       "onPremisesInstanceTagFilters": [
           {
               "Key": "",
               "Value": "",
               "Type": ""
           }
       ],
       "autoScalingGroups": [
           ""
       ],
       "serviceRoleArn": "",
       "triggerConfigurations": [
           {
               "triggerName": "",
               "triggerTargetArn": "",
               "triggerEvents": [
                   ""
               ]
           }
       ]
   }
   ```

1. 設定するパラメータの値を指定します。

   [create-deployment-group](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentGroup.html) コマンドを使用する場合は、少なくとも次のパラメータ値を指定する必要があります。
   + `applicationName`: アカウントで既に作成されたアプリケーションの名前。
   + `deploymentGroupName`: 作成するデプロイグループの名前。
   + `serviceRoleArn`: アカウント内の CodeDeploy 用にセットアップする既存のサービスロールの ARN。詳細については、「[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)」を参照してください。

   `triggerConfigurations` セクションで、次のパラメーターの値を指定します。
   + `triggerName`: 簡単に識別できるように、トリガーに付与した名前。`Trigger-group-us-west-3-deploy-fail` または `Trigger-group-eu-central-instance-stop` などの形式をお勧めします。
   + `triggerTargetArn`: トリガーに関連付けるために作成した Amazon SNS トピックの ARN で以下の形式: `arn:aws:sns:us-east-2:444455556666:NewTestTopic`。
   + `triggerEvents`: 通知をトリガーするイベントタイプまたはイベント。1 つ以上のイベントタイプを指定し、複数のイベントタイプ名をカンマで区切ることができます (たとえば、`"triggerEvents":["DeploymentSuccess","DeploymentFailure","InstanceFailure"]`)。1 つ以上のイベントタイプを追加すると、これらのすべてのタイプの通知は、それぞれの異なるトピックではなく、指定したトピックに送信されます。次のイベントタイプから選択できます。
     + DeploymentStart
     + DeploymentSuccess
     + DeploymentFailure
     + DeploymentStop
     + DeploymentRollback
     + DeploymentReady (Blue/Green デプロイで置き換え先インスタンスにのみ適用します)
     + InstanceStart
     + InstanceSuccess
     + InstanceFailure
     + InstanceReady (Blue/Green デプロイで置き換え先インスタンスにのみ適用します)

   以下の設定例では、`dep-group-ghi-789-2` という名前のアプリケーション用の `TestApp-us-east-2` という名前のデプロイグループを作成し、デプロイの開始、成功、または失敗のたびに通知の送信を促すトリガーを作成します。

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "deploymentGroupName": "dep-group-ghi-789-2",
       "ec2TagFilters": [
           {
               "Key": "Name",
               "Value": "Project-ABC",
               "Type": "KEY_AND_VALUE"
           }
       ],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "triggerConfigurations": [
           {
               "triggerName": "Trigger-group-us-east-2",
               "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments",
               "triggerEvents": [
                   "DeploymentStart",
                   "DeploymentSuccess",
                   "DeploymentFailure"
               ]
           }
       ]
   }
   ```

1. 更新を JSON ファイルとして保存し、**create-deployment-group** コマンドを実行するときに `--cli-input-json` オプションを使用してそのファイルを呼び出します。
**重要**  
ファイル名の前に必ず `file://` を含めてください。このコマンドでは必須です。

   ```
   aws deploy create-deployment-group --cli-input-json file://filename.json
   ```

   作成プロセスの最後に、アクセス許可およびトリガーの詳細の両方が正しく設定されていることを示すテスト通知メッセージが届きます。

### 既存のデプロイグループの通知を送信するためのトリガーを作成するには
<a name="monitoring-sns-event-notifications-create-trigger-cli-existing"></a>

を使用して CodeDeploy イベントのトリガーを既存のデプロイグループ AWS CLI に追加するには、JSON ファイルを作成してデプロイグループを更新し、 `--cli-input-json`オプションを使用して [update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) コマンドを実行します。

JSON ファイルを作成する最も簡単な方法は、**get-deployment-group** コマンドを実行し、JSON 形式でデプロイグループの設定をコピーして、プレーンテキストエディターでパラメーター値を更新することです。

1.  次のコマンドを実行し、結果をプレーンテキストエディターにコピーします。

   ```
   aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group
   ```

1. 出力から次のものを削除します。
   + 出力の先頭の [`{ "deploymentGroupInfo":`] を削除します。
   + 出力の末尾の [`}`] を削除します。
   + [`deploymentGroupId`] を含む行を削除します。
   + [`deploymentGroupName`] を含む行を削除します。

   テキストファイルのコンテンツは、次のようになります。

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "autoScalingGroups": [],
       "ec2TagFilters": [
           {
               "Type": "KEY_AND_VALUE",
               "Value": "Project-ABC",
               "Key": "Name"
           }
       ],
       "triggerConfigurations": [],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "onPremisesInstanceTagFilters": []
   }
   ```

1. [`triggerConfigurations`] セクションで、[`triggerEvents`]、[`triggerTargetArn`]、および [`triggerName`] パラメーターのデータを追加します。トリガーの設定パラメータについての詳細は、「[TriggerConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_TriggerConfig.html)」を参照してください。

   テキストファイルのコンテンツは、次のようになります。このコードでは、デプロイの開始、成功、または失敗のたびに通知を送信するように求められます。

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "autoScalingGroups": [],
       "ec2TagFilters": [
           {
               "Type": "KEY_AND_VALUE",
               "Value": "Project-ABC",
               "Key": "Name"
           }
       ],
       "triggerConfigurations": [
           {
               "triggerEvents": [
                   "DeploymentStart",
                   "DeploymentSuccess",
                   "DeploymentFailure"
               ],
               "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments",
               "triggerName": "Trigger-group-us-east-2"
           }
       ],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "onPremisesInstanceTagFilters": []
   }
   ```

1. アップデートを JSON ファイルとして保存し、`--cli-input-json` オプションを使用して、[update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) コマンドを実行します。必ず `--current-deployment-group-name` オプションを含めて、*filename* を JSON ファイルの名前に置き換えてください。
**重要**  
ファイル名の前に必ず `file://` を含めてください。このコマンドでは必須です。

   ```
   aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json
   ```

   作成プロセスの最後に、アクセス許可およびトリガーの詳細の両方が正しく設定されていることを示すテスト通知メッセージが届きます。

# CodeDeploy デプロイグループのトリガーの編集
<a name="monitoring-sns-event-notifications-edit-trigger"></a>

通知の要件が変更された場合は、新しいトリガーを作成するのではなく、トリガーを変更することができます。

## CodeDeploy トリガーの変更 (CLI)
<a name="monitoring-sns-event-notifications-edit-trigger-cli"></a>

 を使用してデプロイグループを更新するときに CodeDeploy イベントのトリガーの詳細 AWS CLI を変更するには、JSON ファイルを作成してデプロイグループのプロパティの変更を定義し、 `--cli-input-json`オプションを指定して [update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/update-deployment-group.html) コマンドを実行します。

JSON ファイルを作成する最も簡単な方法は、**get-deployment-group** コマンドを実行して現在のデプロイグループの詳細を JSON 形式で取得し、プレーンテキストエディターで必要な値を編集することです。

1. 以下のコマンドを実行します (アプリケーションおよびデプロイグループの名前を *application* および *deployment-group* に置き換えます)。

   ```
   aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group
   ```

1. コマンド結果をプレーンテキストエディターにコピーし、次のものを削除します。
   + 出力の先頭の [`{ "deploymentGroupInfo":`] を削除します。
   + 出力の末尾の [`}`] を削除します。
   + [`deploymentGroupId`] を含む行を削除します。
   + [`deploymentGroupName`] を含む行を削除します。

   テキストファイルのコンテンツは、次のようになります。

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "autoScalingGroups": [],
       "ec2TagFilters": [
           {
               "Type": "KEY_AND_VALUE",
               "Value": "East-1-Instances",
               "Key": "Name"
           }
       ],
       "triggerConfigurations": [
           {
               "triggerEvents": [
                   "DeploymentStart",
                   "DeploymentSuccess",
                   "DeploymentFailure",
                   "DeploymentStop"
               ],
               "triggerTargetArn": "arn:aws:sns:us-east-2:111222333444:Trigger-group-us-east-2",
               "triggerName": "Trigger-group-us-east-2"
           }
       ],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "onPremisesInstanceTagFilters": []
   }
   ```

1. 必要に応じてパラメーターを変更します。トリガーの設定パラメータについての詳細は、「[TriggerConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_TriggerConfig.html)」を参照してください。

1. アップデートを JSON ファイルとして保存し、`--cli-input-json` オプションを使用して、[update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/update-deployment-group.html) コマンドを実行します。必ず `--current-deployment-group-name` オプションを含めて、*filename* を JSON ファイルの名前に置き換えてください。
**重要**  
ファイル名の前に必ず `file://` を含めてください。このコマンドでは必須です。

   ```
   aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json
   ```

作成プロセスの最後に、アクセス許可およびトリガーの詳細の両方が正しく設定されていることを示すテスト通知メッセージが届きます。

# CodeDeploy デプロイグループからトリガーを削除
<a name="monitoring-sns-event-notifications-delete-trigger"></a>

デプロイグループごとに 10 個のトリガーの制限があるため、使用されなくなったトリガーを削除することをお勧めします。トリガーの削除は元に戻すことはできませんが、1 つを再作成することはできます。

## デプロイグループ (コンソール) からトリガーを削除
<a name="monitoring-sns-event-notifications-delete-trigger-console"></a>

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) で CodeDeploy コンソールを開きます。
**注記**  
「[CodeDeploy の開始方法](getting-started-codedeploy.md)」で設定したのと同じユーザーでサインインします。

1. ナビゲーションペインで [**デプロイ**] を展開し、[**アプリケーション**] を選択します。

1. [**アプリケーション**] ページで、トリガーを削除するデプロイグループに関連付けられているアプリケーションの名前を選択します。

1. [**アプリケーションの詳細**] ページで、トリガーを削除するデプロイグループを選択します。

1.  **[編集]** を選択します。

1.  [**Advanced - optional (詳細 - オプション)**] を展開します。

1. [**トリガー**] 領域で、削除するトリガーを選択し、[**Delete trigger (トリガーを削除)**] を選択します。

1.  **[Save changes]** (変更の保存) をクリックします。

## デプロイグループ (CLI) からトリガーを削除
<a name="monitoring-sns-event-notifications-delete-trigger-cli"></a>

CLI を使用してトリガーを削除するには、空のトリガー設定パラメータを使用して、[update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/update-deployment-group.html) コマンドを呼び出し、次のように指定します。
+ デプロイグループに関連付けられたアプリケーションの名前。アプリケーション名のリストを表示するには、[[list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html)] コマンドを呼び出します。
+ アプリケーションに関連付けられたデプロイグループの名前。デプロイグループ名のリストを表示するには、[[list-deployment-groups](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-groups.html)] コマンドを呼び出します。

例: 

```
aws deploy update-deployment-group --application-name application-name --current-deployment-group-name deployment-group-name --trigger-configurations
```

# CodeDeploy トリガーの JSON データ形式
<a name="monitoring-sns-event-notifications-json-format"></a>

デプロイまたはインスタンスのトリガーが、Amazon SQS キューへのメッセージの送信、または AWS Lambdaでの関数の呼び出しなどのカスタム通知ワークフローでアクティブ化されたときに作成される JSON 出力を使用できます。

**注記**  
このガイドでは、JSON を使用して通知を設定する方法については説明していません。Amazon SNS を使用して Amazon SQS キューにメッセージを送信する方法の詳細については、[Amazon SNS を Amazon SQS キューへメッセージ送信](https://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.html) を参照してください。Amazon SNS を使用して Lambda 関数を呼び出す方法の詳細については、[Amazon SNS デベロッパーガイドの Lambda 関数の呼び出し](https://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html)を参照してください。

次の例は、CodeDeploy トリガーで使用可能な JSON 出力の構造を示しています。

**インスタンスベースのトリガー用 JSON 出力のサンプル**

```
{
    "region": "us-east-2",
    "accountId": "111222333444",
    "eventTriggerName": "trigger-group-us-east-instance-succeeded",
    "deploymentId": "d-75I7MBT7C",
    "instanceId": "arn:aws:ec2:us-east-2:444455556666:instance/i-496589f7",
    "lastUpdatedAt": "1446744207.564",
    "instanceStatus": "Succeeded",
    "lifecycleEvents": [
        {
            "LifecycleEvent": "ApplicationStop",
            "LifecycleEventStatus": "Succeeded",
            "StartTime": "1446744188.595",
            "EndTime": "1446744188.711"
        },
        {
            "LifecycleEvent": "BeforeInstall",
            "LifecycleEventStatus": "Succeeded",
            "StartTime": "1446744189.827",
            "EndTime": "1446744190.402"
        }
//More lifecycle events might be listed here
    ]
}
```

**デプロイベースのトリガー用 JSON 出力のサンプル**

```
{
    "region": "us-west-1",
    "accountId": "111222333444",
    "eventTriggerName": "Trigger-group-us-west-3-deploy-failed",
    "applicationName": "ProductionApp-us-west-3",
    "deploymentId": "d-75I7MBT7C",
    "deploymentGroupName": "dep-group-def-456",
    "createTime": "1446744188.595",
    "completeTime": "1446744190.402",
    "deploymentOverview": {
        "Failed": "10",
        "InProgress": "0",
        "Pending": "0",
        "Skipped": "0",
        "Succeeded": "0"
    },
    "status": "Failed",
    "errorInformation": {
        "ErrorCode": "IAM_ROLE_MISSING",
        "ErrorMessage": "IAM Role is missing for deployment group: dep-group-def-456"
    }
}
```