

# Canary を作成する
<a name="CloudWatch_Synthetics_Canaries_Create"></a>

**重要**  
Synthetics Canary を使用して、所有権またはアクセス許可を持つエンドポイントと API のみを監視します。Canary の実行回数の設定によっては、これらのエンドポイントでのトラフィックが増える場合があります。

CloudWatch コンソールを使用して Canary を作成する場合、CloudWatch が提供するブループリントを使用して Canary を作成することも、独自のスクリプトを作成することもできます。詳細については、「[Canary 設計図の使用](CloudWatch_Synthetics_Canaries_Blueprints.md)」を参照してください。

Canary に独自のスクリプトを使用している場合は、CloudFormation を使用して Canary を作成することもできます。詳細については、*AWS CloudFormation ユーザーガイド*の [AWS::Synthetics::Canary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html) を参照してください。

独自のスクリプトを作成する場合は、CloudWatch Synthetics によってライブラリに組み込み済みの複数の関数を使用できます。詳細については、「[Synthetics のランタイムバージョン](CloudWatch_Synthetics_Canaries_Library.md)」を参照してください。

**注記**  
Canary を作成すると、作成されるレイヤーの 1 つは、先頭に ` Synthetics` の追加された Synthetics レイヤーになります。このレイヤーは Synthetics サービスアカウントが所有し、ランタイムコードを含みます。

**Canary を作成するには**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. ナビゲーションペインで、**[Application Signals]**、**[Synthetics Canary]** の順に選択します。

   

1. **[Canary を作成]** を選択します。

1. 次のいずれかを選択します。
   + Canary を設計図スクリプトに基づいて作成するには、[**Use a blueprint**] を選択し、作成する Canary のタイプを選択します。設計図のタイプ別の詳細な動作については、「[Canary 設計図の使用](CloudWatch_Synthetics_Canaries_Blueprints.md)」を参照してください。
   + 独自の Node.js スクリプトをアップロードしてカスタムの Canary を作成するには、[**Upload a script**] を選択します。

     次に、スクリプトを [**Script**] 領域にドラッグするか、[**Browse files**] を選択してファイルシステム内のスクリプトに移動できます。
   + S3 バケットからスクリプトをインポートするには、[**Import from S3**] を選択します。[**Source location**] で、Canary への完全なパスを入力するか、[**Browse S3**] を選択します。

     使用する S3 バケットの `s3:GetObject` および `s3:GetObjectVersion` アクセス許可が必要です。バケットは、Canary を作成するのと同じ AWS リージョンに存在する必要があります。

1. [**名前**] に、Canary の名前を入力します。この名前は多くのページで使用されるため、他の Canary と区別できるわかりやすい名前を付けてください。

1. [**Application or endpoint URL**] に、Canary でテストする URL を入力します。この URL には、プロトコル (https:// など) を含める必要があります。

   VPC のエンドポイントを Canary でテストする場合は、この手順の後半で VPC に関する情報も入力する必要があります。

1. Canary 用に独自のスクリプトを使用している場合は、**[Lambda handler]** に Canary を開始するエントリポイントを入力します。Lambda ハンドラー形式の詳細については、「[Synthetics のランタイムバージョン](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html)」を参照してください。

1. **[スクリプトエディタ]** の **[ランタイムバージョン]** で、Canary を実行する Synthetics ランタイムバージョンを選択します。Synthetics のランタイムバージョンの詳細については、「[Synthetics のランタイムバージョン](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html)」を参照してください。

   **[ブラウザの設定]** で、ブラウザを有効にして Canary をテストできます。少なくとも 1 つのブラウザを選択する必要があります。

1. スクリプトで環境変数を使用している場合は、**[環境変数]** を選択し、スクリプトで定義されている各環境変数の値を指定します。詳細については、「[環境変数](CloudWatch_Synthetics_Canaries_WritingCanary_Nodejs_Pup.md#CloudWatch_Synthetics_Environment_Variables)」を参照してください。

1. [**スケジュール**] で、この Canary を 1 回だけ実行するか、レート式を使用して連続して実行するか、cron 式を使用してスケジュールするかを選択します。
   + CloudWatch コンソールを使用して継続的に動作する Canary を作成する場合、1 分から 1 時間に 1 回までの任意の間でレートを選択できます。
   + Canary スケジューリング用の cron 式の記述の詳細については、「[cron を使用して Canary 実行をスケジュールする](CloudWatch_Synthetics_Canaries_cron.md)」を参照してください。

1. (オプション) canary のタイムアウト値を設定するには、[**追加設定**] を選択してタイムアウト値を指定します。Lambda コールドスタートと canary インストルメンテーションの起動にかかる時間を許容するには、15 秒以上にします。

1. **[データ保持]** で、失敗した Canary の実行と成功した Canary の実行の両方に関する情報を保持する期間を指定します。指定できる範囲は 1～455 日です。

   この設定は、[GetCanaryRuns](https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_GetCanaryRuns.html) オペレーションによって返される情報の範囲と、Synthetics コンソールに表示される情報の範囲に影響します。

   Amazon S3 バケットに保存されているデータ、canary によって公開されるログやメトリックスには影響しません。

   Canary のデータ保持期間にかかわらず、コンソールに表示される情報の範囲には特定の制限があります。Synthetics コンソールのホームビューでは、相対時間範囲と絶対時間範囲が 7 日間に制限されています。特定の Canary の Synthetics コンソールビューでは、相対時間範囲は 7 日間に制限され、絶対時間範囲は 30 日間に制限されます。

1. **[データストレージ]** で、Canary の実行データを保存する先の Amazon S3 バケットを選択します。バケット名にピリオド (.) を含めることはできません。これを空白のままにすると、デフォルトの Amazon S3 バケットが使用または作成されます。

1. (オプション) Canary のデフォルトでは、そのアーティファクトが Amazon S3 に保存され、そのアーティファクトに対しては AWS 管理のAWS KMS キーにより保存時の暗号化が行われます。**[Data Storage]** (データストレージ) セクションの　**[Additional configuration]** (その他の設定) をクリックすることで、別の暗号化オプションを使用することも可能です。その後、暗号化に使用するキーのタイプを選択します。詳細については、「[Canary アーティファクトの暗号化](CloudWatch_Synthetics_artifact_encryption.md)」を参照してください。

1. **[アクセス許可]** で、Canary を実行するための IAM ロールを作成するか、既存のロールを使用するかを選択します。

   CloudWatch Synthetics がロールを作成している場合、必要な許可がすべて自動的に含まれます。自らロールを作成する場合は、必要な許可に関する情報について、「[Canary に必要なロールとアクセス許可](CloudWatch_Synthetics_Canaries_CanaryPermissions.md)」を参照してください。

   Canary の作成時に CloudWatch コンソールを使用して Canary 用のロールを作成する場合、他の Canary 用のロールは再利用できません。これらのロールは 1 つの Canary に固有です。複数の Canary 用のロールを手動で作成済みである場合は、その既存のロールを使用できます。

   既存のロールを使用するには、そのロールを Synthetics および Lambda に渡すための `iam:PassRole` アクセス許可が必要です。また、`iam:GetRole` アクセス許可も必要です。

1. (オプション) [**Alarms**] で、この Canary 用にデフォルトの CloudWatch アラームを作成するかどうかを選択します。アラームの作成を選択すると、`Synthetics-Alarm-{{canaryName}} -{{index}} ` の名前規則で作成されます。

   `index` は、この Canary 用に作成された異なる各アラームを表す数値です。最初のアラームのインデックスは 1、2 番目のアラームのインデックスは 2 です。

1. (オプション) この Canary で VPC のエンドポイントをテストするには、[**VPC settings**] を選択し、次の操作を行います。

   1. エンドポイントをホストする VPC を選択します。

   1. VPC 上の 1 つ以上のサブネットを選択します。実行中に IP アドレスを Lambda インスタンスに割り当てることができない場合は、Lambda インスタンスをパブリックサブネットで実行するように設定できないため、プライベートサブネットを選択する必要があります。詳細については、「[VPC 内のリソースにアクセスできるように Lambda 関数を設定する](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html)」を参照してください。

   1. VPC 上で 1 つ以上のセキュリティグループを選択します。

   1. この Canary が IPv6 アドレス宛にトラフィックを送信できるようにするには、**[デュアルスタックサブネットの IPv6 トラフィックを許可]** を選択します。これにより、Canary は IPv6 のみ、およびデュアルスタックが有効なエンドポイントを IPv6 経由でモニタリングできます。

      Canary にインターネットアクセスを許可し、VPC サブネットを適切に設定することで、VPC 外部のエンドポイントをモニタリングできるようになります。詳細については、「[VPC で Canary を実行する](CloudWatch_Synthetics_Canaries_VPC.md)」を参照してください。

   エンドポイントが VPC 上にある場合は、Canary から CloudWatch と Amazon S3 に情報を送信できるようにする必要があります。詳細については、「[VPC で Canary を実行する](CloudWatch_Synthetics_Canaries_VPC.md)」を参照してください。

1. (オプション) [**Tags**] で、この Canary のタグとする 1 つ以上のキーと値のペアを追加します。タグを使用すると、AWS リソースを識別して整理したり、AWS コストを追跡したりしやすくなります。詳細については、「[Amazon CloudWatch リソースにタグを付ける](CloudWatch-Tagging.md)」を参照してください。

   Canary に適用するタグを Canary が使用する Lambda 関数にも適用する場合は、**[タグレプリケーション]** で **[Lambda 関数]** を選択します。このオプションを選択すると、CloudWatch Synthetics は Canary と Lambda 関数のタグの同期を維持します。
   + Synthetics は、ここで指定したのと同じタグを Canary と Lambda 関数の両方に適用します。
   + このオプションを選択したまま、後で Canary のタグを更新すると、Synthetics は Lambda 関数のタグを変更して Canary との同期を維持します。

1. (オプション) **[アクティブトレース]** で、この Canary にアクティブな X-Ray トレースを有効にするかどうかを選択します。[アクティブトレース] は Puppeteer および Java ランタイムでのみ使用できます。詳細については、「[Canary と X-Ray のトレース](CloudWatch_Synthetics_Canaries_tracing.md)」を参照してください。

## Canary 向けに作成されたリソース
<a name="CloudWatch_Synthetics_Canaries_Resources_Created"></a>

Canary を作成すると、次のリソースが作成されます。
+ `CloudWatchSyntheticsRole-{{canary-name}} -{{uuid}}` という名前の IAM ロール (CloudWatch コンソールを使用して Canary を作成し、この Canary 用に新しいロールを作成することを指定した場合)
+ `CloudWatchSyntheticsPolicy-{{ canary-name}}-{{uuid}}` という名前の IAM ポリシー
+ `cw-syn-results-{{accountID}} -{{region}}` という名前の S3 バケット
+ `Synthetics-Alarm-{{MyCanaryName}}` という名前のアラーム (Canary 用にアラームを作成した場合)
+ Lambda 関数とレイヤー (設計図を使用して Canary を作成した場合)。これらのリソースには、プレフィックスとして `cwsyn-{{MyCanaryName}}` が付きます。
+ `/aws/lambda/cwsyn-{{MyCanaryName}} -{{randomId}}` という名前の CloudWatch Logs ロググループ。