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 つのシャードに 1 秒あたり 1,000 個のレコードを書き込むことができます。各シャードには、1 秒あたり 1 MiB のアップロード制限もあります。使用量は、シャード単位で計算および請求されるため、これらの例を使用してストリームのデータ容量とコストを管理します。

以下の例では、次の方法を示しています。

  • を使用してストリーム内のシャードを一覧表示しますListShards

  • を使用して、ストリーム内のシャード数を追加または減らしますUpdateShardCount

のすべてのサンプルコードAWS SDK for PHPは、 にあります GitHub

認証情報

サンプルコードを実行する前に、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"; }

データストリームシャードをさらに追加する

データストリームシャードをさらに追加する必要がある場合、現在のシャード数を増やすことができます。増やす場合、シャード数を 2 倍にすることをお勧めします。これにより、現在利用可能な各シャードのコピーが作成され、容量が増加します。シャードの数を 2 倍にできるのは、24 時間以内に 2 回のみです。

先ほど説明したように 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"; }