Simple Log Service (SLS) は、Logstore、Eventstore、Metricstore の読み取りおよび書き込みスループットを制御するためにシャードを使用します。各データは特定のシャードに格納されます。シャードを分割またはマージすることで、アクティブなシャードの数と総スループットを調整できます。分割は自動化できますが、マージは手動でのみ実行できます。
基本概念
シャード範囲
各シャードは、左閉右開の MD5 ハッシュ範囲 [BeginKey,EndKey) をカバーします。範囲は重複せず、全体で MD5 空間全体 [00000000000000000000000000000000,ffffffffffffffffffffffffffffffff) を網羅します。Logstore または Metricstore を作成すると、SLS は指定されたシャード数で MD5 範囲を均等に分割します。
-
BeginKey: シャード範囲の開始キーです。この値は範囲に含まれます。
-
EndKey: シャード範囲の終了キーです。この値は範囲に含まれません。
たとえば、Logstore A には次の範囲を持つ 4 つのシャードがあります。
表 1. シャード範囲の例
|
シャード ID |
範囲 |
|
シャード 0 |
[00000000000000000000000000000000,40000000000000000000000000000000) |
|
シャード 1 |
[40000000000000000000000000000000,80000000000000000000000000000000) |
|
シャード 2 |
[80000000000000000000000000000000,c0000000000000000000000000000000) |
|
シャード 3 |
[c0000000000000000000000000000000,ffffffffffffffffffffffffffffffff) |
データの読み取りにはシャード ID の指定が必要です。データの書き込みは、次の 2 つのモードをサポートしています。
-
負荷分散モード:各データパケットは、利用可能なシャードにランダムに書き込まれます。
書き込みトラフィックが単一シャードの容量を超える場合に推奨します。
-
ハッシュキールーティングモード:MD5 キーを指定すると、データはそのキーを含む範囲のシャードに書き込まれます。
たとえば、シャード範囲の例に基づくと、MD5 キーが 5F のデータを書き込むと、データはシャード 1 に書き込まれます。キーが 8C の場合は、データはシャード 2 に書き込まれます。
シャードの読み取り/書き込みキャパシティ
各シャードには、データの読み取り/書き込みについて定義されたサービスキャパシティがあります。
実際のデータトラフィックに基づいてシャード数を計画します。トラフィックがキャパシティを超える場合はシャードを分割し、トラフィックがキャパシティを大幅に下回る場合はシャードをマージして、アクティブなシャード数とコストを削減します。
-
書き込み API の呼び出しで 403 または 500 エラーが継続的に返される場合は、Cloud Monitor でトラフィックとステータスコードを確認し、シャードを追加する必要があるかどうかを判断してください。
-
リクエストがシャードのキャパシティを超えた場合、SLS はベストエフォートベースでリクエストを処理しますが、サービス品質は保証されません。
シャードのステータス
シャードのステータスは readwrite または readonly です。
新しいシャードは readwrite 状態で開始されます。分割またはマージ後、元のシャードは readonly になり、新しい readwrite シャードが作成されます。ステータスは読み取りパフォーマンスに影響しません。readwrite シャードは書き込みパフォーマンスを保証しますが、readonly シャードは新しい書き込みを受け付けません。
分割とマージ
SLS はシャードの分割とマージをサポートしています。
-
分割は、1 つのシャードを複数の新しい
readwriteシャードに分割します。新しいシャードは元のシャードの後に配置されます。それらの MD5 範囲を合わせたものは、元のシャードの範囲と同じになります。readwrite状態のシャードのみ分割できます。分割後、元のシャードはreadonlyになります。そのデータは引き続きコンシュームできますが、新しいデータを書き込むことはできません。 -
マージは、隣接する 2 つのシャードを 1 つの新しい
readwriteシャードに結合します。新しいシャードは元のシャードの後に配置されます。その MD5 範囲は、元の 2 つのシャードの範囲を合わせたものになります。シーケンスの最後ではない
readwrite状態のシャードを選択します。SLS は自動的にその右隣のシャードとマージします。元の両方のシャードはreadonlyになります。そのデータは引き続きコンシュームできますが、新しいデータを書き込むことはできません。
シャードの分割
データトラフィックに基づいてシャード数を計画してください。各シャードは、5 MB/s または 500 リクエスト/秒の書き込みスループットと、10 MB/s または 100 リクエスト/秒の読み取りスループットをサポートします。これらは厳密な制限ではありません。超過した場合、システムはベストエフォートでサービスを提供しますが、品質は保証されません。キャパシティを超えた場合は、シャードを分割してください。
書き込み API の呼び出しで 403 または 500 エラーが継続的に返される場合は、Cloud Monitor でトラフィックとステータスコードを確認し、シャードを追加する必要があるかどうかを判断してください。
コンソールでの操作
Log Serviceコンソールにログインします。
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
-
左側メニューで、
[ログストレージ] > [Logstores] を選択します。[Logstores] ページで、対象の Logstore にカーソルを合わせ、 を選択します。 -
Logstore 属性 ページで、変更 をクリックします。
-
分割するシャードを選択し、分割 をクリックします。
重要readwrite状態のシャードのみ分割できます。[シャード管理] ページで、分割する
readwriteシャードを見つけ、[アクション] 列の [分割] をクリックします。 -
表示されるダイアログボックスで、新しいシャードの数を選択し、OK をクリックします。
-
保存 をクリックします。
シャードの表示
コンソールでの操作
Log Serviceコンソールにログインします。
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
-
左側メニューで、
[ログストレージ] > [Logstores] を選択します。[Logstores] ページで、対象の Logstore にカーソルを合わせ、 を選択します。 -
Logstore 属性 ページで、Logstore のシャードリストを表示します。
このページには、[合計シャード数] ([読み取り/書き込み] および [読み取り専用] シャードの数を含む)、および各シャードの [Id]、[ステータス]、[BeginKey/EndKey]、[作成日時] などの詳細が表示されます。
シャードの自動分割
SLS は、次のすべての条件が満たされた場合にシャードを自動的に分割します。
-
[シャードの自動分割] スイッチが有効になっている。
-
シャードへの書き込みトラフィックが 書き込みキャパシティ を 5 分以上超えている。
-
Logstore 内の
readwriteシャードの数が、設定された [最大シャード数] の値を下回っている。
過去 15 分以内に分割によって作成されたシャードは、自動分割の対象にはなりません。
Logstore を作成または変更するときに、シャードの自動分割を有効にし、[最大シャード数] を設定してください。
-
シャードの自動分割
たとえば、4 つのシャードがある場合、SLS は各シャードを個別に評価します。シャードの総数が設定された最大値を超えない限り、条件を満たすシャードを分割します。
-
最大シャード数
自動分割後の合計シャード数の上限。サポートされる最大値:256 個の
readwriteシャード。
シャードのマージ
データトラフィックがシャードのキャパシティを大幅に下回る場合は、シャードをマージしてアクティブなシャード数とコストを削減してください。マージでは、シャードとその右隣のシャードが結合されます。マージは手動でのみ実行できます。
シャードをマージするには、readwrite ステータスであり、シーケンスの最後の readwrite シャードではないシャードを指定する必要があります。
-
左側メニューで、
[ログストレージ] > [Logstores] を選択します。[Logstores] ページで、対象の Logstore にカーソルを合わせ、 を選択します。 -
Logstore 属性 ページで、変更 をクリックします。
-
マージするシャードを選択し、結合 をクリックします。
[シャード管理] ページには、すべてのシャードとその詳細が一覧表示されます。[アクション] 列には、
readwriteシャードに対する [分割] または [マージ] オプションが表示されます。readonlyシャードに対しては、アクションは利用できません。 -
保存 をクリックします。
マージ後、元の 2 つのシャードは
readonlyになります。元の 2 つのシャードの範囲を合わせた MD5 範囲を持つ新しいreadwriteシャードが作成されます。
シャードの削除
削除されたシャードは復元できません。操作は慎重に行ってください。
-
自動削除
Logstore にデータ保持期間を設定した場合、SLS は期間が満了するとシャードとそのデータを自動的に削除します。
-
手動削除
永続ストレージを有効にしている場合は、Logstore 全体を削除して、そのシャードとデータを削除します。課金の停止/Logstore の削除
関連 API
|
アクション |
API |
|
シャードの分割 |
|
|
シャードのマージ |
|
|
シャードの一覧表示 |
> 変更