
皆さんSREという言葉はご存知でしょうか?
耳にしたことはあるけど、実際何をするのか知らないという方が多いのではないでしょうか。
この7月よりSREチームを立ち上げることになりましたので、今回はSREについて書いてみたいと思います。
概要
SREとは、Site Reliability Engineering の略で、信頼性の高いサービス運用を実現するためのエンジニアリング手法です。Googleが提唱した概念で、ソフトウェアエンジニアリングのアプローチを使って、運用業務(Ops)を効率化・自動化し、システムの可用性・スケーラビリティ・パフォーマンスを向上させることを目的としています。
目的
①サービスの信頼性向上
②信頼性(Reliability)を定量的に測定・管理する
サービスの信頼性向上
可用性の確保
提供しているWEBサービスが、24時間365日アクセス可能であるように設計・監視を行い「稼働率99.9%」などの目標を設定します。
スケーラビリティの確保
サービス性能を劣化させないようにオートスケーリングや負荷分散などを行います。
障害の予防と迅速な復旧
障害を未然に防ぐために、監視・アラート・自動復旧の仕組みを整備します。
パフォーマンスの最適化
サービスのレスポンス速度や処理能力を継続的に改善します。
また、メトリクス(例:レイテンシ、CPU使用率)を監視し、ボトルネックを特定し解消します。
信頼性(Reliability)を定量的に測定・管理する
サービスの安定性や品質を数値で把握し、目標に対してどれだけ達成できているかを管理することです。SREでは、以下の3つの指標を使ってこれを実現します。
SLI(Service Level Indicator)
サービスの状態を示す定量的な指標です。レイテンシ(応答時間)、エラーレート(失敗したリクエストの割合)、スループット(処理件数)、システムの稼働率(アップタイム)があり、
これらのSLIを継続的にモニタリングすることで、サービスの実際の信頼性を把握できます。
SLO(Service Level Objective)
SLIに対して設定する目標値です。これは信頼性の「目標ライン」であり、これを達成できているかどうかでサービスの健全性を評価します。例えば、「月間のエラーレートが0.1%未満」などがあげられます。
SLA(Service Level Agreement)
顧客との契約上のサービスレベルです。SLOをベースにして、達成できなかった場合のペナルティ(返金など)を定めることがあり、ビジネス的な観点での信頼性管理です。
SREチームでの取り組み
私のSREチームでは、「可用性強化」として以下に取り組んでいます。
可用性強化
可用性強化として取り組んでいるものは、「死活監視」「外形監視」「CPU使用率」「メモリ使用率」となります。
死活監視
システムやサービスが「生きている(正常に動作している)」か、「死んでいる(停止・異常)」かを定期的に確認する監視手法です。この死活監視は、異常をすぐに検知して迅速に対応したり、障害が発生しても早期復旧につなげたりすることを目的としています。
外形監視
サービスを外部から利用者の視点で監視する手法です。死活監視の一種ですが、よりユーザー体験に近い形でサービスの状態を確認することが特徴となります。Webサーバーは動いているが、ページが表示されないなど内部監視では検知できない障害を発見することを目的としています。
CPU使用率・メモリ使用率の監視
システムのパフォーマンスと安定性を維持するための重要な監視項目となります。これらを継続的に監視することで、リソース不足や異常な動作を早期に検知し、障害の予防や迅速な対応が可能になります。
まとめ
SREの役割が少しでも伝わりましたでしょうか?
一般のエンジニアとは業務内容が異なり、経験がある人も少ない分野だと思います。情報もそれほど多いわけではありませんので、これからの経験を大事にして何かあれば記事に残していきたいと思います。この内容が少しでも誰かの役に立てたら幸いです。
KENTEMでは、様々な拠点でエンジニアを大募集しています!
建設×ITにご興味頂いた方は、是非下記のリンクからご応募ください。
recruit.kentem.jp
career.kentem.jp
元の記事を確認する