

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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를 사용하도록 애플리케이션을 구성할 수 있습니다.

## IPv6용 AWS SDK 구성
<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 호출에 생산자-C SDK 1.6.0을 사용합니다.

### GStreamer 플러그인 구성
<a name="configure-gstreamer-plugin"></a>

GStreamer 플러그인은 기본 C 생산자 SDK를 사용하므로 앞서 설명한 대로 IPv6용 C SDK를 구성할 때 IPv6 구성이 자동으로 처리됩니다.

코드 수정은 필요하지 않습니다. CMake 파라미터를 사용하여 SDK를 빌드하거나 이전 섹션에 설명된 대로 적절한 환경 변수를 설정하기만 하면 됩니다.

### 데이터 영역 엔드포인트 해상도
<a name="data-plane-endpoint-resolution"></a>

데이터 영역 작업의 경우 `GetDataEndpoint` API를 사용하여 적절한 듀얼 스택 데이터 영역 엔드포인트를 검색합니다. 서비스는 요청 URL에 따라 해당 엔드포인트를 반환합니다.

예제:
+ 로 끝나는 레거시 엔드포인트에 `GetDataEndpoint` API 요청이 이루어진 경우 `.amazonaws.com`Kinesis Video Streams는 로 끝나는 레거시 데이터 영역 엔드포인트를 반환합니다`.amazonaws.com`.
+ 로 끝나는 듀얼 스택 엔드포인트에 `GetDataEndpoint` API 요청이 이루어진 경우 `.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>

IPV6-only 모드에서 KVS Producer-C SDK를 빌드하고 환경 변수 구성을 무시하려면 다음 명령을 사용하여 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 애플리케이션을 프로덕션에 배포하기 전에:
+ 컨트롤 플레인 작업 테스트(스트림 생성, 삭제, 나열)
+ 데이터 영역 작업 확인(비디오 수집 및 소비)
+ 네트워크 환경에서 성능 및 연결 검증
+ 카나리아 테스트를 실행하여 일관된 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): 애플리케이션 로그에서 시스템 속성 확인