チュートリアル: を使用して Auto Scaling グループの状態をログに記録する EventBridge - Amazon EventBridge

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

チュートリアル: を使用して Auto Scaling グループの状態をログに記録する EventBridge

Auto Scaling グループがイベントが成功したかどうかを示す Amazon EC2インスタンスを起動または終了するたびにイベントをログに記録する AWS Lambda関数を実行できます。

Amazon EC2 Auto Scaling イベントを使用するその他のシナリオについては、「Amazon Auto Scaling ユーザーガイド」の「Auto Scaling イベントの処理 EventBridge に使用する」を参照してください。 EC2 Auto Scaling

このチュートリアルでは、Lambda 関数を作成し、Amazon EC2 Auto Scaling グループがインスタンスを起動または終了するときにその関数を呼び出すルールを EventBridge コンソールで作成します。

前提条件

このチュートリアルを完了するには、以下のリソースが必要です。

ステップ 1: Lambda 関数を作成する

Lambda 関数を作成して、Auto Scaling グループのスケールアウトおよびスケールインイベントのログを記録します。

Lambda 関数を作成するには
  1. で AWS Lambda コンソールを開きますhttps://console.aws.amazon.com/lambda/

  2. 関数の作成 を選択します。

  3. Author from scratch(製作者を最初から) を選択します。

  4. Lambda 関数の名前を入力します。例えば、関数名を LogAutoScalingEvent とします。

  5. 残りのオプションはデフォルトのまま、[Create function] (関数の作成) を選択します。

  6. 関数ページの [Code] (コード) タブで、index.js をダブルクリックします。

  7. 既存のコードを以下のコードに置き換えます。

    'use strict'; exports.handler = (event, context, callback) => { console.log('LogAutoScalingEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
  8. [Deploy‬] (デプロイ) をクリックします。

ステップ 2: ルールを作成する

ステップ 1 で作成した Lambda 関数を実行するルールを作成します。ルールは、Auto Scaling グループがインスタンスを起動または停止したときに実行されます。

ルールを作成するには:
  1. で Amazon EventBridge コンソールを開きますhttps://console.aws.amazon.com/events/

  2. ナビゲーションペインで ルール] を選択します。

  3. ルールの作成 を選択します。

  4. ルールの名前と説明を入力します。例えば、ルール TestRule に名前を付けます

  5. [Event bus] (イベントバス) では、このルールに関連付けるイベントバスを選択します。このルールをアカウントからのイベントと一致させるには、[default] (デフォルト) を選択します。アカウントの AWS サービスがイベントを発行すると、常にアカウントのデフォルトのイベントバスに移動します。

  6. [Rule type] (ルールタイプ) では、[Rule with an event pattern] (イベントパターンを持つルール) を選択します。

  7. [Next] (次へ) を選択します。

  8. [Event source] (イベントソース) では、AWS [services] (サービス) を選択します。

  9. [Event pattern] (イベントパターン) の場合は、次のいずれかを実行します。

    1. [Event source] (イベントソース) では、ドロップダウンリストから Auto Scaling (オートスケーリング) を選択します。

    2. [Event type] (イベントタイプ) では、ドロップダウンリストから[Instance Launch and Terminate] (インスタンスの起動と削除) を選択します。

    3. [Any instance event] (任意のインスタンスイベント) と [Any group name] (任意のグループ名) を選択します。

  10. [Next] (次へ) を選択します。

  11. [Target types] (ターゲットタイプ) では、AWS [services] (サービス) を選択します。

  12. ターゲットの選択では、ドロップダウンリストから [Lambda function] (Lambda 関数) を選択します。

  13. [Function] (関数) で、[Step 1: Create a Lambda function] (ステップ 1:Lambda 関数を作成する) セクションで作成した Lambda 関数を選択します。この例では、LogAutoScalingEvent を選択します。

  14. [次へ] をクリックします。

  15. [次へ] をクリックします。

  16. ルールの詳細を確認し、[Create rule] (ルールの作成) を選択します。

ステップ 3: ルールをテストする

ルールをテストするには、インスタンスを起動するように Auto Scaling グループを手動でスケーリングします。スケールアウトイベントが発生するまで数分まってから、Lambda 関数が呼び出されたことを確認します。

Auto Scaling グループを使用してルールをテストするには
  1. Auto Scaling グループのサイズを増やすには、以下の操作を実行します。

    1. で Amazon EC2コンソールを開きますhttps://console.aws.amazon.com/ec2/

    2. ナビゲーションペインで、[Auto Scaling]、[Auto Scaling グループ] の順に選択します。

    3. Auto Scaling グループのチェックボックスを選択します。

    4. [Details (詳細)] タブで、[Edit (編集)] を選択します。[Desired] で、希望する容量を 1 つ増やします。たとえば、現在の値が 2 の場合は 3 と入力します。希望するキャパシティーは、グループの最大サイズと同じかそれ以下である必要があります。[Desired] の新しい値が、[Max] よりも大きい場合、[Max] を更新する必要があります。完了したら、[保存] を選択します。

  2. Lambda 関数からの出力を表示するには、以下の操作を実行します。

    1. で CloudWatch コンソールを開きますhttps://console.aws.amazon.com/cloudwatch/

    2. ナビゲーションペインで [ログ] を選択します。

    3. Lambda 関数 (/aws/lambda/function-name) のロググループの名前を選択します。

    4. 起動したインスタンスの関数によって提供されるデータを表示するログのストリーム名を選択します。

  3. (オプション) 終了すると、Auto Scaling グループが以前のサイズに戻るように、必要な容量を減らすことができます。

ステップ 4: 成功を確認する

CloudWatch ログに Lambda イベントが表示された場合、このチュートリアルは正常に完了しています。イベントが CloudWatch ログにない場合は、ルールが正常に作成されたことを確認することでトラブルシューティングを開始し、ルールが正しい場合は Lambda 関数のコードが正しいことを確認します。

ステップ 5: リソースをクリーンアップする

このチュートリアル用に作成したリソースは、保持しない場合は削除できます。使用しなくなった AWS リソースを削除することで、 AWS アカウントへの不要な課金を防ぐことができます。

EventBridge ルールを削除するには (複数可)
  1. EventBridge コンソールのルールページを開きます。

  2. 作成したルールを選択します。

  3. [Delete] (削除) を選択します。

  4. [Delete] (削除) を選択します。

Lambda 関数を削除するには
  1. Lambda コンソールの [関数ページ] を開きます。

  2. 作成した関数を選択します。

  3. [Actions] (アクション) で、[Delete] (削除) を選択します。

  4. [削除] を選択します。