サーバーレスモニタリングの概要


サーバーレスモニタリングとは、Amazon Web Service(AWS)上で実際に動いているアプリケーションをモニタリングする仕組み、またはツールの総称です。サーバーレスシステムが登場して以来、サーバーレスクラウドのモニタリングは今や必要不可欠なものとなりました。

サーバーレスモニタリングの必要性


サーバーレスモニタリングが必要な理由は、サーバーレスシステムを構築する際に変更されたサービス(例えばAmazon LambdaやAmazon DynamoDBなど)を監視する必要があるからです。AWSが提供するクラウドサービスなどを使用せずに、自分でサーバーを構築する以前は、サーバーを監視するための様々なツールを導入する必要がありました。しかし、サーバーレスシステムを構築する場合、サーバーを用意する必要がないため、その様なツールを導入する必要がありません。その代わり、サーバーレスモニタリングを行う必要が出てきます。

サーバーレスモニタリングの実装方法


サーバーレスモニタリングを行う大まかな3つの方法があります。

  • AWS CloudWatchを使用する
  • 追加のモニタリングソフトウェアをインストールする
  • 独自開発のモニタリングソフトウェアを実装する


サンプルとしてのAWS CloudWatchを使用したサーバーレスモニタリング


AWS CloudWatchを使ってサーバーレスモニタリングの導入を例に挙げると、以下のようなコードを書きます。

import boto3    
# Moniotring クライアントオブジェクトの作成
cw = boto3.client('cloudwatch')
# CloudWatchにメトリクスを登録
response = cw.put_metric_data(
MetricData=[
{
'MetricName': 'api-latency',
'Dimensions': [
{
'Name': 'BackendServer',
'Value': 'Server1'
},
],
'Unit': 'Milliseconds',
'Value': 1000.45
},
],
Namespace='BackendServer'
)


このコードでは、「BackendServer」という名前空間に「api-latency」メトリクスが登録され、サーバー1から返される応答時間がミリ秒単位で表示されます。

投稿者: systemreach_engineer