

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Kinesis Video Streams で IPv6 を使用する
<a name="ipv6-support"></a>

コントロールプレーンオペレーションとデータプレーンオペレーションの両方で IPv6 を使用するように Kinesis Video Streams を設定できます。これにより、アプリケーションはデュアルスタックエンドポイントを介して IPv6 アドレスを使用して Kinesis Video Streams サービスと通信できます。

**注記**  
IPv6 サポートには、特定の SDK バージョンと設定が必要です。Kinesis Video Streams SDK および AWS SDK バージョンが IPv6 デュアルスタックエンドポイントをサポートしていることを確認します。デュアルスタックエンドポイントは IPv4 トラフィックと IPv6 トラフィックの両方をサポートし、一部のリージョンの一部のサービスで使用できます。

Kinesis Video Streams は、プロデューサーアプリケーションとコンシューマーアプリケーションの両方でデュアルスタックエンドポイントを介して IPv6 をサポートします。コントロールプレーン API コールとデータプレーンストリーミングオペレーションに IPv6 を使用するようにアプリケーションを設定できます。

## AWS SDK for IPv6 を設定する
<a name="configure-aws-sdk-ipv6"></a>

 AWS SDK を使用して本番稼働用セットアップで Kinesis Video Streams コントロールプレーン APIs を呼び出す場合は、デュアルスタックエンドポイントを設定することで IPv6 を有効にできます。 AWS SDK には、デュアルスタックエンドポイントを有効にするための標準化されたメソッドがいくつか用意されています。

**重要**  
デュアルスタックエンドポイントを有効にすると、SDK はデュアルスタックエンドポイントを使用してネットワークリクエストを実行しようとします。サービスまたはリージョンにデュアルスタックエンドポイントが存在しない場合、リクエストは失敗します。

### 環境変数を使用します。
<a name="ipv6-environment-variables"></a>

IPv6 デュアルスタックエンドポイントを有効にするには、次の環境変数を設定します。

```
export AWS_USE_DUALSTACK_ENDPOINT=true
```

### AWS 設定ファイルを使用する
<a name="ipv6-config-file"></a>

 AWS 設定ファイル (`~/.aws/config`) に次の設定を追加します。

```
[default]
use_dualstack_endpoint = true
```

### JVM システムプロパティを使用する (Java および Kotlin SDKsのみ)
<a name="ipv6-jvm-properties"></a>

Java および Kotlin アプリケーションの場合は、次の JVM システムプロパティを設定します。

```
-Daws.useDualstackEndpoint=true
```

または、Java コードでプログラム的に以下を実行します。

```
System.setProperty("aws.useDualstackEndpoint", "true");
```

### SDK サポート
<a name="sdk-support-table"></a>

次の AWS SDKs、デュアルスタックのエンドポイント設定をサポートしています。


| SDK | サポート | 設定方法 | 
| --- | --- | --- | 
| AWS CLI v2 | はい | 環境変数、設定ファイル | 
| SDK for C\+\+ | はい | 環境変数、設定ファイル | 
| SDK for Go V2 (1.x) | はい | 環境変数、設定ファイル | 
| SDK for Java 2.x | はい | 環境変数、設定ファイル、JVM プロパティ | 
| SDK for Java 1.x | いいえ | サポートされていません | 
| SDK for JavaScript 3.x | はい | 環境変数、設定ファイル | 
| SDK for Python (Boto3) | はい | 環境変数、設定ファイル | 

デュアルスタックエンドポイントを設定すると、 AWS SDK は Kinesis Video Streams コントロールプレーン APIs呼び出すときに IPv6 エンドポイントを自動的に使用します。

## IPv6 用の Kinesis Video Streams プロデューサー SDK を設定する
<a name="configure-producer-sdk-ipv6"></a>

Kinesis Video Streams プロデューサー SDK は、コントロールプレーンオペレーションとデータプレーンオペレーションの両方に IPv6 設定オプションを提供します。これらの設定は AWS SDK デュアルスタックエンドポイント設定で機能します。

### C/C\+\+ プロデューサー SDK を設定する
<a name="configure-c-cpp-producer-sdk"></a>

デフォルトのエンドポイントと DNS 解決チェーンは、KVS Producer-C SDK バージョン 1.6.0 によって実装されます。これらのパラメータの設定を設定できる各場所を順番にチェックし、最初に設定したパラメータを選択します。事前定義されたシーケンスは次のとおりです。

プロデューサー SDKs の詳細については、プロ[デューサー SDK for C](https://github.com/awslabs/amazon-kinesis-video-streams-producer-c)、[プロデューサー SDK for C\+\+](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp)、[プロデューサー SDK の関連トピック](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk.html#producer-sdk-related-topics)を参照してください。

#### エンドポイント設定
<a name="endpoint-configuration"></a>

1. の `controlPlaneUrl`パラメータ`createAbstractDefaultCallbacksProvider`。

1. エンドポイント設定 CMake パラメータ: (`-DAWS_KVS_USE_LEGACY_ENDPOINT_ONLY=TRUE`、`-DAWS_KVS_USE_DUAL_STACK_ENDPOINT_ONLY=TRUE`)

1. 環境変数: (`export AWS_USE_DUALSTACK_ENDPOINT=TRUE`)
   + `AWS_USE_DUALSTACK_ENDPOINT` が `TRUE` (大文字と小文字を区別しない) の場合、デュアルスタックのエンドポイントが使用されます。

1. そうしないと、レガシーエンドポイントが構築されて使用されます。

2、3、4 では、エンドポイントは に提供されたリージョンに基づいて構築されます`createAbstractDefaultCallbacksProvider`。

#### DNS フィルタリング
<a name="dns-filtering"></a>

KVS プロデューサー SDK は、設定に応じて適切な`CURLOPT_IPRESOLVE`パラメータを設定します。

1. DNS 解決 CMake パラメータ: (`-DAWS_KVS_IPV4_ONLY=TRUE`、`-DAWS_KVS_IPV6_ONLY=TRUE`、`-DAWS_KVS_IPV4_AND_IPV6_ONLY=TRUE`)

1. 環境変数 (`export AWS_KVS_USE_IPV4=TRUE`、`export AWS_KVS_USE_IPV6=TRUE`)

1. それ以外の場合、フィルタリングは行われません。DNS によって返される IPv4 と IPv6 の両方の IP アドレスを使用できます。

**注記**  
DNS フィルター設定が IPV6 IP アドレスをフィルタリングするように設定されていても、SDK 設定がレガシーエンドポイント (IPV4-onlyアドレスを返す) を使用する場合、リクエストは失敗します。

C\+\+ プロデューサー SDK バージョン 3.5.0 では、KVS API コールに Producer-C SDK 1.6.0 を使用します。

### GStreamer プラグインを設定する
<a name="configure-gstreamer-plugin"></a>

GStreamer プラグインは基盤となる C プロデューサー SDK を使用するため、前述のように C SDK for IPv6 を設定するとIPv6 設定が自動的に処理されます。

コードの変更は必須ではありません。CMake パラメータを使用して SDK を構築するか、前のセクションで説明したように適切な環境変数を設定します。

### データプレーンエンドポイントの解決
<a name="data-plane-endpoint-resolution"></a>

データプレーンオペレーションでは、 `GetDataEndpoint` API を使用して適切なデュアルスタックのデータプレーンエンドポイントを取得します。サービスは、リクエスト URL に応じて対応するエンドポイントを返します。

例:
+ API `GetDataEndpoint`リクエストが で終わるレガシーエンドポイントに対して行われた場合`.amazonaws.com`、Kinesis Video Streams は で終わるレガシーデータプレーンエンドポイントを返します`.amazonaws.com`。
+ API `GetDataEndpoint`リクエストが で終わるデュアルスタックエンドポイントに対して行われた場合`.api.aws`、Kinesis Video Streams は で終わるデュアルスタックデータプレーンエンドポイントを返します`.api.aws`。

## IPv6 AWS CLI の を設定する
<a name="configure-aws-cli-ipv6"></a>

Kinesis Video Streams オペレーション (通常はproof-of-concept作業用) AWS CLI に を使用している場合は、デュアルスタックエンドポイントを設定することで IPv6 を有効にできます。

### 環境変数の使用
<a name="cli-environment-variable"></a>

```
export AWS_USE_DUALSTACK_ENDPOINT=true
```

### AWS 設定ファイルを使用する
<a name="cli-config-file"></a>

 AWS CLI 設定ファイル (`~/.aws/config`) に以下を追加します。

```
[default]
use_dualstack_endpoint = true
```

## 設定例
<a name="configuration-examples"></a>

### C SDK の例
<a name="c-sdk-example"></a>

KVS Producer-C SDK を IPV6-onlyモードで構築し、環境変数設定を無視するには、次のコマンドを使用して SDK を構築します。

```
cmake .. -DAWS_KVS_USE_DUAL_STACK_ENDPOINT_ONLY=TRUE -DAWS_KVS_IPV6_ONLY=TRUE
make -j
```

**注記**  
SDK が既に構築されている場合は、クリーンビルドを実行する必要があります。ビルドコマンドを実行する前に、既存のビルドフォルダ、オープンソースフォルダ、依存関係フォルダを削除します。

## 考慮事項
<a name="ipv6-considerations"></a>

### ネットワークの要件
<a name="network-requirements"></a>
+ ネットワークインフラストラクチャが IPv6 接続をサポートしていることを確認します。
+ セキュリティグループとネットワーク ACLs IPv6 トラフィックを許可していることを確認します。
+ デプロイ環境から AWS IPv6 エンドポイントへの接続をテストする
+ デュアルスタックエンドポイントは、一部の リージョンの一部のサービスで利用可能 — ターゲットリージョンの可用性を検証します。

### SDK の互換性
<a name="sdk-compatibility"></a>
+ サポートされている AWS SDK バージョンを使用していることを確認します。
+  AWS SDK for Java 1.x はデュアルスタックのエンドポイント設定をサポートしていません
+ SDK for Go 1.x (V1) では、共有設定ファイル設定を使用するには、設定ファイルからのロードを有効にする必要があります

### テストと検証
<a name="testing-validation"></a>

IPv6-enabled Kinesis Video Streams アプリケーションを本番環境にデプロイする前に:
+ コントロールプレーンオペレーションのテスト (ストリームの作成、削除、一覧表示)
+ データプレーンオペレーションの検証 (ビデオの取り込みと消費)
+ ネットワーク環境でのパフォーマンスと接続を検証する
+ Canary テストを実行して、一貫した IPv6 機能を確保する
+ デュアルスタックエンドポイントが使用できない場合のフェイルオーバー動作のテスト

## IPv6 を含むアップグレードの影響を受けるお客様
<a name="customers-impacted-ipv6"></a>

Kinesis Video Streams で IPv6 を有効にすると、継続的な機能を確保するために既存の設定とポリシーを更新する必要がある領域がいくつかあります。

### IAM ポリシーと IP アドレスフィルタリング
<a name="iam-policies-ip-filtering"></a>

IAM ユーザーポリシー、ロールポリシー、またはリソースベースのポリシーでソース IP アドレスフィルタリングを使用する場合は、これらのポリシーを更新して IPv6 アドレス範囲を含める必要があります。

**重要**  
`IpAddress` または `NotIpAddress`条件で IPv4 CIDR ブロックを使用する既存の IAM ポリシーは、IPv6 アドレスでは自動的に機能しません。アクセスコントロールを維持するには、IPv6 範囲を明示的に追加する必要があります。

IPv6 の IAM ポリシー更新の例:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kinesisvideo:*",
      "Resource": "*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "192.0.2.0/24",
            "203.0.113.0/24",
            "2001:db8::/32"
          ]
        }
      }
    }
  ]
}
```

### ログ記録とモニタリング
<a name="logging-monitoring-ipv6"></a>

IPv6 アドレスの形式は IPv4 アドレスとは異なるため、ログ記録、モニタリング、分析システムに影響を与える可能性があります。

#### ログ
<a name="cloudtrail-logs"></a>

 ログには、リクエストが IPv6 経由で行われると、 `sourceIPAddress`フィールドに IPv6 アドレスが含まれます。IPv6 アドレス形式を処理するようにログ解析ツールとスクリプトを更新します。

ログの IPv6 アドレスの例:

```
{
  "sourceIPAddress": "2001:db8::1",
  "eventName": "CreateStream",
  "eventSource": "kinesisvideo.amazonaws.com"
}
```

## トラブルシューティング
<a name="troubleshooting-ipv6"></a>

### 一般的な問題
<a name="common-issues"></a>
+ 接続の失敗 — IPv6 ネットワーク接続と DNS 解決を検証する
+ SDK エラー – デュアルスタックエンドポイントをサポートする互換性のある SDK バージョンを使用していることを確認します。
+ 認証の問題 – IAM ポリシーと認証情報が IPv6 エンドポイントで動作することを確認する
+ エンドポイントを使用できない – サービスまたはリージョンにデュアルスタックエンドポイントが存在しない場合、リクエストは失敗します

### 検証手順
<a name="verification-steps"></a>
+ `AWS_USE_DUALSTACK_ENDPOINT=true` が設定されているか`use_dualstack_endpoint = true`、設定ファイルにあることを確認します。
+ Kinesis Video Streams SDK IPv6 設定フラグが正しく設定されていることを確認します。
+  AWS IPv6 エンドポイントへのネットワーク接続をテストする
+ IPv6-specificエラーメッセージのアプリケーションログを確認する
+ リージョンが Kinesis Video Streams のデュアルスタックエンドポイントをサポートしていることを確認します。

### 設定の検証
<a name="configuration-validation"></a>

デュアルスタックのエンドポイント設定を確認するには、以下を確認します。
+ 環境変数: `echo $AWS_USE_DUALSTACK_ENDPOINT`
+ AWS 設定ファイル: `cat ~/.aws/config | grep use_dualstack_endpoint`
+ JVM プロパティ (Java): アプリケーションログのシステムプロパティを確認する