2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

ソリューションアーキテクトに求められる視点(13/14) EFSへのファイルアップロードを検知して、通知するソリューション

Last updated at Posted at 2024-07-15

はじめに

ソリューションアーキテクトに求められる視点を整理してみました。

今回は、EFSへのファイルアップロードを検知して、通知するソリューションです。実務や試験で、ご参考にして頂けましたら、幸いです。

EFSに保存されているファイルやEFSに入ってくるファイルがあれば、それをトリガーできますか?S3のように、EFSにEventbridgeを使用できますか?

Amazon EFS は現在、ファイルの作成または変更に関する EventBridge 通知をサポートしていません。 これは、EFS への書き込みが API 経由で行われないため、EventBridge をトリガーするものがないためです。

Amazon S3のように、Amazon EFS(Elastic File System)に対して直接EventBridgeを使用してイベントをトリガーすることは現時点ではサポートされていません。Amazon S3はオブジェクトストレージであり、オブジェクトの作成、削除、更新などのイベントをトリガーする機能が組み込まれていますが、EFSはファイルシステムであり、同様のイベントトリガー機能は提供されていません。

アーキテクトに求められる視点

EFSへのファイルアップロードを検知して、通知するソリューションを教えて下さい。

パターン その1

Lambda 関数  LambdaFunctionCheckEFSFileSystemStatusを使って、CloudWatch カスタムメトリクスとして表示させ、 CloudWatch アラームより SNS を使用した通知 を行う。

参考記事

パターン その2

ファイルアップロードのストレージをEFSではなく、Amazon S3 バケットに移行します。処理コードを更新して Amazon S3 を使用します。オブジェクトが作成されたときに Lambda 関数を呼び出すように S3 イベント通知を設定します。

パターン その3

EFSのファイルシステムに対する操作を監視し、イベントをトリガーするための代替手段を構築する。

Amazon EFSに対して直接EventBridgeを使用してイベントをトリガーすることはできませんが、CloudWatch LogsとLambdaを組み合わせることで、EFSファイルシステムの操作を監視し、イベントをトリガーするソリューションを構築することができます。この方法により、EFSファイルシステムの操作に対するリアルタイムの監視と通知が可能になります。

CloudWatch LogsとLambdaを使用した監視と通知

  1. EFSファイルシステムのログをCloudWatch Logsに送信
    EFSファイルシステムのログをCloudWatch Logsに送信する設定を行います。これにより、ファイルシステムに対する操作(例:ファイルの作成、削除、更新)をログとして収集できます。

  2. CloudWatch Logsでログフィルターを設定
    CloudWatch Logsで特定のログイベントをフィルタリングするログフィルターを設定します。これにより、特定の操作に対するログイベントをキャプチャできます。

  3. CloudWatch Logsでログフィルターに基づくアラームを設定
    CloudWatch Logsでログフィルターに基づくアラームを設定し、特定のログイベントが発生した際にアラームをトリガーします。

  4. CloudWatchアラームをEventBridgeルールでトリガー
    CloudWatchアラームをEventBridgeルールでトリガーし、特定のアクション(例:Lambda関数の実行、SNS通知の送信)を実行します。

手順の詳細

ステップ1: EFSファイルシステムのログをCloudWatch Logsに送信

  1. EFSファイルシステムの作成
    AWS Management Consoleにログインし、EFSサービスに移動します。
    「Create file system」をクリックし、必要な設定を行ってファイルシステムを作成します。

  2. EFSファイルシステムのログ設定
    EFSファイルシステムの「Monitoring」セクションで、CloudWatch Logsへのログ送信を有効にします。
    ロググループを作成し、ログストリームを設定します。

ステップ2: CloudWatch Logsでログフィルターを設定

  1. CloudWatch Logsに移動
    AWS Management Consoleにログインし、CloudWatchサービスに移動します。

  2. ロググループの選択
    EFSファイルシステムのログが送信されるロググループを選択します。

  3. ログフィルターの作成
    「Create metric filter」をクリックし、フィルターパターンを設定します。
    例:特定のファイル操作(例:ファイルの作成)をフィルタリングするパターンを設定します。

ステップ3: CloudWatch Logsでログフィルターに基づくアラームを設定

  1. メトリックフィルターの設定
    メトリックフィルターの名前とフィルターパターンを設定し、フィルターを作成します。

  2. アラームの作成
    メトリックフィルターに基づいてアラームを作成します。
    アラーム条件を設定し、特定のログイベントが発生した際にアラームをトリガーします。

ステップ4: CloudWatchアラームをEventBridgeルールでトリガー

  1. EventBridgeに移動:
    AWS Management Consoleにログインし、EventBridgeサービスに移動します。

  2. ルールの作成
    「Create rule」をクリックし、ルール名を入力します。
    イベントソースとして「CloudWatch Alarms」を選択し、先ほど作成したアラームを指定します。

  3. ターゲットの設定
    ターゲットとしてLambda関数やSNSトピックを選択し、必要なアクションを設定します。

ソリューションは、あくまで、一例です。他の解決方法もあるので、参考程度にしてください。

読んでいただき、ありがとうございました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?