CloudWatch でサポートされるプロトコルについてのよくある質問 - Amazon CloudWatch

CloudWatch でサポートされるプロトコルについてのよくある質問

CloudWatch SDK は、AWS JSON 1.1Smithy RPC v2 CBOR の 2 つのプロトコルを追加で使用開始しました。これらのプロトコルは、以前に CloudWatch SDK と CLI で使用されていた AWS Query よりもパフォーマンスが高くなります。AWSSDK は、各言語で最もパフォーマンスの高いプロトコルを優先します。

AWS JSON プロトコルとは何ですか。また、既存の CloudWatch API のリクエストやレスポンスとどう違いますか。

JSON は、異種システム間の通信で最も広く使用され、受け入れられているデータ形式の 1 つです。CloudWatch は JSON を通信媒体として使用して、AWS SDK クライアント (Java、Python、Golang、JavaScript など) と CloudWatch サーバー間の通信を行います。CloudWatch API オペレーションの HTTP リクエストは、JSON 形式の入力を受け付けます。CloudWatch オペレーションが実行され、実行レスポンスが JSON 形式で SDK クライアントに共有されます。AWS Query と比較して、JSON はクライアントとサーバー間でより効率的にデータ転送できます。

  • CloudWatch AWS JSON プロトコルは、CloudWatch クライアントとサーバー間のメディエーターとして機能します。

  • CloudWatch AWS SDK は、CloudWatch クライアントとサーバー間のシリアル化 (オブジェクトを JSON 形式に変換) と逆シリアル化 (JSON 形式をオブジェクトに変換) を処理します。

Smithy RPC v2 CBOR プロトコルとは何ですか。また、既存の CloudWatch API のリクエストやレスポンスとどう違いますか。

Smithy RPC v2 CBOR (Concise Binary Object Representation) は、より効率的なデータ転送のために Amazon によって開発されたプロトコルです。メッセージサイズをコンパクトに保ち、システム間のバージョンネゴシエーションを必要とせずに形式を進化させるように設計されたデータ形式です。JSON エンコーディングとの主な違いは、JSON は人間が読めるテキスト (例: "name": "John") を使用し、CBOR はバイナリ形式 (1 と 0 の並び) を使用することです。このバイナリアプローチにより、作成されるデータパッケージが小さくなってネットワーク上の移動が高速になり、コンピュータがバイナリデータを直接処理するため、シリアル化時間が短縮されます。

  • CloudWatch RPC v2 CBOR プロトコルは、CloudWatch クライアントとサーバー間のメディエーターとして機能します。

  • CloudWatch SDK は、CloudWatch クライアントとサーバー間のシリアル化 (オブジェクトを CBOR 形式に変換) と逆シリアル化 (CBOR 形式をオブジェクトに変換) を処理します。

CloudWatch の新しいプロトコルを使い始めるにはどうすればよいですか。

開始するには、最新の AWS SDK/CLI バージョンを使用して、CloudWatch でサポートされている最新のプロトコルを使用します。AWS SDK を指定されたバージョン以降のバージョンにアップグレードします。

SDK クライアントプロトコルのサポート
Language プロトコル SDK のバージョン
C++ RPC v2 CBOR 1.11.708
Golang 2.x RPC v2 CBOR 1.53.0
Java 1.x AWS JSON 1.1 1.12.795
Java 2.x RPC v2 CBOR 2.40.6
JavaScript v3.x AWS JSON 1.1 3.949.0
.NET v3 AWS JSON 1.1 3.7.1182.0
.NET v4 RPC v2 CBOR 4.0.150.0
PHP AWS JSON 1.1 3.367.0
Python-boto3 AWS JSON 1.1 1.42.7
Python-botocore AWS JSON 1.1 1.42.7
AWS CLI v1 AWS JSON 1.1 1.43.13
AWS CLI v2 AWS JSON 1.1 2.32.14
Ruby AWS JSON 1.1 1.126.0
PowerShell AWS JSON 1.1 5.0.114
Rust RPC v2 CBOR 1.100.0
Swift RPC v2 CBOR 1.6.14
Kotlin RPC v2 CBOR 1.5.100

CloudWatch ワークロードでこれらの新しいプロトコルを有効にした場合、どのようなリスクがありますか。

これらの新しい SDK バージョンへの移行は、顧客にとって完全に透過的で手間がかからないと期待できます。リスト内で null 値を取り扱う方法に関連して、プロトコル間で既知の動作変更が 1 つあります。null 値を含む可能性のあるリスト入力を持つ CloudWatch API コールは、以前の AWS Query プロトコルと比較して AWS JSON プロトコルと Smithy RPC v2 CBOR プロトコルでは処理が異なります。AWS Query プロトコルでは、リスト内の null 値は削除されますが、JSON/CBOR プロトコルでは API コールを介して伝播されます。

さらに、AWS SDK のカスタム実装、またはカスタムクライアントと AWS SDK の組み合わせを使用して、AWS Query ベース (別名 XML ベース) のレスポンスを生成する CloudWatch を操作している場合、AWS JSON または CBOR プロトコルと互換性がない可能性があります。問題が発生した場合は、AWS サポートに連絡してください。

既に最新の AWS SDK バージョンを使用しているものの、オープンソースのソリューションが JSON または CBOR をサポートしていない場合はどうなりますか。

SDK のバージョンを以前のバージョンに変更する必要があります。「CloudWatch の新しいプロトコルを使い始めるにはどうすればよいですか。」セクションを参照して、リストにあるバージョンより前のバージョンを選択します。AWS SDK を以前のバージョンに変更すると、CloudWatch API は AWS Query プロトコルを使用します。

CloudWatch API で使用される AWS JSON および CBOR プロトコルではどのリージョンがサポートされていますか。

CloudWatch は、CloudWatch が利用可能なすべての AWS リージョンで AWS JSON および CBOR プロトコルをサポートしています。

新しいプロトコルを使用して CloudWatch の指定された AWS SDK バージョンにアップグレードすると、どのようなレイテンシーの改善が期待できますか。

JSON と CBOR はどちらも、AWS Query と比較してレイテンシーと CPU 使用率が最大 80% 低くなります。どちらのプロトコルも、ネットワーク帯域幅の使用効率が最大 20% 改善します。

AWS Query プロトコルは廃止される予定ですか?

AWS Query プロトコルは引き続きサポートされます。お使いの AWS SDK のバージョンが CloudWatch の新しいプロトコルを使い始めるにはどうすればよいですか。 に記載されているバージョンより前のバージョンに設定されている限り、AWS Query プロトコルは引き続き使用できます。

AWS JSON プロトコルと Smithy RPC v2 CBOR プロトコルの詳細情報はどこで入手できますか。

JSON プロトコルの詳細については、Smithy ドキュメントの「AWS JSON 1.1 プロトコル」、CBOR の詳細については、Smithy ドキュメントの「AWS RPC v2 CBOR プロトコル」を参照してください。

CloudWatch API リクエストの詳細については、「CloudWatch API リファレンスガイド」の「API リクエストの作成」を参照してください。