- 未経験でもSREエンジニアに転職できる?
- SREエンジニアになるために必要な資格はある?
このようにSREエンジニアを目指すべきかどうか、迷っている方も多いのではないでしょうか?
この記事では、SREエンジニアの仕事内容や将来性についてまとめるとともに、未経験者でも目指せるかどうか詳しく解説していきます。
結論、SREエンジニアの需要は高いですが、実際には経験者を求める企業が多いため未経験者ではハードルが高いのが現状です。
今回は、SREエンジニアになるために未経験者がとるべき行動についても解説しているため、ぜひ参考にしてみてください。
SREエンジニアとは
SREとは
SREとは、Site Reliability Engineeringの略でGoogleが提唱した手法になります。
サイトやサービスの信頼性を高める手法であり、携わるエンジニアのこともSREと呼ぶのが一般的です。
GoogleのSREでは、手作業による業務を最小限にするためにToil(トイル)を少なくする取り組みがされています。
Toilとは、日本語で「苦労」という意味ですが、SREにおいてはビジネスのスピード感を阻害するものとして捉えられます。
手作業による業務を少なくすることで人的エラーを減らし信頼性の高いサイトやサービスを作るのがSREの役割です。
インフラエンジニアとの違い
インフラエンジニアとの違いは以下の通りです。
- インフラエンジニアはシステムのインフラ環境を設計・開発・運用する
- SREはインフラに加え、その他システム開発や運用、自動化など幅広い範囲を担う
SREの業務内容にネットワークやサーバーなどのインフラ関係も含まれますが、システムの自動化やアプリケーションの開発などサービス全体の信頼性向上を図るのが特徴です。
そのため、インフラエンジニアに比べアプリケーションやソフトウェアに関する幅広い知識が必要となります。
業務内容の幅としては、インフラエンジニアの上位互換とも言えるでしょう。
インフラエンジニアの将来性について知りたい方は、こちらをご参照ください。
DevOpsエンジニアとの違い
DevOpsとの違いは以下の通りです。
- DevOpsは、開発担当と運用担当が協力してサービスを作るという考え方
- SREは、DevOpsの考え方を実装した手法やエンジニアのこと
DevOpsとは、Development(開発)とOperations(運用)を掛け合わた造語のことです。
DevOpsは、スピード感を重視し新機能を追加していく「開発担当」と信頼性や安全性を担保して運用する「運用担当」の方向性にズレを生じさせないために生まれた思想のことです。
従来のサービス開発では、開発担当と運用担当が分断して業務にあたるのが一般的でしたが、DevOpsの考え方により組織として連携した行動をとることが可能になりました。
価値あるWebサービスを提供するという共通の目的をもって、システム開発や運用にあたるのがSREの役割です。
SREの仕事内容
信頼性の高い価値あるサービスを作るため、仕事内容は多岐にわたります。具体的なSREの仕事内容は以下の通りです。
- 安定した環境整備
- 開発チーム向けの仕組みやツールの提供
- 障害の探知と対応
- プロダクトの高速リリース
- システムやクラウドの運用と自動化
安定した環境整備
信頼性の高いサービスを作るには安定した環境整備が必要なため、以下の業務を行います。
- OSやミドルウェア、データベースの設定
- ログ収集やログ分析基盤の構築
- モニタリングやアラートなどの開発や整備
- 情報の暗号化やセキュア情報の保護
- 脆弱性の確認
継続してサービスを運用するためには、安定性が高いことが求められます。
システムに不具合が生じた際に、すぐに修正・改善できる環境にしておくことで結果的に信頼性の高いサービスとなるため、運用体制を整えておくことが重要です。
開発チーム向けの仕組みやツールの提供
開発チームに提供したい仕組みやツールとして、以下のものが挙げられます。
- モニタリングツール
- ドキュメント作成
- ログ取得の自動化
SREは開発担当と運用担当の架け橋的存在ですが、開発担当がSREに依存してしまうと「効率的な業務」とは言えなくなるため、自律して開発が行える環境をつくる必要があります。
開発担当と綿密にコミュニケーションをとり、データなどで情報共有を行うなど積極的に働きかけることも重要な役割です。
障害の探知と対応
エラーやバグなど障害の早期探知と対応もSREの仕事の一つです。具体的な対応としては以下の6つが挙げられます。
- システムの仕様変更内容を把握、管理する
- リクエストへの応答時間やエラーの割合などのモニタリング
- サーキットブレイカーの導入
- カナリアリリースの採用
- バグのチェック
- 修正バッチの作成
信頼性を向上させるためには、トラブルを想定した事前準備やエラーやバグが生じた際の早急な対応が重要です。
なぜなら、重大な不具合があった場合、サービスをリリースできなかったり、停止する場合があるからです。
そのため、同じ条件や規模のサービスを用いてバグチェックなどを入念に行う必要があります。
万が一、不具合が生じてしまった場合でもサーキットブレーカーやカナリアリリースなどを導入していればスムーズな対応が可能なため、事前対策は欠かせません。
プロダクトの高速リリース
ビジネスを成功させるためにはプロダクトの高速リリースが重要な要素であるため、効率性を重視した開発・運用が必要です。
開発担当のスピード感をもって業務を進めると、バグなどの不具合を見逃しやすいデメリットはありつつも高速リリースは可能になります。
しかし、不具合が多くてはサービスを利用できるか否かという重大な問題に陥るため、運用担当が安定性の確保をする必要があります。
信頼性の高い、価値あるサービスを提供するためには、SREが開発と運用のバランスをとりながら高速リリースを行うことが重要です。
効率的に業務を進めるためにはSLIやSLO、SLAといった定量的評価を行うと良いでしょう。
- SLI(Service Level Indicator):可用性や性能、セキュリティなどサービスレベルの指標のこと
- SLO(Service Level Objective):SLIの目標値を具体的に数値化したもの
- SLA(Service Level Agreement):顧客との間に結ばれるサービスレベルの保証のこと
システムやクラウドの運用と自動化
システムやクラウドの運用・自動化もSREの重要な仕事です。自動化するメリットは以下の通りです。
- 人的ミスの減少
- 迅速な対応が可能
- 開発効率アップ
- 安定性やパフォーマンスの向上
手作業による業務を減らして業務効率化を図る考えから、システムの自動化を進めていく必要があります。
人的ミスや対応の遅れが生じてしまうと安定したサービス構築はできません。
そのため、「自動解析ツール」や「自動更新ツール」などを利用して開発環境を整えることが重要です。
不具合の対応やタスクの自動化を図ることで開発効率は向上し、結果的にシステムの安定性やパフォーマンス向上に貢献します。
SREに必要な知識やスキル
業務内容が多いため、必要とされる知識やスキルも多くなります。SREに必要な知識やスキルは以下の通りです。
- インフラの知識や技術
- Webアプリケーション開発や運用スキル
- セキュリティへの知識
- クラウドサーバーの知識や構築・運用スキル
- コミュニケーションスキル
- ネットワークやデータベースに関する知識
多くの知識や技術が必要とされるため、一つひとつ解説していきます。
インフラの知識や技術
SREはシステムの開発や運用業務が多いためインフラの知識や技術が必須になります。具体的には以下の項目が挙げられます。
- ネットワークプロトコル
- クラウドサービス
- ミドルウェア
- パフォーマンス改善
インフラはシステムの基盤となるため、深く理解しておくことで業務の最適化が図れます。
Webアプリケーション開発・運用スキル
SREはWebアプリケーションの開発や運用するスキルが求められるため、実務経験がある方のほうが歓迎されます。特に必要とされるスキルは以下の通りです。
- プログラミング言語の知識や技術
- WindowsやLinuxなどのOSスキル
- SQLなどのデータベース言語
バグの修正や自動化ツールへの置き換えなどを行うため、プログラミング言語の深い理解が求められます。
とくに、PHPやPython、JavaScriptやRubyなどサーバーサイドで代表的な言語について理解しておくと良いでしょう。
プログラミング言語の学習方法について知りたい方はこちらを参考にしてみてください。
セキュリティへの知識
サービスの保守はSREの業務ではありませんが、信頼性の高いサービスを提供する以上、セキュリティに関する知識も必要となります。
- サイバー攻撃
- 情報漏えい
上記トラブルの防止やAPIを安全に使用するために、セキュリティに関する基本的な知識を身に着けましょう。
問題が起きた際に迅速な対応ができるよう、事前準備しておくことが重要です。
クラウドサーバーの知識や構築・運用スキル
多くの企業がサーバーをクラウドに移行しているため、クラウドサーバーに関する知識や構築・運用スキルが必要となります。
代表的なクラウドサーバーは以下の通りです。
- AWS(Amazon Web Services)
- GCP(Google Cloud Platform)
- Microsoft Azure
クラウドサーバーの構築や運用を行うことでサービスの質や信頼度向上が図れます。
AWSやGCPの実務経験を必要とする企業もあるため、積極的に知識を深めていくと良いでしょう。
コミュニケーションスキル
チームとして連携をとることが重要なのでコミュニケーションスキルは必須と言えます。
SREに限らずエンジニアは単独で動くことが少ないため、情報共有や問題解決のために頻繁にコミュニケーションをとる必要があります。
開発側と運用側の意見をまとめることもSREの重大な役割とも言えるため、問題解決能力も必要でしょう。
SREの平均年収
SREは比較的新しい職種です。まだSREを採用している企業も少ないです。
平均年収は公表されていないため、近い業種の平均年収を参考にしてみましょう。
- 高度SE・ITエンジニアは約780万円
- IT技術スペシャリストは約760万円
- プログラマーは約570万円
約500万円〜800万円が平均年収となりますが、経験者を採用することが多いためポジションによっては年収1,000万円を越えることもあります。
特にSREは高度な知識を必要としますので、
開発経験があり年収アップを狙っていきたい方におすすめですが、初心者の方にはハードルが高いため向いていないと言えるでしょう。
SREの市場価値は高い
結論、SREの市場価値は高く、多くの企業で重要性が認識されつつあります。
企業活動を行う上では安定的なサービスや商品開発を行うことが重要なため、信頼性を担保するのにSREが必要です。
万が一、不具合やトラブルにより顧客が不利益を被った場合、企業のイメージダウンに繋がるため信頼性は低下してしまいます。
また、システムの自動化など業務効率化を図れる点でも重宝されます。
人材不足問題を抱えるIT業界では、生産性を上げることが最重要課題といっても過言ではないでしょう。
システム開発や障害対応の自動化をすることで他業務へさける人員確保にも繋がるため、業務効率の改善が期待できます。
しかし、SREのポジションが確立された企業はあまりないため一般的なエンジニアと比べ求人数も少ないのが現状です。
SREのチームや部署がある企業としては、以下の6つが挙げられます。
- メルカリ
- リクルート
- Retty
- クラウドワークス
- サイボウズ
- freee
大手Webサービスでも活躍するほどSREの需要は高まっているため、開発やアプリケーションに関する知識や技術を身に着けておくと良いでしょう。
SREエンジニアに必要な資格
SREとして働くのに資格は必須ではありませんが、開発・運用業務に関わることから十分な知識やスキルが求められます。
とくに実務経験が浅い方や実績がない方は以下の資格を取得しておくと良いでしょう。
- DevOpsプロフェッショナル試験
- LinuC
- シスコ技術者認定試験
- 各種クラウドサービス公式認定資格
DevOpsプロフェッショナル試験
DevOpsプロフェッショナル試験はEXIN社が提供するAWS認定の試験で、DevOpsに関する専門的な知識が問われます。
具体的な出題内容は以下の通りです。
- DevOpsの基本概念
- 遠隔計測
- 自動通信
- 仮説駆動開発
- A/Bテスト
- 情報セキュリティ
合格ラインは正答率65%以上であるため、事前対策をすれば狙えない試験ではないでしょう。
しかし、誰でも受験できる訳ではなく、2年以上の経験をもつDevOpsエンジニアが対象となります。
開発に携わるエンジニアでSREに近い業務を行っている方は挑戦すると良いでしょう。
LinuC
Linux技術者認定試験のLinuC(リナック)もSREとして働くうえで強みとなります。
レベルは全部で3段階あり、レベル3を受けるにはレベル1から順番に合格する必要があります。
それぞれの出題内容は以下の通りです。
- レベル1:仮想環境を含むLinuxサーバーの基本操作や運用管理
- レベル2:仮想環境を含むLinuxシステムの設計やアーキテクチャにもとづいたネットワークの設計・導入・保守
- レベル3:「Mixed Environment」「Security」「Virtualization & High Availability」の3分野
Linuxサーバーの構築やネットワーク設計についての知識を証明できるため、レベル1から挑戦するのがおすすめです。
シスコ技術者認定試験
シスコ技術者認定試験はCisco Systems社の提供する試験でCCNAとCCNPの2つがあり、アプリケーションの開発・運用スキルを有する証明になります。
本来ネットワークエンジニア向けですが、CCNAとCCNPはSREにも深く関連します。
出題内容は以下の通りです。
- APIの理解や活用
- アプリケーション開発
- セキュリティの知識
- インフラストラクチャ
- 自動化とプログラマビリティ
シスコ技術者認定試験にはレベルが5段階あり、CCNAがレベル2、CCNPがレベル3となります。
さらにレベルの高いCisco Certified DevNet Professional認定などの上位資格もあるため余裕のある方は挑戦すると良いでしょう。
Pythonプログラミングを含むソフトウェアの開発経験が1年以上あることが推奨されるため、初心者の方は経験を積んでから受験することをおすすめします。
各種クラウドサービスの公式認定資格
SREは大規模サイトの運用を行うため、クラウドサービスを使いこなせることが重要です。
取得しておきたい各種クラウドサービスの公式認定資格は以下の通りです。
- Amazon社のAWS(Amazon Web Services)
- Microsoft社のAzure
- Google社のGCP(Google Cloud Platform)
推奨レベルや証明できるスキルについてまとめたので参考にしてみてください。
AWS(Amazon Web Services)
AWSはAmazon社が提供するクラウドサービスの認定試験で、「基礎レベル・アソシエイトレベル・プロフェッショナルレベル・専門知識」の4つのレベルがあります。
実務に役立つのはアソシエイトレベル以上で、取得できればAWSを使用したシステムの開発・運用スキルの証明になります。
合格ラインは1000点満点中720点以上となるため、ハードルはやや高めと言えます。
専門的な勉強が必要ですが、AWSに関する知識や技術を必要とする企業も多いため、取得しておくと就職先選びの幅が広がるでしょう。
Azure
AzureはMicrosoft社が提供するクラウドサービスですが、SRE向けの認定試験の一つに「AZ-400: Designing and Implementing Microsoft DevOps Solutions」があります。
DevOpsに関する試験となっているため、取得には以下の知識が求められます。
- セキュリティおよびコンプライアンス計画の策定
- ソースやログの管理
- フィードバック戦略の設計と実装
- セキュリティーとコンプランス計画の作成や継続的デリバリー
- SRE戦略の開発
高度な知識が必要となりますが、SREとして即戦力レベルのスキルを有する証明になるため取得価値は高いと言えます。
GCP(Google Cloud Platform)
Google社の提供するGCP(Google Cloud Platform)認定資格の中では、「Professional Cloud Architect」の取得を目指しましょう。
プロフェッショナルレベルの試験ですが、取得するとクラウドアーキテクチャの実装やセキュリティに対応した設計スキルなどの証明に繋がります。
受験に推奨される条件は、「GCPを使用したソリューションの設計や管理経験1年以上を含む3年以上の業界経験」となっているため、経験が浅い方にはハードルが高いと言えるでしょう。
SREエンジニアは未経験でも転職可能?
SREエンジニアの仕事は、一般的なエンジニアの行う開発・運用業務がベースとなるため未経験から転職するのは難しいと言えます。
SREの需要は高くなっていますが、認知度の低さから一般的なエンジニアと比べて求人数が少ないのも懸念されます。
実際には、信頼性の高いWebサービスをリリースするために実務経験豊富なエンジニアを募集するケースが多いです。
そのため、まずはWeb系エンジニアとしてシステム開発や運用業務に携わり、実務経験を積みながら資格取得などに挑戦するのが良いでしょう。
未経験からWeb系エンジニアへ転職するためのロードマップについてはこちらをご覧ください。
まとめ
以上、SREエンジニアの仕事内容や将来性について解説しました。
- SREエンジニアは、システムの開発や運用業務の効率化を図り信頼性を向上させる
- 市場価値は高いが、求人数は少なく即戦力となる実務経験者を募集するケースが多い
- 未経験者は開発や運用業務の経験を積んでから試験などに挑戦するのがおすすめ
信頼性の高いサービスを作るのに必要なSREエンジニアの需要は高まりつつありますが、即戦力を求めるケースが多いため未経験者から目指すのはハードルが高いと言えます。
そのため、まずはWeb系エンジニアとして経験を積み、徐々にクラウドサービスやアプリケーションに関する知識や技術を習得していくと良いでしょう。
弊社では、開発現場が求めるエンジニアになるためのプログラミングスクール「RUNTEQ」を運営しております。この記事を読んで少しでもプログラミングに興味を持った方は、無料のキャリア相談会へ足を運んでみてくださいね。