Simple Log Service は、シャードを使用して Logstore、EventStore、MetricStore の読み取り/書き込みキャパシティを制御します。すべてのデータはシャードに保存されます。シャードを分割またはマージして、アクティブなシャードの数を調整し、最大読み取り/書き込みキャパシティを制御できます。シャードは自動的に分割できますが、マージは手動で行う必要があります。
用語
シャード範囲
各シャードには、左閉右開の MD5 間隔である [BeginKey, EndKey) の範囲があります。シャードの範囲は重複せず、MD5 範囲全体 [00000000000000000000000000000000, ffffffffffffffffffffffffffffffff) の一部です。Logstore または MetricStore を作成し、シャードの数を指定すると、Simple Log Service は MD5 範囲全体をシャード間で均等に分割します。
BeginKey: シャード範囲の開始。この値は範囲に含まれます。
EndKey: シャード範囲の終了。この値は範囲に含まれません。
たとえば、Logstore A には 4 つのシャードが含まれています。シャードの範囲は次の表にリストされています。
表 1. シャード範囲
シャード ID | 範囲 |
Shard0 | [00000000000000000000000000000000,40000000000000000000000000000000) |
Shard1 | [40000000000000000000000000000000,80000000000000000000000000000000) |
Shard2 | [80000000000000000000000000000000,c0000000000000000000000000000000) |
Shard3 | [c0000000000000000000000000000000,ffffffffffffffffffffffffffffffff) |
シャードからデータを読み取るには、シャード ID を指定する必要があります。データを書き込むときは、負荷分散モードまたは指定ハッシュキーモードのいずれかを使用できます。
負荷分散モード: 各データパケットは、利用可能なシャードにランダムに書き込まれます。
書き込みトラフィックが単一シャードのサービスキャパシティより大きい場合は、負荷分散モードを使用できます。
指定ハッシュキーモード: MD5 キーを指定できます。データは、その範囲にキーが含まれるシャードに書き込まれます。
たとえば、「シャード範囲」に示すように、MD5 キー値が 5F のデータを書き込むと、その範囲に 5F が含まれているため、データは Shard1 に書き込まれます。MD5 キー値が 8C のデータを書き込むと、その範囲に 8C が含まれているため、データは Shard2 に書き込まれます。
シャードの読み取り/書き込み能力
各シャードは、特定のサービスキャパシティを提供します。詳細については、「データの読み取りと書き込み」をご参照ください。
実際のデータトラフィックに基づいてシャードの数を計画する必要があります。データトラフィックが読み取り/書き込みキャパシティを超えた場合は、シャードを分割して数を増やし、より高い読み取り/書き込みキャパシティを実現する必要があります。データトラフィックがシャードの最大読み取り/書き込みキャパシティをはるかに下回る場合は、シャードをマージして数を減らし、アクティブなシャードの課金コストを削減する必要があります。
データを書き込む API が継続的に 403 または 500 エラーを返す場合は、Cloud Monitor で Logstore のトラフィックとステータスコードを確認して、シャードの数を増やす必要があるかどうかを判断します。
読み取りまたは書き込み操作がシャードのサービスキャパシティを超えた場合、Simple Log Service はベストエフォートベースでサービスを提供しますが、サービス品質は保証されません。
シャードのステータス
シャードのステータスには、readwrite と readonly があります。
シャードが作成されると、すべて readwrite 状態になります。分割またはマージ操作の後、元のシャードのステータスは readonly に変わり、readwrite 状態の新しいシャードが作成されます。シャードのステータスは、データの読み取りパフォーマンスには影響しません。readwrite シャードは、データの書き込みパフォーマンスを保証します。readonly シャードは、データ書き込みサービスを提供しません。
分割とマージ
Simple Log Service は、シャードの分割とマージをサポートしています。
分割操作では、1 つのシャードが 2 つの新しいシャードに分割されます。2 つの新しいシャードは readwrite 状態です。それらは元のシャードの後に配置され、それらの結合された MD5 範囲は元のシャードの MD5 範囲をカバーします。
シャードを分割するときは、readwrite 状態のシャードを指定する必要があります。分割後、元のシャードのステータスは readwrite から readonly に変わります。このシャード内のデータは引き続き読み取ることができますが、新しいデータを書き込むことはできません。
マージ操作では、2 つの隣接するシャードが 1 つの新しいシャードに結合されます。新しいシャードは readwrite 状態です。それは元のシャードの後に配置され、その MD5 範囲は 2 つの元のシャードの MD5 範囲をカバーします。
シャードをマージするときは、配置の最後ではない readwrite シャードを指定する必要があります。Simple Log Service は、指定されたシャードの右側に隣接するシャードを自動的に見つけてマージします。マージ後、2 つの元のシャードのステータスは readwrite から readonly に変わります。これらのシャード内のデータは引き続き読み取ることができますが、新しいデータを書き込むことはできません。
シャードの分割
サービストラフィックに基づいてシャードの数を計画する必要があります。各シャードは、5 MB/s の書き込み速度または 500 回/秒の書き込み、および 10 MB/s の読み取り速度または 100 回/秒の読み取りをサポートします。これらはハードリミットではありません。制限を超えた場合、システムはベストエフォートベースでサービスを提供しますが、サービス品質は保証されません。データの読み取り/書き込みトラフィックがシャードのキャパシティを超えた場合は、シャードを分割してシャードの数を増やし、より高い読み取り/書き込みキャパシティを実現する必要があります。
データを書き込む API が継続的に 403 または 500 エラーを返す場合は、Cloud Monitor で Logstore のトラフィックとステータスコードを確認して、シャードの数を増やす必要があるかどうかを判断します。
コンソール操作
Simple Log Service コンソールにログインします。
[Projects] セクションで、目的のプロジェクトをクリックします。

[Log Storage] アイコンをクリックします。[Logstores] リストで、宛先の Logstore にカーソルを合わせ、 を選択します。[Logstore のプロパティ] ページで、[変更] をクリックします。
分割するシャードを選択し、[分割] をクリックします。
重要readwrite 状態のシャードのみを分割できます。

新しいシャードの数を選択し、[OK] をクリックします。
[保存] をクリックします。
シャードの表示
コンソール操作
Simple Log Service コンソールにログインします。
[Projects] セクションで、目的のプロジェクトをクリックします。

[Log Storage] アイコンをクリックします。[Logstores] リストで、宛先の Logstore にカーソルを合わせ、 を選択します。[Logstore のプロパティ] ページで、現在の Logstore のシャードリストを表示できます。

シャードの自動分割
Simple Log Service は、予期しないサービストラフィックの増加に対応するために、シャードの自動分割をサポートしています。シャードは、次のすべての条件が満たされた場合にのみ自動的に分割されます。
[シャードの自動分割] スイッチがオンになっている。
書き込みスループットが、現在のシャードの 書き込みサービスキャパシティ を 5 分以上超えている。
Logstore 内の readwrite シャードの数が、指定されたシャードの最大合計数を超えていない。
過去 15 分以内に分割によって作成された新しいシャードは、自動的に分割されません。
Logstore を作成または変更するときに、シャードの自動分割を有効にし、シャードの最大数を設定できます。
シャードの自動分割
たとえば、Logstore に 4 つのシャードがある場合、Simple Log Service は各シャードが分割条件を満たしているかどうかを個別に判断します。条件を満たすシャードは分割されます。分割後のシャードの合計数は、設定した最大数を超えません。
最大シャード数
自動分割後のシャードの最大合計数。シャードの自動分割を有効にすると、Logstore は最大 256 個の readwrite シャードに分割できます。
シャードのマージ
読み取り/書き込みトラフィックがシャードの最大読み取り/書き込みキャパシティをはるかに下回る場合は、シャードをマージして数を減らし、アクティブなシャードの課金コストを削減できます。Simple Log Service は、指定されたシャードの右側に隣接するシャードを見つけてマージします。シャードは手動でのみマージでき、自動的にマージすることはできません。
シャードをマージするときは、readwrite シャードを指定する必要があります。このシャードは、最後の readwrite シャードにすることはできません。
[Log Storage] アイコンをクリックします。[Logstores] リストで、宛先の Logstore にカーソルを合わせ、 を選択します。[Logstore のプロパティ] ページで、[変更] をクリックします。
マージするシャードを選択し、[マージ] をクリックします。

[保存] をクリックします。
マージが完了すると、指定されたシャードとその右側の隣接シャードのステータスが readonly に変わります。新しい readwrite シャードが作成されます。新しいシャードの MD5 範囲は、2 つの元のシャードの範囲をカバーします。
シャードの削除
シャードを削除すると、復元できません。操作には注意が必要です。
自動削除
Logstore を作成するときにデータ保持期間を設定した場合、シャードとその中のデータは保持期間が終了すると自動的に削除されます。
手動削除
Logstore を作成するときに [永続ストレージ] をオンにした場合は、Logstore 自体を削除して、Logstore 内のシャードとデータを削除することをお勧めします。詳細については、「課金の停止または Logstore の削除」をご参照ください。
シャード API 操作
操作 | インターフェイス |
シャードの分割 | |
シャードのマージ | |
シャードのクエリ |
> [変更]