要約

Snowflakeはこのたびサービスレベルアグリーメント(SLA)に99.99%のSLA目標を追加いたします。ただし過去のデータによれば、基本的には99.99%基準よりも現行の99.9%基準のほうがお客様にはより有利となるので、既存の99.9%目標も併行して維持します。今回の99.99%目標の追加は、SLAというこの極めて複雑なトピックをできるだけ明確にして競合他社との比較を分かりやすくし、SnowflakeのSLAに関する取り組み姿勢を確かな行動で示すことが狙いです。

背景

Snowflakeのサポートポリシーは、個々のお客様向けSLAを定義しています。この文書(弁護士でない限り読むのが困難な文書ですが)は、お客様単位で評価可能な、Snowflake製品に関する明確で測定可能な指標を規定しています。原則的には、99.9%の確率でクエリエラー率を1%以下に抑えることを保証します。これによりほぼ常に安定したオペレーションを保証しますが、同時に1か月の間に最大43分間のサービス停止期間がある可能性も容認します。

別のデータウェアハウスではこのSLAのパラメーターが異なり、99.99%の確率でエラー率を10%以下としています。この場合は全期間を通してエラー率が比較的高くなりますが(最大10%)、1か月あたりのサービス停止期間は最大4分間に制限されます。

いずれのアプローチでもSLA違反が発生した場合にユーザーに使用量クレジットを提供しますが、私たちは過去数年分データに基づいてお客様から見たSnowflakeの信頼性を数値化し、使用するSLA基準値によってどのような影響があるのかを検証しました。その結果、エラー率1%の基準に基づいて提供するクレジット数は「99.99%の確率でエラー率10%」の基準による場合よりも多くなることが分かりました。私たちはエラー率1%基準を、「できればクエリエラーは1つも起こって欲しくない」というお客様の期待にかなうより厳密な指標であると考えています。

新しいSLA

2022年6月以降、Snowflakeは以下の極めて厳しい2つの基準値に基づくクエリ実行成功率SLAをコミットメントとして掲げます。

  • 99.9%の確率(時間ベース)でエラー率1%未満
  • 99.99%の確率(時間ベース)でエラー率10%未満

これは主に、4~43分間の広範囲にわたる短時間のサービス停止1回で非常に高いエラー率を返した月に、お客様にクレジットを提供することを意味します。このような停止プロファイルは、Snowflakeではめったに起こりません。Snowflakeのデータによると、99.99%の確率で10%のエラー率を許容するSLAのみを採用した場合、その月のお客様のSLAクレジットは40%減少してしまいます。2つのSLAを組み合わせることでお客様が獲得するクレジット数は約24%増加します。現在、ほとんどすべての停止は既存のSLAでカバーされているため、これらは対称的ではありません。今回99.99%目標を追加したのは、停止を回避することの重要性を改めて認識し、優れたサービスの継続のためのSnowflakeとお客様両方にとってのインセンティブを一致させるためです。

信頼性エンジニアのための技術的詳細

今回ご説明した業界標準のSLA基準値は、ユーザーエクスペリエンスにおいては特に優れた指標ではありません。基盤となるサービスレベルインジケーター(SLI)はクエリ実行に焦点を当てており、クライアントライブラリの動作から正しい結果の提供といった、実際のユーザーワークフローの重要なコンポーネントの多くは含まれていません。また、ユーザーがSnowflakeにアクセスして認証を受けられることを暗黙的に前提としています。

現在、Snowflakeではそういった可用性の追加要素の多くを監視しており、社内のサービスレベル目標(SLO)に組み込んでいます。SLOに違反した場合は、それがなぜ、いつユーザーに影響を与えたかについて社内で綿密なエンジニアリング事後分析を行い、それらを外部用に根本原因分析として公開しています。Snowflakeデプロイメントによるこれらの事後分析からデータを集めて、その「可用性」データをコミュニティサイトに公開しています。こうした集計指標は直接SLAクレジットにつながるわけではありませんが、長期的に信頼性が上昇していることを明確化するインサイトの役割を果たします。