Kinesis Data Streams API 및 AWS SDK for PHP 버전 3을 사용하여 데이터 샤드 관리 - AWS SDK for PHP

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

Kinesis Data Streams API 및 AWS SDK for PHP 버전 3을 사용하여 데이터 샤드 관리

Amazon Kinesis Data Streams를 사용하면 엔드포인트로 실시간 데이터를 엔드포인트로 전송할 수 있습니다. 데이터 흐름 속도는 스트림의 샤드 수에 따라 다릅니다.

한 샤드에 초당 1,000개의 레코드를 쓸 수 있습니다. 또한 각 샤드의 업로드 제한 속도는 초당 1MiB입니다. 사용은 샤드 단위로 계산되고 요금이 청구되므로, 다음 예제를 사용하여 스트림의 데이터 용량과 비용을 관리하세요.

다음 예제에서는 다음과 같은 작업을 하는 방법을 보여줍니다.

  • 를 사용하여 ListShards스트림의 샤드를 나열합니다.

  • 를 사용하여 스트림의 샤드 수를 추가하거나 줄이십시오. UpdateShardCount

의 모든 예제 코드는 여기에서 확인할 GitHub 수 있습니다. AWS SDK for PHP

보안 인증 정보

예제 코드를 실행하기 전에 보안 인증에 설명된 대로 AWS 보안 인증을 구성합니다. 그 다음 기본 사용법에 설명된 대로 AWS SDK for PHP를 가져옵니다.

Amazon Kinesis Data Streams 사용에 대한 자세한 내용은 Amazon Kinesis Data Streams 개발자 안내서를 참조하세요.

데이터 스트림 샤드 목록 표시

특정 스트림의 최대 100개 샤드에 대한 세부 정보를 표시합니다.

Kinesis 데이터 스트림의 샤드를 나열하려면 작업을 사용하십시오 ListShards.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

샘플 코드

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $name = "my_stream_name"; try { $result = $kinesisClient->ListShards([ 'StreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

데이터 스트림 샤드 추가

데이터 스트림 샤드가 더 필요할 경우 현재 샤드 수를 늘릴 수 있습니다. 증가 시 샤드 수를 두 배로 늘리는 것이 좋습니다. 이렇게 하면 현재 사용할 수 있는 각 샤드의 복사본이 생성되어 용량이 늘어납니다. 샤드 수 두 배 증가는 24시간 동안 두 번만 할 수 있습니다.

Kinesis Data Streams 사용량에 대한 청구서는 샤드당 계산되므로 수요가 감소하면 샤드 수를 절반으로 줄이는 것이 좋습니다. 샤드를 제거할 때 현재 샤드 수의 절반까지만 샤드의 양을 줄일 수 있습니다.

Kinesis 데이터 스트림의 샤드 수를 업데이트하려면 작업을 사용하십시오 UpdateShardCount.

가져오기

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

샘플 코드

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $name = "my_stream_name"; $totalshards = 4; try { $result = $kinesisClient->UpdateShardCount([ 'ScalingType' => 'UNIFORM_SCALING', 'StreamName' => $name, 'TargetShardCount' => $totalshards ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }