いわさです。
今朝のアップデートで Amazon Managed Blockchain Query の使用量を CloudWatch で監視出来るようになりました。
非常に単純な機能ではあるのですが、AMB Query の API コール数が CloudWatch メトリクスに出力されるようになっています。
後ほど解説しますが AMB Query をアプリケーションへ統合してご利用中の方にとっては信頼性向上のために使える、地味に嬉しいアップデートです。
先日ちょうど Amazon Managed Blockchain (AMB) Query の API を次の記事で実行していましたので、ついでの今回のアップデートも確認してみましょう。
API 使用量がサービスクォータに達しそうか管理しにくかった問題が解決する
まず前提として Amazon Managed Blockchain の各機能にはサービスの使用制限があり、以下に記載されています。
このうち AMB Query については 1 秒あたりに実行出来る各アクションの最大数、つまり実行レートが上限となっています。サービスクォータ画面から上限緩和が可能です。
こういった上限緩和が必要なものは、現状の使用量を何かしら管理して上限緩和が必要な状況なのかどうかを把握しておきたいところです。
リソースの使用数であれば、AWS Trusted Advisor のサービス制限のカテゴリで、次のようにいくつか確認することが可能なのですが、今回のような実行レート関係だとこれまで確認することが出来ませんでした。
CloudWatch メトリクスで取得可能になった
今回のアップデートによって CloudWatch メトリクスとして使用量を取得することが出来るようになりました。
そのため、特定時間にスパイクが発生するようなワークロードでもサービス上限値に近づいているかどうかを把握したり、独自に設定した基準を超えたタイミングで通知を行うことなどが出来るようになりました。
AMB Query は現状バージニア北部リージョンでのみ利用可能なので、バージニア北部の CloudWatch コンソールから確認を行いました。
対象のメトリクスは「CallCount」です。
確認してみたところ私の場合はGetTransaction
とListTransactions
の 2 つの API の使用量が確認出来るようになっていました。
この 2 つは実際に冒頭の記事で使った呼び出し履歴のある API ですね。
確認してみると次のようにカウントや平均を取得することが出来ました。
もし未出力の項目でアラームを作成したい場合は次のパラメータを参考に新規作成してみてください。
% aws cloudwatch describe-alarms --alarm-names "hoge0219hoge" --region us-east-1
{
"MetricAlarms": [
{
:
"MetricName": "CallCount",
"Namespace": "AWS/Usage",
"Statistic": "Average",
"Dimensions": [
{
"Name": "Type",
"Value": "API"
},
{
"Name": "Resource",
"Value": "GetAssetContract"
},
{
"Name": "Service",
"Value": "Amazon Managed Blockchain Query"
},
{
"Name": "Class",
"Value": "None"
}
],
:
}
],
"CompositeAlarms": []
}
さいごに
本日は Amazon Managed Blockchain Query の使用量を CloudWatch で監視出来るようになったので紹介しました。
というか、これまで計測する方法無かったのだなと驚きました。
AWS の事例だと、AMB Query を多様しているワークロードなども存在していると思いますが、そういったものは AMB Query の呼び出し元の実行回数から間接的に算出するとか、あるいはカスタムメトリクスを発行する必要があったのかもしれませんね。
もし AMB Query を運用環境で使いたいという方は、このメトリクスの監視は必ず入れたほうが良いのではないでしょうか。