問題
問61
SRE (Site Reliability Engineering) のアプローチに関する説明として、最も適切なものはどれか。
- 手作業による運用業務を重視し、属人化されたスキルによってシステムの信頼性を高める。
- システムの信頼性を100%にすることを目標とし、いかなる障害も許容しない。
- サービスの信頼性目標(SLO)を設定し、エラーバジェットの範囲内で新機能のリリースと安定運用のバランスをとる。
- 開発チームと運用チームを分離し、それぞれの専門性を高めることで全体の効率を向上させる。
正解
正解は「ウ」です。
解説
正解は「ウ」です。SRE(サイト信頼性エンジニアリング)は、Googleが提唱したシステム管理とサービス運用の考え方です。SREの大きな特徴は、サービスの信頼性を客観的な指標で管理することにあります。まず、SLO(Service Level Objective:サービスレベル目標)として、具体的な信頼性の目標値(例:稼働率99.95%)を設定します。100%の信頼性は現実的ではなくコストもかかりすぎるため、ある程度の障害は許容します。
この許容できる障害の範囲を「エラーバジェット」と呼びます。そして、このエラーバジェットが残っている間は、新機能のリリースなど、リスクを伴うがビジネスの成長に必要な活動を積極的に行います。逆に、エラーバジェットを使い切ってしまったら、新機能のリリースを停止し、システムの信頼性向上に専念します。このように、データに基づいて開発のスピードとシステムの安定性のバランスを取るのがSREの核心的なアプローチです。
ア(手作業による運用業務を重視し…):
SREは手作業を減らし、自動化を推進するアプローチであり、説明が逆です。
イ(システムの信頼性を100%にする…):
SREは100%の信頼性を目指すのではなく、適切な目標(SLO)を設定し、ある程度の障害を許容します。
エ(開発チームと運用チームを分離し…):
SREはDevOpsの考え方を汲んでおり、開発と運用の連携・協力を重視します。分離するのは逆のアプローチです。
解法のポイント
SREに関する問題のキーワードは、「SLO(サービスレベル目標)」と「エラーバジェット」です。この2つの用語はSREの考え方の根幹をなすものです。「信頼性を具体的な数値目標(SLO)で管理する」「100%を目指すのではなく、許容できるエラーの量(エラーバジェット)を決め、その範囲内で開発速度と安定性のバランスをとる」という点を押さえておけば、SREに関する問題には対応できます。また、SREがDevOpsと関連が深く、自動化や開発と運用の協力を重視することも覚えておきましょう。
用語補足
SRE (Site Reliability Engineering):
サイト信頼性エンジニアリングのこと。ソフトウェアエンジニアリングの技術をシステム運用に応用し、信頼性の高いサービスを効率的に提供するためのアプローチです。
SLO (Service Level Objective):
サービスレベル目標のこと。サービスの信頼性に関する具体的な目標値です。例えば、「月間稼働率99.95%」や「リクエストの99%を500ミリ秒以内に処理する」などと設定します。
エラーバジェット (Error Budget):
「許容されるエラーの予算」のことです。SLOが99.9%の場合、残りの0.1%がエラーバジェットとなり、この範囲内でのサービス停止や性能低下は許容されます。
DevOps:
開発(Development)と運用(Operations)が協力し合うことで、ソフトウェアのリリースサイクルを迅速化し、品質を向上させるという考え方や文化のことです。


