本文へ移動

ホーム / SRE / 第1部 SREとは

第1部 SREとは・第1章

SREとは(仕事・歴史・向いている人)

★★★ 必須10トピック・面接 4問

SRE(Site Reliability Engineering/サイト信頼性エンジニアリング)は、サービスの信頼性を、手作業の運用ではなくソフトウェアエンジニアリングで実現する考え方と職種です。この章では、SRE が何をする仕事なのか、どこから生まれたのか、どんな人に向いているのかを押さえます。技術の詳細は第2部以降、面接対策は第6部にまとめています。

1.1SRE とは

用語★★★ 必須
ひとことで

サービスの信頼性を、手作業の運用ではなくソフトウェアエンジニアリング(測定・自動化・設計)で実現する考え方と職種。

Google で SRE チームを立ち上げた Ben Treynor Sloss は、SRE を「ソフトウェアエンジニアに運用チームの設計を任せたら起きること」と説明しています。運用を人の頑張りで支えるのではなく、コード・自動化・データで回るようにするのが SRE です。

考え方内容よくある誤解
信頼性は機能の1つユーザーにとって「使えない」は最大のバグ。信頼性を測り、目標を決め、改善する「落ちないようにする係」ではない
100% を目指さない目標(SLO)を決め、余り(エラーバジェット)の範囲で新機能のリリースを攻める「とにかく止めない」は変化を止めてしまう
手作業(トイル)を減らすくり返しの手作業は自動化し、仕事時間の半分以上をエンジニアリングに使う運用=手順書どおりに作業すること、ではない
データで判断するメトリクス・SLO・ポストモーテムで、感覚ではなく事実で決める「経験と勘」だけで判断しない

面接ではこう答える

SRE は、サービスの信頼性をソフトウェアエンジニアリングで支える役割です。SLO で信頼性の目標を開発と合意し、エラーバジェットの範囲でリリースのスピードと安定性のバランスを取ります。障害対応だけでなく、監視・自動化・キャパシティ計画を通じて、サービスを安心して変更し続けられる状態を作るのが仕事だと考えています。

1.2SRE の歴史

★★☆ 重要
年出来事意味
2003年Google で Ben Treynor Sloss が SRE チームを作る運用をソフトウェアエンジニアが担う形の始まり
2009年DevOpsDays(ベルギー)、Flickr の「1日10回以上デプロイ」の発表開発と運用の壁をなくす DevOps の流れが広がる
2014年USENIX の SREcon が始まるSRE が Google の外にも広がり、知見の共有が進む
2016年書籍『Site Reliability Engineering』(いわゆる SRE 本)SLO・エラーバジェット・トイル・ポストモーテムが共通語に(邦訳は2017年、Web で無料公開)
2018年『The Site Reliability Workbook』、「class SRE implements interface DevOps」SRE は DevOps を実践する具体的なやり方の1つ、という位置づけ
2010年代後半〜国内の Web 企業でも SRE チームが増える。SRE NEXT(2020年〜)などのコミュニティクラウド・コンテナ・Kubernetes の普及で、仕組みで運用する必要性が高まった
2020年代プラットフォームエンジニアリング、オブザーバビリティ、FinOps、AI の活用開発者が自分で安全に運べる「道」を作る方向へ

→ SLO・エラーバジェット・ポストモーテムは第2章で詳しく

1.3SRE の仕事内容

★★★ 必須
仕事具体的にはこのサイトの章
信頼性の目標を決めるSLI を選び SLO を合意、エラーバジェットの使い方を決めるSRE概念・監視
監視・オブザーバビリティメトリクス・ログ・トレース、アラートの設計(気づけるが鳴りすぎない)SRE概念・監視
インシデント対応・オンコール障害の切り分けと復旧、役割分担、ポストモーテムで再発防止Linux・障害対応の演習
リリース・デプロイの仕組みCI/CD、カナリア・ブルーグリーン、ロールバック、Feature Flagインフラ設計
キャパシティ・性能負荷の予測、オートスケール、ボトルネックの調査パフォーマンス
インフラ・プラットフォームIaC(Terraform)、Kubernetes、開発者が使う基盤づくりインフラ設計
トイルの削減・自動化くり返し作業をツール化し、仕事時間の半分以上をエンジニアリングにSRE概念・監視
コスト・セキュリティクラウド費用の最適化、脆弱性対応・権限管理を開発やセキュリティと協力コスト管理・セキュリティ

ある1週間の例:

曜日内容
月SLO のレビュー(先週のエラーバジェットの消費)、アラートの棚卸し
火新サービスの本番投入レビュー(監視・ロールバック手順・負荷試験の確認)
水手作業の証明書更新を自動化するコードを書く(トイル削減)
木オンコール中に起きた障害のポストモーテムを書き、再発防止のチケットを切る
金Terraform のモジュール改善、来四半期のキャパシティ計画
ひとことで

信頼性を上げるという目的は同じでも、SRE に任される範囲(インフラ・運用・アプリ・基盤づくり)は会社によって大きく違う。

「サービスの信頼性を上げる」という目的は、どの会社の SRE でも同じです。ただ、SRE に何を任せるか・仕事の範囲がどこまでかは会社によって大きく違います。同じ「SRE」という肩書きでも、ほぼインフラエンジニアの仕事のこともあれば、アプリのコードを直して性能を上げる仕事が中心のこともあります。

目的はどこでも同じ:サービスの信頼性を上げるSLO・監視・自動化・障害対応・再発防止インフラ・基盤寄りクラウド・KubernetesIaC・ネットワーク基盤の構築と運用運用・障害対応寄り監視・オンコール障害対応・ポストモーテムキャパシティ・コスト開発寄りアプリの性能改善DB・キャッシュの設計リリースの仕組み仕組み・文化寄りSLO を全社に広める開発者向けの基盤ツール・ガードレール実際はこれらの組み合わせ。どこに重心があるかは会社・チームによって違う
SRE の目的は共通だが、仕事の重心は会社によって違う
会社・組織の状況SRE に求められがちなことよくある姿
スタートアップ・SRE が1〜数人インフラ全般・CI/CD・監視・障害対応・コストまで、なんでも「インフラまわりの担当者」に近い。範囲は広く、仕組みを一から作れる
サービスが伸びて障害が増えてきた監視・アラートの整備、オンコール体制、ポストモーテムの文化づくり運用・障害対応が中心。まず「気づける・戻せる」状態を作る
性能・DB がボトルネックの会社遅いクエリ・キャッシュ・アプリの改修、負荷試験バックエンド開発に近い。アプリのコードを読んで直す
大きな会社・サービスが多い共通基盤(Kubernetes・デプロイ・監視)、SLO の全社展開、ガードレールプラットフォームチームに近い。開発チームが自分で運用できる仕組みを作る
規制のある業界(金融・医療など)可用性の設計、DR、監査に耐える変更管理・権限管理手順・証跡を重視。セキュリティや監査の担当と一緒に動く

応募・配属のときに確かめること

  • SRE は何人で、どのサービス・どの範囲(インフラ・アプリ・DB)を見ているか
  • オンコールはあるか、回数と体制は
  • SLO は決まっているか、エラーバジェットで判断しているか
  • アプリのコードを触るか、インフラのコード(IaC)が中心か
  • チームの形(SRE チームの形のどれに近いか)

求人票の「SRE」だけで仕事を決めつけず、面接の逆質問で「1週間の仕事」「最近いちばん時間を使ったこと」を聞くと、実際の重心が分かります。

面接ではこう答える

SRE の目的はどの会社でも「サービスの信頼性を上げること」ですが、担当する範囲は会社によってかなり違います。人数の少ない会社ではインフラ全般から障害対応まで幅広く持ち、大きな会社では共通基盤や SLO の全社展開を担うことが多いです。性能が課題の会社では、アプリや DB を直す開発に近い仕事が中心になります。なので応募先では、SRE の人数・担当範囲・オンコールの有無を確かめるようにしています。

ひとことで

DevOps は開発と運用の壁をなくす考え方、SRE はそれを SLO・エラーバジェット・トイル削減という具体的な仕組みで実践するやり方。

SREインフラエンジニア(従来の運用)プラットフォームエンジニア
目的サービスの信頼性を目標どおりに保つサーバー・ネットワークを安定して動かす開発者が速く安全に作れる基盤を提供する
主なやり方SLO・自動化・ソフトウェア開発構築・保守・手順書内部プラットフォーム(IDP)・ゴールデンパス
開発との関係エラーバジェットで速さと安定のバランスを合意依頼を受けて作業することが多い開発者を「お客さん」として製品を作る
測るものSLO の達成・エラーバジェット・MTTR稼働率・作業量開発者の生産性・満足度

DevOps は「開発と運用の壁をなくす」文化・考え方、SRE はそれを SLO・エラーバジェット・トイルの上限などの具体的なルールで実践するやり方、と整理するとわかりやすいです。会社によって呼び方と範囲は大きく違うので、求人では仕事内容を確かめます。

面接ではこう答える

DevOps は開発と運用が協力して価値を早く届ける文化や考え方で、SRE はそれを実践する具体的な方法の1つです。SRE は SLO とエラーバジェットで信頼性を数値で合意し、トイルに上限を設けて自動化を進めるなど、明確なルールを持っている点が特徴です。

1.6SRE チームの形

★☆☆ 発展
形内容向いている状況
何でもやる(Kitchen Sink)1つの SRE チームがすべてのサービスを見るSRE を始めたばかりの小さな会社
インフラ担当共通の基盤(Kubernetes・ネットワーク)を担当サービスが多く、基盤を共通化したい
ツール担当監視・デプロイなどの社内ツールを作る開発者の作業を仕組みで楽にしたい
プロダクト担当特定の重要なサービスに張り付く売上に直結する大きなサービス
埋め込み(Embedded)開発チームの中に SRE が入る開発チームに信頼性の文化を根付かせたい
コンサルティング相談役として各チームを支援するSRE の人数が少なく、広く支えたい

Google Cloud のブログで紹介された6つの形です。実際は組み合わせることが多く、面接では「応募先がどの形か」を聞くと仕事のイメージがつかみやすくなります。

向いている特徴SRE の仕事でどう活きるか伸ばし方
仕組みで解決したくなる同じ作業を2回やったら自動化を考える小さなスクリプトから自動化してみる
「なぜ?」を掘り下げるのが好き障害の根本原因・ボトルネックを突き止めるLinux ラボ・障害対応の演習で切り分けの型を身につける
落ち着いて状況を整理できる障害対応で、焦らず事実を集めて判断・共有するインシデントの役割(指揮・連絡・作業)を知る
広く浅く+どこか深くアプリ・DB・ネットワーク・クラウドをまたいで原因を追うこのサイトで全体を見て、得意分野を1つ深める
人と合意を作れるSLO やリリースの判断を開発・ビジネスと話し合う数字(SLO・コスト)で話す練習をする
責めない文化を大事にできるポストモーテムで「誰が」ではなく「なぜ・どう防ぐか」を考える過去の失敗を仕組みの問題として書き直してみる

逆に「決まった作業を確実にこなすのが好き」「1つの技術だけを深く極めたい」人は、運用のくり返しや範囲の広さを負担に感じることがあります。オンコール(夜間・休日の呼び出し)がある職場も多いので、体制や回数も確かめておきます。

段階期待されること目安
入門Linux・ネットワーク・クラウドの基礎、監視の見方、手順に沿った障害対応第3部の基礎、Linux ラボ
一人前SLO の設計、アラートの改善、IaC、障害の切り分けと再発防止を一人で回す第2部・第5部、障害対応の演習
シニア信頼性の設計(冗長化・DR)、キャパシティ計画、チームをまたぐ改善のリードシステム設計、第6部
その先アーキテクト、プラットフォーム/SRE のマネージャー、セキュリティ・FinOps の専門家

SRE になる道は、インフラ・運用エンジニアから(自動化・ソフトウェアを伸ばす)と、バックエンドエンジニアから(インフラ・運用を伸ばす)の2つが多いです。どちらから来ても、コードを書いて運用を楽にした経験が強みになります。

→ アプリ出身とインフラ出身で、得意なことと伸ばすことの違い

→ 職種ごとの深さ(ホームの表)で、他の職種との違いも見られます

ひとことで

SRE はアプリケーションエンジニア出身とインフラエンジニア出身が多く、得意なことと最初に伸ばすことが違う。

SRE になる人は、アプリケーションエンジニア(バックエンドなど)出身と、インフラエンジニア(サーバー・ネットワーク・運用)出身が多いです。目指すところは同じでも、出発点が違うので、得意なことと最初に伸ばすことが違います。

アプリケーションエンジニア出身インフラエンジニア出身
得意コードを書く・読む、アプリの中の動き(DB の使い方・キャッシュ・N+1)、テストと CILinux・ネットワーク・クラウドの仕組み、障害の切り分け、運用の手順と勘所
活きる遅いクエリやアプリ起因の障害の調査、自動化ツールの開発、開発チームとの会話基盤の設計・構築、ネットワークや OS 起因の障害、キャパシティ・コストの見積もり
伸ばすLinux・ネットワーク・DNS・TLS の基礎、クラウドと IaC、監視とオンコールプログラミング(Go・Python など)、コードレビュー、アプリの仕組み(HTTP・DB・キャッシュ)
つまずき「サーバーの中で何が起きているか」が見えず、OS・ネットワークの障害で手が止まる手作業で直して終わりにしがち。仕組み(コード)で再発を防ぐ発想に切り替える
先に読むLinux・ネットワーク・インフラ設計データベース・アプリ設計・パフォーマンス

どちらが有利ということはなく、足りない側を埋めて「アプリからインフラまでを通して原因を追える」状態を目指すのは同じです。チームとしては両方の出身者がいると、障害の切り分けや設計レビューで死角が減ります。

面接では「自分はどちら出身で、何が強みか・何を伸ばしているか」を一言で言えるようにしておくと、応募先の SRE の重心(会社によって違う SRE の仕事)と結び付けて話せます。

面接ではこう答える

SRE にはアプリケーションエンジニア出身とインフラエンジニア出身の人が多く、出発点によって得意分野が違います。アプリ出身はコードやアプリの中の動きに強く、インフラ出身は OS・ネットワーク・障害の切り分けに強いです。どちらも、足りない側を埋めてアプリからインフラまで通して原因を追えるようになるのがゴールです。例えば私はバックエンド出身なので、アプリや DB の調査を強みにしつつ、Linux とネットワークの切り分けを伸ばしています。

順番読むところ試すところ
1第2部 SRE の考え方(SLO・監視・インシデント)障害対応の演習
2第3部 コンピュータ・Linux・ネットワーク・WebLinux ラボ・動くネットワーク図
3第4部 データベース・アプリ設計DBラボ
4第5部 インフラ・セキュリティ・性能・コスト
5第6部 面接の実践(面接の流れと答え方・システム設計・経験面接)各章末の「面接ではこう聞かれる」

各章の終わりには、まとめ・クイズ・面接の質問があります。クイズで間違えた問題は「今日の復習」で間隔を空けて出し直されます。

この章のまとめ

🖨 まとめシート(印刷・PDF)
  • SRE は「信頼性」をソフトウェアエンジニアリングで実現する仕事。運用を手作業ではなく仕組みと自動化で回す
  • 信頼性は100%を目指さず、SLO とエラーバジェットで「どこまで攻めてよいか」を開発と合意する
  • 障害対応だけでなく、監視・リリース・キャパシティ・コスト・トイル削減まで、サービスを安心して変えられる状態を作る
  • SRE とは:サービスの信頼性を、手作業の運用ではなくソフトウェアエンジニアリング(測定・自動化・設計)で実現する考え方と職種。
  • 会社によって違う SRE の仕事:信頼性を上げるという目的は同じでも、SRE に任される範囲(インフラ・運用・アプリ・基盤づくり)は会社によって大きく違う。
  • DevOps・インフラ・プラットフォームとの違い:DevOps は開発と運用の壁をなくす考え方、SRE はそれを SLO・エラーバジェット・トイル削減という具体的な仕組みで実践するやり方。
  • アプリ出身とインフラ出身の SRE:SRE はアプリケーションエンジニア出身とインフラエンジニア出身が多く、得意なことと最初に伸ばすことが違う。

この章のクイズ

面接ではこう聞かれる

まず答えを見ずに声に出して答え、そのあと開いて比べる。

Q1SRE とはどんな仕事だと考えていますか?

模範回答

サービスの信頼性を、ソフトウェアエンジニアリングで支える仕事だと考えています。SLO で信頼性の目標を開発と合意し、エラーバジェットの範囲でリリースのスピードと安定性のバランスを取ります。そのうえで、監視・自動化・キャパシティ計画・障害対応とポストモーテムを通じて、サービスを安心して変え続けられる状態を作ります。

深掘りされたら

  • SLO はどうやって決めますか?
  • トイルを減らした経験はありますか?

見られているポイント「障害対応係」ではなく、信頼性を目標と仕組みで管理する仕事だと説明できるか

Q2DevOps と SRE の違いは何ですか?

模範回答

DevOps は開発と運用の壁をなくして価値を早く届けるための文化・考え方です。SRE はそれを実践する具体的なやり方の1つで、SLO とエラーバジェットで信頼性を数値で合意する、トイルに上限を設けて自動化する、責めないポストモーテムで学ぶ、といった明確なルールを持っています。

深掘りされたら

  • プラットフォームエンジニアリングとの違いは?

見られているポイント考え方(DevOps)と具体的な実践(SRE)の関係

Q3なぜ SRE になりたいのですか?

模範回答

(例)前職で手作業のリリースが原因の障害が続き、デプロイの自動化とロールバックの仕組みを作ったところ、障害も作業時間も大きく減りました。仕組みで信頼性を上げることにやりがいを感じたので、それを専門にしたいと考えています。

深掘りされたら

  • その改善はどうやって効果を測りましたか?
  • オンコールについてはどう考えていますか?

見られているポイント具体的な経験に結びついた動機と、SRE の仕事の理解

Q4あなたはアプリケーションとインフラ、どちらの出身ですか?SRE として何を伸ばしていますか?

模範回答

例えば「バックエンドエンジニアとして3年、API と DB の設計・性能改善をしてきました。強みは、遅いクエリやアプリ起因の障害を、コードと実行計画まで追って直せることです。」と出発点と強みを先に言います。

続けて「一方で OS やネットワーク起因の障害では手が止まることがあったので、Linux の切り分け(top・ss・dmesg)と、Terraform での IaC を伸ばしています。直近では、手作業だったデプロイ手順を CI に移しました。」と、足りない側を具体的な行動で埋めていることを示します。最後に、応募先の SRE の重心(基盤寄りか、アプリ寄りか)と結び付けて、どう貢献できるかを一言添えます。

深掘りされたら

  • 反対側(インフラ/アプリ)の知識で、最近学んで役に立ったことは?
  • この会社の SRE の仕事のうち、最初の3か月で貢献できそうなのはどこですか?

見られているポイント自分の出発点と強みを言えるか。足りない側を具体的な行動で埋めているか。応募先の仕事の重心と結び付けられるか。