SREエンジニアの記事2021.04.02
SREエンジニアとは?
仕事内容と求められる役割、必要なスキルを徹底解説
keyword: SREエンジニア とは スキル インフラエンジニア 違い スキル
- ①SREエンジニアとは?役割やインフラエンジニアとの違いを解説
- SREエンジニアはシステム運用を自動化し、効率化や信頼性を高める職種
- SREエンジニアに求められる4つの役割
- インフラエンジニアとの違いを解説 ②SREエンジニアが関わる4つの業務
- システムの開発から運用まで、幅広い業務に関わる
- 安定したシステムの提供と、プロダクトの高速リリースを両立させる
- リリース時に想定されるリスクを洗い出し、対策を取る
- 開発チームに任せる業務を増やす ③SREエンジニアに求められる3つのスキル
- インフラやデータベース、クラウドに関する幅広いスキル
- Webサービスを開発できるスキル
- コミュニケーションスキルも重要
2021.04.02 文章 / PARAFT編集部
SREエンジニアとは?役割やインフラエンジニアとの違いを解説
また類似する職種の「インフラエンジニア」との違いも解説していきます。
【本項の内容】
▼SREエンジニアはシステム運用を自動化し、効率化や信頼性を高める職種
SREエンジニアはシステム管理にソフトウェアの技術やノウハウを導入し、システム運用に要する作業を自動化する技術者です。
SREは「Site Reliability Engineering」の略で、Googleが提唱した考え方。
SREエンジニアはWebサイトの管理で求められる職種であり、インフラ構成をコードとして書き残すなど、手動での作業をできるだけ減らす工夫が行なわれます。
SREエンジニアはシステム運用にも携わりますが、そのミッションは今のシステムをトラブルなく運用することにとどまりません。
効率化を行ない、快適さや信頼性を高めることも重要な役割。
システム運用エンジニアよりも高度なスキルが求められる職種です。
▼SREエンジニアに求められる4つの役割
SREエンジニアに求められる役割には、以下の4つが挙げられます。
いずれも、安定・安心できるシステムを提供するために重要なポイントです。
- サービスの可用性を保ち、安定して稼働させる
- パフォーマンスを向上させ、快適さを提供する
- 可能な限り自動化し、人による判断をなくす
- 変更内容を正確に把握し管理する
小見出しでは、それぞれの役割について解説します。
サービスの可用性を保ち、安定して稼働させる
業務で運用中のサービスが安定して稼働し続けられることは、SREエンジニアに課せられた最も重要な役割の1つ。
トラブルがないことが理想ですが、システムは機械の1つですから、絶対に故障しないとは言い切れません。
そのため冗長構成を取るなど、システムに不具合があっても稼働を続けられる仕組みを考え、実装することが重要です。
またクラウドサービスを活用している場合は非常時でも業務を継続できるよう、異なるリージョンにバックアップシステムを配置するといった工夫も求められます。
パフォーマンスを向上させ、快適さを提供する
より良いサービスを提供することも、SREエンジニアに課せられた役割に挙げられます。
運用中のサービスにボトルネックがないか、また無駄な動作をしていないかチェックした上で、速くて確実な処理を目指しましょう。
そのためには、コードの修正や書き換えの作業が必要です。
またキャッシュを考慮することも、重要なポイント。
これらの努力を積み重ねることで、利用者に快適さを提供できます。
可能な限り自動化し、人による判断をなくす
システムの運用管理において、重要な局面では人による判断や作業が不可欠と思われがちです。
しかしSREでは人による判断や作業を「Toil」、すなわちスピード感をもったビジネスに対する阻害要因として捉えていることは注目すべきポイント。
このためSREエンジニアは作業はもちろん、適切な判断を要する局面でも可能な限り自動化し、できるだけ人手に頼らない運用の実現が求められます。
変更内容を正確に把握し管理する
システムに適用した変更内容をしっかり把握し、管理することも重要な業務の1つです。
いつどの機器やサービスに、何を適用したかを記録しておくことで、その後のトラブルに対して適切な対応を行なえます。
このためSREエンジニアには、インフラ構成や適用した内容をコードとして書き残す「IaC」(Infrastructure as Code)のスキルが必要です。
IaCの活用により、同様の機器やサービスが複数ある場合に簡単に適用できるメリットも見逃せません。
▼インフラエンジニアとの違いを解説
SREエンジニアとインフラエンジニアは、異なる職種です。
インフラエンジニアは、主に以下のどちらかの業務を担います。
- あらかじめ決められた要件定義に基づき、設計や構築を行なう
- 本稼働したシステムに対し、運用管理を行なう
一方でSREエンジニアは、ルールやマニュアルに沿って作業を行なえば良いわけではありません。
自動化などの方法やインフラに関する高度なスキルを活用し、システムの効率化や信頼性の向上を図る役割を担います。
従って「とにかく構築してしまえば、後は知らない」というわけにはいきません。
運用までのフェーズを考慮し、設計することが求められますから、インフラに関するトータルかつ高いスキルが必要です。
SREエンジニアが関わる4つの業務
【本項の内容】
▼システムの開発から運用まで、幅広い業務に関わる
SREエンジニアが携わる業務は、以下の通り幅広いことが特徴です。
- システムの設計・構築
- 監視やトラブル対応などの保守業務
- チューニング業務
- 可用性や拡張性の向上
- 開発に用いるサーバー環境の整備やツールの提供
- 自動化など、開発をしやすくする仕組みづくり
- セキュリティへの対応
上記の通り、システムにおけるあらゆるライフサイクルに関わる業務といえます。
▼安定したシステムの提供と、プロダクトの高速リリースを両立させる
どのシステムも、「安定して動作する」という条件は欠かせません。
一方で開発したプロダクトを迅速に提供することも、重要なポイントです。
両者の要件はしばしば相反するものとなりますが、簡単に「安定が第一だからプロダクトの提供スピードは遅くても仕方がない」と判断してしまうことは良くありません。
SREエンジニアにはシステムの内容を熟知した上で、両者の要求を可能な限り満たす工夫を行なうことも求められます。
▼リリース時に想定されるリスクを洗い出し、対策を取る
どのプロダクトも、リリース時に何らかのトラブルが起こる可能性があります。
だからといって、「リスクがゼロになるまでプロダクトをリリースしない」という判断は不適切。
トラブル発生時の影響を最小限にとどめることも、SREエンジニアに課せられた重要な業務です。
事前にリスクを洗い出した上で、可能な限り対策を取っておきましょう。
一例として、以下のものが挙げられます。
- 事前に本番と同じ環境を用意して、問題が起きないか確認する
- 変更箇所を絞り、複数回に分けてリリースする
- サービスが停止した場合でも、運用を継続できる仕組みを作っておく
- 切り戻す判断基準を明確にしておく
事前に十分な対策を取ることでスムーズな運用につながるとともに、プロダクトや開発会社の信頼も守れます。
▼開発チームに任せる業務を増やす
開発チームにできるだけ多くの業務を任せる仕組みづくりも、SREエンジニアの重要な業務です。
そもそもSREエンジニアに求められるスペックは高いため、人数も限られます。
SREエンジニアが来れば迅速に解決してもらえるからといって、トラブルが起きるたびにSREエンジニアの出番を待つような事態は、可能な限り回避することが重要。
さもなければトラブルに対して迅速に対応できず、深刻な苦情に発展する可能性も否定できません。
トラブルが起きた際に開発チーム内で対応できるように、ツールやドキュメントを用意しておくことが必要です。
ログの取得や分析、監視アラートへの対応方法は代表的な例に挙げられます。
SREエンジニア自身もトラブル対応に追われなくなれば、さらなる高いレベルの仕事に集中できることも見逃せないメリットです。
SREエンジニアに求められる3つのスキル
この役割を担うためには、以下に挙げる3つのスキルが必要です。
- インフラやデータベース、クラウドに関する幅広いスキル
- Webサービスを開発できるスキル
- コミュニケーションスキル
それぞれなぜ必要か、求められるスキルを解説していきましょう。
【本項の内容】
▼インフラやデータベース、クラウドに関する幅広いスキル
SREエンジニアはさまざまな機器やサービスを扱い、システムの設計から運用まで幅広いフェーズに関わります。
このため以下に挙げる、幅広いスキルが必要です。
ハードウェアやOS | シェルプログラミングはもちろん、細部を知り適切な構成を実施できる。特にLinuxのスキルが求められる。冗長構成の設計なども必要 |
---|---|
ミドルウェア | データベースなど、Webシステムで使われるソフトウェアの知識。MySQLやOracleなどが代表的 |
ネットワーク | TCP/IPやHTTPに代表される、ネットワークの知識 |
クラウドサービス | AWS、GCP、Azureなどの構築・運用経験。適切な提案能力も求められる |
セキュリティ | Webサービスを提供する側としての、OS、ミドルウェア、ネットワークそれぞれに関する深い知識 |
信頼性やパフォーマンス向上 | OS、ミドルウェア、ネットワークそれぞれに関する監視やログ解析、チューニングの技術 |
各企業の募集要項を見ると、以下の内容も見受けられます。
- 1日10万人以上が訪問するサービス
- 1秒当たり2万アクセス以上のトラフィックを安定して処理できるシステム
このため、大規模システムの構築・運用経験を持つ方は有利です。
▼Webサービスを開発できるスキル
SREエンジニアは自動化や効率化を実現するため、創意工夫が求められます。
構築や構成を変更する際には、インフラ構成をコードとして書き残すことが必要。
自らプログラミングを行ない、必要な機能を実装したり、ツールを作成したりするスキルも欠かせません。
このため代表的なプログラミング言語を用いて、Webサービスを開発できるスキルが必要です。
単に開発メンバーとして携わっただけではなく、パフォーマンスや機能向上を実現した経験も求められます。
RubyやPHP、Java、Pythonといった言語のうち、どれかをマスターしているとよいでしょう。
▼コミュニケーションスキルも重要
SREエンジニアは、システムのライフサイクルにおける多くのフェーズに影響します。
チーム単位で働く場合も多く、さまざまなステークホルダーと関わることも特徴の1つ。
動き方次第でプロジェクトが成功するかどうかが変わるといっても、過言ではありません。
このため、SREエンジニアにはコミュニケーションスキルも求められます。
なかでも明快に説明し伝えられるスキルと、相手が話した内容を正確に把握できるスキルは欠かせません。
加えてプロジェクトを円滑に進めるため、譲り合う精神も持つとよいでしょう。

![仕事内容と求められる役割、必要なスキルを徹底解説:r000021003618 | PARAFT [パラフト]](/files/alias_m1/000021003618/kna2dsk80dxcac8f60g9pa5n.jpg)
SREエンジニアとは?
この記事が気に入ったらいいね!しよう
PARAFTの最新記事をお届けします。
┳CAREER CHANGE┻
SREエンジニアとは?
WRITER
編集部チーム
PARAFT編集部
SREエンジニアは、広範囲にわたる高いスキルが求められる職種。職場で評価される存在となるためには、役割をしっかり認識することが重要です。 もし十分なスキルがある方は、チャレンジするとよいでしょう。 一方で足りないスキルがある場合は先にインフラエンジニアやシステム開発プロジェクトに携わり、実力をアップしてからトライすることもお勧めです。 フリーランス専門のエージェントPROsheetの活用 IT系の職種としてフリーランスになる人は、PROsheetなどの専門のエージェントを活用することで、フリーランスとしてのスタートアップをサポートしてもらうことができます。案件の獲得方法やご稼働後のサポートを受けることができます。特にIT系の職種の案件が多くなっており、活用することで得られるメリットはたくさんあるので、まずは下記URLから登録面談にてお気軽にご相談ください。 PROsheetの会員登録ページへ飛びます