

# CloudWatch でサポートされるプロトコルについてのよくある質問
<a name="cloudwatch-protocols-faq"></a>

CloudWatch SDK は、[AWS JSON 1.0](https://smithy.io/2.0/aws/protocols/aws-json-1_0-protocol.html) と [Smithy RPC v2 CBOR](https://smithy.io/2.0/additional-specs/protocols/smithy-rpc-v2.html) の 2 つの追加プロトコルの使用を開始しました。これらのプロトコルは、以前に CloudWatch SDK と CLI で使用されていた AWS Query よりもパフォーマンスが高くなります。AWSSDK は、各言語で最もパフォーマンスの高いプロトコルを優先します。

## AWS JSON プロトコルとは何ですか。また、既存の CloudWatch API のリクエストやレスポンスとどう違いますか。
<a name="aws-json-protocol"></a>

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 のリクエストやレスポンスとどう違いますか。
<a name="smithy-rpc-cbor-protocol"></a>

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 の新しいプロトコルを使い始めるにはどうすればよいですか。
<a name="getting-started"></a>

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


**SDK クライアントプロトコルのサポート**  

| Language | プロトコル | SDK のバージョン | 
| --- | --- | --- | 
| C\$1\$1 | RPC v2 CBOR | [1.11.708](https://github.com/aws/aws-sdk-cpp/releases/tag/1.11.708) | 
| Golang 2.x | RPC v2 CBOR | [1.53.0](https://github.com/aws/aws-sdk-go-v2/releases/tag/service%2Fcloudwatch%2Fv1.53.0) | 
| Java 1.x | RPC v2 CBOR | [1.12.795](https://github.com/aws/aws-sdk-java/releases/tag/1.12.795) | 
| Java 2.x | RPC v2 CBOR | [2.40.6](https://github.com/aws/aws-sdk-java-v2/releases/tag/2.40.6) | 
| JavaScript v3.x | AWS JSON 1.0 | [3.949.0](https://github.com/aws/aws-sdk-js-v3/releases/tag/v3.949.0) | 
| .NET v3 | AWS JSON 1.0 | [3.7.1182.0](https://github.com/aws/aws-sdk-net/releases/tag/3.7.1182.0) | 
| .NET v4 | RPC v2 CBOR | [4.0.150.0](https://github.com/aws/aws-sdk-net/releases/tag/4.0.150.0) | 
| PHP | AWS JSON 1.0 | [3.367.0](https://github.com/aws/aws-sdk-php/releases/tag/3.367.0) | 
| Python-boto3 | AWS JSON 1.0 | [1.42.7](https://github.com/boto/boto3/releases/tag/1.42.7) | 
| Python-botocore | AWS JSON 1.0 | [1.42.7](https://github.com/boto/botocore/releases/tag/1.42.7) | 
| AWS CLI v1 | AWS JSON 1.0 | [1.43.13](https://github.com/aws/aws-cli/releases/tag/1.43.13) | 
| AWS CLI v2 | AWS JSON 1.0 | [2.32.14](https://github.com/aws/aws-cli/releases/tag/2.32.14) | 
| Ruby | AWS JSON 1.0 | [1.126.0](https://github.com/aws/aws-sdk-ruby/commit/3b09588cf49079453ef372cdcd51eaab8d8114a9) | 
| PowerShell | AWS JSON 1.0 | [5.0.114](https://github.com/aws/aws-tools-for-powershell/commit/22b7f44d079b84fd245273ea554ae57d07e8a017) | 
| Rust | RPC v2 CBOR | [1.100.0](https://github.com/awslabs/aws-sdk-rust/releases/tag/release-2025-12-10) | 
| Swift | RPC v2 CBOR | [1.6.14](https://github.com/awslabs/aws-sdk-swift/releases/tag/1.6.14) | 
| Kotlin | RPC v2 CBOR | [1.5.100](https://github.com/aws/aws-sdk-kotlin/releases/tag/v1.5.100) | 

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

これらの新しい 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 をサポートしていない場合はどうなりますか。
<a name="compatibility-issues"></a>

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

## CloudWatch API で使用される AWS JSON および CBOR プロトコルではどのリージョンがサポートされていますか。
<a name="region-support"></a>

CloudWatch は、CloudWatch が利用可能なすべての [AWS リージョン](https://docs.aws.amazon.com/general/latest/gr/rande.html#cw_region)で AWS JSON および CBOR プロトコルをサポートしています。

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

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

## AWS Query プロトコルは廃止される予定ですか?
<a name="protocol-deprecation"></a>

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

## AWS JSON プロトコルと Smithy RPC v2 CBOR プロトコルの詳細情報はどこで入手できますか。
<a name="more-information"></a>

JSON プロトコルの詳細については、Smithy ドキュメントの「[AWS JSON 1.0](https://smithy.io/2.0/aws/protocols/aws-json-1_0-protocol.html) プロトコル」、CBOR の詳細については、Smithy ドキュメントの「[AWS RPC v2 CBOR](https://smithy.io/2.0/additional-specs/protocols/smithy-rpc-v2.html) プロトコル」を参照してください。

CloudWatch API リクエストの詳細については、「CloudWatch API リファレンスガイド」の「[API リクエストの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/making-api-requests.html)」を参照してください。