Amazon Web Services ブログ
Amazon CloudWatch アラームによる Amazon Connect API の利用状況監視
多くの組織が Amazon Connect を利用してコンタクトセンターを運営し、Connect API によりカスタムアプリケーションを統合しています。これらの API は、エージェントの状態管理、リアルタイムメトリクスの取得、コンタクトセンターのプロセス自動化、特定のビジネス要件を満たすための全体的な顧客体験のカスタマイズなど、コンタクトセンター運用のさまざまな側面を合理化およびカスタマイズするために使用されます。しかし、通話量が多い際には、これらの API 統合によって大量のリクエストが発生する可能性があります。API の使用量がプロビジョニングされた容量を超えると、顧客のリクエストがスロットリングされ、コンタクトセンターのパフォーマンスに影響を与えます。
このブログ記事では、お客様が Amazon CloudWatch を活用して Amazon Connect コンタクトセンター API の使用状況をアクティブに監視し、API の使用量が定義された容量制限に近づいたときにアラートを受け取る方法について説明します。これにより、アプリケーションの最適化や容量の追加など、パフォーマンスの問題が発生する前に対処できます。この処理は、AWS Cloud Development Kit (CDK) を用いて、効率的にプログラムによる CloudWatch アラームの作成および管理が可能です。Amazon Connect API の使用状況の包括的な監視とアラート設定を行うことで、企業はコンタクトセンターの運用を常に円滑かつ効率的に行え、ボトルネックの発生を未然に防ぎ、最適なパフォーマンスを維持できます。
ソリューションの概要
このソリューションでは、Amazon Connect API の 1 つ DescribeQueue を監視するための Amazon CloudWatch アラームの作成方法を説明します。アラームを作成する 3 つの異なる方法を紹介しますので、ご利用のユースケースに合わせていずれか 1 つを使用して下さい。
A. Amazon CloudWatch からアラームを作成
B. Service Quotas からアラームを作成
C. AWS Cloud Development Kit (CDK) を使用してアラームを作成
前提条件
このソリューションでは、次のリソースを理解し、アクセスできることを前提としています。
- AWS アカウント
- Amazon Connect インスタンス
- AWS CDK のインストール
- Amazon SNS トピック
ソリューションのデプロイ
Amazon Connect API を監視するアラームを作成するために、まず CloudWatch Metric Math を作成して、DescribeQueue API の現在の使用状況を SERVICE QUOTA のパーセンテージとして表示します。アラームを作成したい他の API を選択することもできます。API またはそのメトリクスが表示されない場合は、その API が呼び出されていないことを意味します。DescribeQueue API のメトリクスを生成するには、Amazon Connect インスタンスにログインし、ルーティングの下のキューを選択し、BasicQueue または他のキューをクリックします。
A) Amazon CloudWatch コンソールからアラームを作成する手順
- CloudWatch コンソール (https://console.thinkwithwp.com/cloudwatch/) を開きます
- 左側のナビゲーションペインからメトリクスを選択します
- すべてのメトリクスをクリックし、使用を選んでから AWS リソースを選びます。サービスクォータ使用状況メトリクス の一覧が表示されます
- 検索ボックスに API 名である DescribeQueue を入力し、チェックボックスをクリックします。または、サービス名である Connect を入力し、結果リストから API を選択することもできます。グラフには、その API の現在の使用状況が表示されます
- 現在の使用状況をクォータの割合で確認するには、以下の手順を実行します
- サービスクォータに近づいた場合に通知するアラームを設定するには、以下の手順を実行します
m1/SERVICE_QUOTA(m1)*100
の行で、アクションの下にあるベルのようなアラームアイコンを選択します。アラーム作成ページが表示されます- 期間を 1 分または 5 分に設定します
- 条件の下で、しきい値の種類が静的になっており、式 1 が次の時…が以上に設定されていることを確認します。… よりもの下に 80 と入力します。これにより、使用量がクォータの 80% 以上になった場合に ALARM 状態になるアラームが作成されます
- その他の設定の下で、アラームを実行するデータポイントを 3/3 または要件に応じた値に指定し、欠落データの処理で欠落データを見つかりませんとして処理を選択して、次へを選択します
- 次のページで、通知の下にあるアラーム状態トリガーでアラーム状態が選択されていることを確認し、既存の SNS トピックを選択を選んで SNS トピックを選択するか、新しいトピックの作成を選んで一意のトピック名を入力し、通知を受け取る電子メールのエンドポイントを指定します。また、トピック ARN を使って他のアカウントに通知を選んで次へをクリックすることもできます。選択したトピックは、アラームが ALARM 状態になったときに通知されます
- 次のページで、アラーム名に DescribeQueueAlarm と入力し、次へ を選択します
- アラームの作成を選択します
B) Service Quotas から アラームを作成する手順
別の方法として、Service Quotas からアラームを作成することもできます。
- Service Quotas コンソール (https://console.thinkwithwp.com/servicequotas/) にアクセスします
- 左側のナビゲーションペインで、AWS のサービスを選択します
- サービスのリストから Amazon Connect を検索し、選択します
- サービスクオータの下から DescribeQueue を検索します。クォータ名 Rate of DescribeQueue API requests が表示されます。詳細と下にあるさまざまなタブを確認するため、クォータ名をクリックします
- アラームタブを選択し、作成をクリックします
- アラームのしきい値を適用されたクォータ値の 80% に設定します
- アラーム名を DescribeQueueAlarm と入力し、作成をクリックします
- アラームを編集するには、アラーム名 DescribeQueueAlarm をクリックしてアラームページを表示し、アクションからの編集を選択します。ここで期間やアラームのデータポイントを更新し、既存の Amazon SNS トピックを選択したり、新しいトピックを作成できます
C) AWS CDK を使用してアラームを作成する方法
Amazon Connect API を監視するための CloudWatch Alarm を自動的に作成したい場合は、AWS Cloud Development Kit (CDK) を使用することができます。Python AWS CDK を使用して、Amazon CloudWatch の Alarm を設定します。
-
- アプリを作成します
$ mkdir DescribeQueueAlarm
$ cd DescribeQueueAlarm
- アプリを初期化します
cdk init app --language python
- アプリの Python 仮想環境を有効化し、AWS CDK のコアの依存関係をインストールします
source .venv/bin/activate
python -m pip install -r requirements.txt
- 次の例を describe_queue_alarm/describe_queue_alarm_stack.py に貼り付けて、Amazon CloudWatch アラームを追加します。コード内のサンプル SNS トピックは、前提条件として作成した SNS トピックに置き換えてください
from aws_cdk import ( Stack, ) from constructs import Construct from aws_cdk import aws_cloudwatch as cloudwatch class DescribeQueueAlarmStack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) cfn_alarm = cloudwatch.CfnAlarm(self, "DescribeQueueAlarm", alarm_name="DescribeQueueAlarm", alarm_description="Alarm to monitor Describe Queue API Usage", comparison_operator="GreaterThanOrEqualToThreshold", evaluation_periods=3, datapoints_to_alarm=3, metrics=[cloudwatch.CfnAlarm.MetricDataQueryProperty( id="m1", label="Describe Queue", metric_stat=cloudwatch.CfnAlarm.MetricStatProperty( metric=cloudwatch.CfnAlarm.MetricProperty( namespace="AWS/Usage", metric_name="CallCount", dimensions=[cloudwatch.CfnAlarm.DimensionProperty( name="Resource", value="DescribeQueue" ), cloudwatch.CfnAlarm.DimensionProperty( name="Service", value="Connect" ), cloudwatch.CfnAlarm.DimensionProperty( name="Type", value="API" ), cloudwatch.CfnAlarm.DimensionProperty( name="Class", value="None" )] ), period=60, stat="Average" ), return_data=False), cloudwatch.CfnAlarm.MetricDataQueryProperty( id="e1", expression="(m1/SERVICE_QUOTA(m1))*100", label="describe_queue_pct_utilisation", return_data=True )], threshold=80, treat_missing_data="missing", #Replace SNS topic with the one you created as prerequisite alarm_actions=['arn:aws:sns:us-east-1:1234567890:SnsTopic'] )
- AWS CloudFormation テンプレートを合成します
cdk synth
- AWS CloudFormation に CDK スタックをデプロイします
cdk deploy
- アプリを作成します
クリーンアップ
CloudWatch アラームを削除するには :
- CloudWatch コンソール (https://console.thinkwithwp.com/cloudwatch/) を開きます
- 左側のナビゲーションペインで すべてのアラームを選択します
- アラームのリストから DescribeQueueAlarmを選択します
- アクションから削除を選択し、アラームを削除します
SNSトピックを作成した場合は、以下の手順で削除します :
- SNS コンソール (https://console.thinkwithwp.com/sns/home) を開きます
- 左側のナビゲーションペインで トピックを選択します
- トピックページで、CloudWatch アラーム作成時に使用したトピックを選択し、削除を選択します
- トピックの削除ダイアログボックスにこれを削除と入力し、削除を選択します
Service Quotas から作成したアラームを削除する場合も、上記と同様の手順で行います。AWS CDK を使用して CloudWatch アラームを作成した場合は、以下のコマンドで AWS CloudFormation スタックとそれに関連付けられたすべてのリソースを削除できます。
cdk destroy
結論
この記事では、Amazon CloudWatch アラームと Amazon Simple Notification Service を使用して、Amazon Connect API の使用状況を監視し、使用量がしきい値を超えた場合に通知を受け取る方法について説明しました。また、AWS Cloud Development Kit (CDK) を使用して、API 使用状況を監視する Amazon CloudWatch アラームの作成を自動化する方法についても紹介しました。
CloudWatch に API 使用状況メトリクスをレポートするサービスのリストの詳細については、AWS API 使用状況メトリクスをご覧ください。
筆者について
Naseer Sayyad は、Amazon Web Services のシニアテクニカルアカウントマネージャーです。Naseer は、AWS のエンタープライズ顧客と協力し、クラウド移行ジャーニーで成功するためのサポートをしています。彼はクラウドコンピューティングと自動化に情熱を持っています。仕事以外では、旅行と写真撮影を楽しんでいます。LinkedIn のアカウントは @naseersayyad です。
翻訳はテクニカルアカウントマネージャー高橋が担当しました。原文はこちらです。