

# IVS 채널 생성을 위한 CLI 지침
<a name="create-channel-cli"></a>

AWS CLI를 사용하여 채널을 생성하는 방법은 고급 옵션이며, 먼저 시스템에 CLI를 다운로드하고 구성해야 합니다. 자세한 내용은 [AWS 명령줄 인터페이스 사용 설명서](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)를 참조하세요.

레코딩을 활성화하거나 활성화하지 않고 채널을 생성하는지 여부에 따라 아래 두 절차 중 하나를 수행합니다.

## 레코딩 없이 채널 생성
<a name="getting-started-create-channel-cli-no-recording"></a>

1. `create-channel` 명령을 실행하고 선택적 이름을 전달합니다.

   ```
   aws ivs create-channel --name test-channel
   ```

1. 그러면 새 채널이 반환됩니다.

   ```
   {
      "channel": {
         "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh",
         "authorized": false,
         "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net",
         "insecureIngest": false,
         "latencyMode": "LOW",
         "name": "channel-live",
         "playbackRestrictionPolicyArn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/abcdABCDefgh",
         "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8",
         "recordingConfigurationArn": "none",
         "srt": {
            "endpoint": "a1b2c3d4e5f6.srt.live-video.net",
            "passphrase: "ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ",
         },
         "tags": {},
         "type": "STANDARD"
      },
      "streamKey": {
         "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/g1H2I3j4k5L6",
         "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh",
         "tags": {},
         "value": "sk_us-west-2_abcdABCDefgh_567890abcdef"
      }
   }
   ```

1. **중요**: `ingestEndpoint`, `streamKey value` 및 `playbackUrl`을 기록합니다. 이를 사용하여 스트리밍 및 재생을 설정합니다.

## 레코딩을 사용하여 채널 생성
<a name="getting-started-create-channel-cli-recording"></a>

**사전 조건:** 이 절차를 시작하기 전에 Amazon S3 버킷을 생성하고 ARN을 기록합니다. [Amazon S3 시작하기](https://docs.aws.amazon.com//AmazonS3/latest/userguide/GetStartedWithS3.html)를 참조하세요. S3 버킷은 레코딩 구성을 생성할 같은 리전에 있어야 합니다. 아래 1단계의 알려진 문제를 참조하세요.

그런 다음, 다음 단계에 따라 채널을 생성합니다.

1. `create-recording-configuration` 명령을 실행하고 기존 Amazon S3 버킷의 ARN을 전달합니다.

   ```
   aws ivs create-recording-configuration --name configuration-1 --destination-configuration s3={bucketName=test-bucket}
   ```

   선택적으로 `thumbnail-configuration` 파라미터를 전달하여 썸네일 레코딩 모드와 썸네일 간격을 수동으로 설정합니다.

   ```
   aws ivs create-recording-configuration --name configuration-1 --destination-configuration s3={bucketName=s3_bucket_name} --thumbnail-configuration recordingMode="INTERVAL",targetIntervalSeconds=60
   ```

   `recording-reconnect-window-seconds` 파라미터를 전달하여 조각화된 스트림 병합 기능을 활성화합니다.

   ```
   aws ivs create-recording-configuration --name configuration-1 --destination-configuration s3={bucketName=test-bucket} --recording-reconnect-window-seconds 60
   ```

   **알려진 문제:** us-east-1 리전에서 AWS CLI를 사용하여 레코딩 구성을 생성하는 경우 S3 버킷이 다른 리전에 있어도 성공을 반환합니다. 이 경우 레코딩 구성의 `state`는 `ACTIVE`가 아닌, `CREATE_FAILED`입니다. (그외 리전에서는 버킷이 다른 리전에 있는 경우 CLI가 올바르게 장애를 반환합니다.)

   **해결 방법:** S3 버킷이 레코딩 구성과 동일한 리전에 있는지 확인합니다. S3 버킷과 같은 다른 리전에서 레코딩 구성을 생성하는 경우 해당 레코딩 구성을 삭제하고 올바른 리전의 S3 버킷으로 새 레코딩 구성을 생성합니다.

1. 그러면 고유한 ARN의 새 레코딩 구성이 반환됩니다. 레코딩 구성의 상태는 `CREATING`이고, 생성 중임을 나타냅니다.

   ```
   {
      "recordingConfiguration": {
         "arn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te",
         "name": "configuration-1",
         "destinationConfiguration": {
            "s3": {
               "bucketName": "s3_bucket_name"
            }
         },
         "recordingReconnectWindowSeconds": 60,
         "state": "CREATING",
         "tags": {},
         "thumbnailConfiguration": {
            "recordingMode": "INTERVAL",
            "targetIntervalSeconds": 60
         }
      }
   }
   ```

1. 일반적으로 레코딩 구성을 생성하는 데 몇 초 정도지만, 최대 20초가 걸릴 수 있습니다. 레코딩 구성이 생성되었는지 확인하려면 `get-recording-configuration` 명령을 실행합니다.

   ```
   aws ivs get-recording-configuration --arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te"
   ```

1. 그러면 레코딩 구성이 생성되었음을 나타내는 응답을 반환합니다(`state`는 `ACTIVE`임).

   ```
   {
      "recordingConfiguration": {
         "arn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te",
         "name": "configuration-1",
         "destinationConfiguration": {
            "s3": {
               "bucketName": "s3_bucket_name"
            }
         },
         "recordingReconnectWindowSeconds": 60,
         "state": "ACTIVE",
         "tags": {},
         "thumbnailConfiguration": {
            "recordingMode": "INTERVAL",
            "targetIntervalSeconds": 60
         }
      }
   }
   ```

1. 채널을 생성하고 해당 채널에서 레코딩을 활성화하려면 `create-channel` 명령을 실행하고 레코딩 구성 ARN을 전달합니다.

   ```
   aws ivs create-channel --name channel-live --recording-configuration-arn  "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te"
   ```

   또는 기존 채널에서 레코딩을 활성화하려면 `update-channel` 명령을 실행하고 레코딩 구성 ARN을 전달합니다.

   ```
   aws ivs update-channel --arn "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh" --recording-configuration-arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te"
   ```

1. 그러면 `recordingConfigurationArn`에 대해 ‘없음’ 이외 값의 채널 오브젝트를 반환하고 레코딩이 활성화되었음을 나타냅니다. (아래 응답은 `create-channel`에서 반환됩니다. `update-channel` 응답은 `streamKey` 객체를 포함하지 않습니다.)

   ```
   {
      "channel": {
         "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh",
         "authorized": false,
         "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net",
         "insecureIngest": false,
         "latencyMode": "LOW",
         "name": "channel-live",
         "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8",
         "recordingConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te",
         "srt": {
            "endpoint": "a1b2c3d4e5f6.srt.live-video.net",
            "passphrase: "ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ",
         },
         "tags": {},
         "type": "STANDARD"
      },
      "streamKey": {
         "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/g1H2I3j4k5L6",
         "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh",
         "tags": {},
         "value": "sk_us-west-2_abcdABCDefgh_567890abcdef"
      }
   }
   ```

1. **중요**: `ingestEndpoint`, `streamKey value` 및 `playbackUrl`을 기록합니다. 이를 사용하여 스트리밍 및 재생을 설정합니다.