Canary を作成する
重要
Synthetics Canary を使用して、所有権またはアクセス許可を持つエンドポイントと API のみを監視します。Canary の実行回数の設定によっては、これらのエンドポイントでのトラフィックが増える場合があります。
CloudWatch コンソールを使用して Canary を作成する場合、CloudWatch が提供するブループリントを使用して Canary を作成することも、独自のスクリプトを作成することもできます。詳細については、「Canary 設計図の使用」を参照してください。
Canary に独自のスクリプトを使用している場合は、AWS CloudFormation を使用して Canary を作成することもできます。詳細については、AWS CloudFormation ユーザーガイドの AWS::Synthetics::Canary を参照してください。
独自のスクリプトを作成する場合は、CloudWatch Synthetics によってライブラリに組み込み済みの複数の関数を使用できます。詳細については、「Synthetics のランタイムバージョン」を参照してください。
注記
Canary を作成すると、作成されるレイヤーの 1 つは、先頭に Synthetics
の追加された Synthetics レイヤーになります。このレイヤーは Synthetics サービスアカウントが所有し、ランタイムコードを含みます。
Canary を作成するには
CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/
) を開きます。 -
ナビゲーションペインで、[Application Signals]、[Synthetics Canary] の順に選択します。
[Create Canary (Canary を作成)] を選択します。
次のいずれかを選択します。
-
Canary を設計図スクリプトに基づいて作成するには、[Use a blueprint] を選択し、作成する Canary のタイプを選択します。設計図のタイプ別の詳細な動作については、「Canary 設計図の使用」を参照してください。
-
独自の 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 リージョンに存在する必要があります。
-
[名前] に、Canary の名前を入力します。この名前は多くのページで使用されるため、他の Canary と区別できるわかりやすい名前を付けてください。
[Application or endpoint URL] に、Canary でテストする URL を入力します。この URL には、プロトコル (https:// など) を含める必要があります。
VPC のエンドポイントを Canary でテストする場合は、この手順の後半で VPC に関する情報も入力する必要があります。
Canary 用に独自のスクリプトを使用している場合は、[Lambda handler] に Canary を開始するエントリポイントを入力します。
syn-nodejs-puppeteer-3.4
またはsyn-python-selenium-1.1
より前のランタイムを使用する場合、入力する文字列の末尾は.handler
である必要があります。syn-nodejs-puppeteer-3.4
またはsyn-python-selenium-1.1
以降のランタイムを使用する場合、この制限は適用されません。スクリプトで環境変数を使用している場合は、[Environment variables] (環境変数) を選択し、スクリプトで定義されている各環境変数の値を指定します。詳細については、「環境変数」を参照してください。
[スケジュール] で、この Canary を 1 回だけ実行するか、レート式を使用して連続して実行するか、cron 式を使用してスケジュールするかを選択します。
CloudWatch コンソールを使用して継続的に動作する Canary を作成する場合、1 分から 1 時間に 1 回までの任意の間でレートを選択できます。
Canary スケジューリング用の cron 式の記述の詳細については、「cron を使用して Canary 実行をスケジュールする」を参照してください。
(オプション) canary のタイムアウト値を設定するには、[追加設定] を選択してタイムアウト値を指定します。Lambda コールドスタートと canary インストルメンテーションの起動にかかる時間を許容するには、15 秒以上にします。
[Data retention (データ保持)] で、失敗した Canary の実行と成功した Canary の実行の両方に関する情報を保持する期間を指定します。指定できる範囲は 1~455 日です。
この設定は、CloudWatch Synthetics がコンソールに保存および表示するデータにのみ影響します。Amazon S3 バケットに保存されているデータ、canary によって公開されるログやメトリックスには影響しません。
[Data Storage] で、Canary の実行データを保存する先の S3 バケットを選択します。バケット名にピリオド (.) を含めることはできません。これを空白のままにすると、デフォルトの S3 バケットが使用または作成されます。
syn-nodejs-puppeteer-3.0
以降のランタイムを使用している場合、テキストボックスにバケットの URL を入力するときに、現在のリージョンまたは別のリージョンにバケットを指定できます。以前のランタイムバージョンを使用している場合、バケットは現在のリージョンに存在する必要があります。(オプション) Canary のデフォルトでは、そのアーティファクトが Amazon S3 に保存され、そのアーティファクトに対しては AWS 管理のAWS KMS キーにより保存時の暗号化が行われます。[Data Storage] (データストレージ) セクションの [Additional configuration] (その他の設定) をクリックすることで、別の暗号化オプションを使用することも可能です。その後、暗号化に使用するキーのタイプを選択します。詳細については、「Canary アーティファクトの暗号化」を参照してください。
[Access permissions] で、Canary を実行するための IAM ロールを作成するか、既存のロールを使用するかを選択します。
CloudWatch Synthetics がロールを作成している場合、必要な許可がすべて自動的に含まれます。自らロールを作成する場合は、必要な許可に関する情報について、「Canary に必要なロールとアクセス許可」を参照してください。
Canary の作成時に CloudWatch コンソールを使用して Canary 用のロールを作成する場合、他の Canary 用のロールは再利用できません。これらのロールは Canary 別に固有です。複数の Canary 用のロールを手動で作成済みである場合は、その既存のロールを使用できます。
既存のロールを使用するには、そのロールを Synthetics および Lambda に渡すための
iam:PassRole
アクセス許可が必要です。また、iam:GetRole
アクセス許可も必要です。(オプション) [Alarms] で、この Canary 用にデフォルトの CloudWatch アラームを作成するかどうかを選択します。アラームの作成を選択すると、
Synthetics-Alarm-
の名前規則で作成されます。canaryName
-index
index
は、この Canary 用に作成された異なる各アラームを表す数値です。最初のアラームのインデックスは 1、2 番目のアラームのインデックスは 2 です。(オプション) この Canary で VPC のエンドポイントをテストするには、[VPC settings] を選択し、次の操作を行います。
エンドポイントをホストする VPC を選択します。
VPC 上の 1 つ以上のサブネットを選択します。実行中に IP アドレスを Lambda インスタンスに割り当てることができない場合は、Lambda インスタンスをパブリックサブネットで実行するように設定できないため、プライベートサブネットを選択する必要があります。詳細については、「VPC 内のリソースにアクセスできるように Lambda 関数を設定する」を参照してください。
VPC 上で 1 つ以上のセキュリティグループを選択します。
エンドポイントが VPC 上にある場合は、Canary から CloudWatch と Amazon S3 に情報を送信できるようにする必要があります。詳細については、「VPC で Canary を実行する」を参照してください。
(オプション) [Tags] で、この Canary のタグとする 1 つ以上のキーと値のペアを追加します。タグを使用すると、AWS リソースを識別して整理したり、AWS コストを追跡したりしやすくなります。詳細については、「Amazon CloudWatch リソースにタグを付ける」を参照してください。
Canary に適用するタグを Canary が使用する Lambda 関数にも適用する場合は、[タグレプリケーション] で [Lambda 関数] を選択します。このオプションを選択すると、CloudWatch Synthetics は Canary と Lambda 関数のタグの同期を維持します。
Synthetics は、ここで指定したのと同じタグを Canary と Lambda 関数の両方に適用します。
このオプションを選択したまま、後で Canary のタグを更新すると、Synthetics は Lambda 関数のタグを変更して Canary との同期を維持します。
(オプション) [Active tracing (アクティブトレース)] で、この Canary にアクティブな X-Ray トレースを有効にするかどうかを選択します。このオプションは、Canary がランタイムバージョン syn-nodejs-2.0 以降を使用している場合にのみ使用できます。詳細については、「Canary と X-Ray のトレース」を参照してください。
Canary 向けに作成されたリソース
Canary を作成すると、次のリソースが作成されます。
-
CloudWatchSyntheticsRole-
という名前の IAM ロール (CloudWatch コンソールを使用して Canary を作成し、この Canary 用に新しいロールを作成することを指定した場合)canary-name
-uuid
-
CloudWatchSyntheticsPolicy-
という名前の IAM ポリシーcanary-name
-uuid
-
cw-syn-results-
という名前の S3 バケットaccountID
-region
-
Synthetics-Alarm-
という名前のアラーム (Canary 用にアラームを作成した場合)MyCanaryName
-
Lambda 関数とレイヤー (設計図を使用して Canary を作成した場合)。これらのリソースには、プレフィックスとして
cwsyn-
が付きます。MyCanaryName
-
/aws/lambda/cwsyn-
という名前の CloudWatch Logs ロググループ。MyCanaryName
-randomId