という疑問を解決する記事になります。
記事執筆者:オザック
バックエンドエンジニア歴9年以上、年収1000万のエンジニア、オザックです!
某有名R社に勤めていた過去があり、副業を含めて関わってきたプロジェクトは20以上。
AWS SAAも持っていてインフラエンジニアとしても様々なプロジェクトをやってきた。
エンジニア未経験や、エンジニアなりたての頃は
とWebエンジニアの区分があまりわからないことも多いと思います。
今回はバックエンド兼インフラエンジニアの経験が長い僕が、バックエンドとインフラエンジニアの違いについて解説していきます!
2分程度で読み終わるので、少しでも興味のある方はぜひ読んでみてください!
目次
バックエンドエンジニアとインフラエンジニアの違いは?
端的に言うと
バックエンドとインフラエンジニアの違いは「バックエンドはデータベースとのやり取りのプログラムを書くこと、インフラはバックエンドのプログラムを動かすサーバを構築・運用保守するエンジニア」です!
Webサービスの簡易システムフロー図
図のようにサーバの中でバックエンドのプログラムというのは動いています。
インフラエンジニア | そのサーバを構築・運用する |
バックエンドエンジニア | バックエンドプログラムを開発する |
ということになります!
バックエンドエンジニアの主な業務
バックエンドというのはプログラミングをしてデータベースにデータを書き込んだり、画面に表示するフロントエンドにデータを渡したりするプログラムを開発する業務となります。
バックエンドの主な業務
バックエンドエンジニアは図でいうと③にあたる、プログラムを開発するのが主な業務になります。
つまりバックエンドエンジニアはフロントエンドのプログラムに要求されたデータを渡したり、保存したりするプログラムを開発するエンジニアのことです。
例えば
- データベースからデータを出す
- データベースにデータを保存
などを実装します。
インフラエンジニアの主な業務
その点インフラはバックエンドやフロントエンドが開発したプログラムを、動かすためのサーバを構築、保守運用する業務となります。
例えば
- サーバを構築してプログラムを動かせるようにする
- サーバに異常がないか監視する
- サーバをスケールアウトする
- サーバを自動でスケールできるようにする
などを構築、保守運用する業務です。
昨今だと殆どのサービスはクラウド(AWSやGCP、Azureなど)で構築・運用していて、理由はマネージドサービスだからです!
マネージドとは?
マネージドとは構築・設定すれば自動でスケーリングやスケールダウン、異常の監視をしてくれる、クラウドならではの機能です。
そのためクラウドが使えることがインフラエンジニアとしては重要な知識になります。
未経験者はバックエンドとインフラエンジニアどっちを選ぶべきか?
未経験者は迷っているのであればバックエンドエンジニアを選ぶべきです!
未経験者はバックエンドエンジニアが良い3つの理由
- バックエンドの方がインフラよりも採用枠が多い
- 未経験からインフラはイメージがつきづらく難しい
- バックエンドからインフラを学ぶことは独学で可能
バックエンドエンジニアの方がインフラエンジニアよりも採用枠が多い
先程説明したとおり、バックエンドエンジニアはプログラミングをして開発をします。
そうすると日々プログラムの仕様変更や機能追加などで実装するため、それなりのエンジニアの人数が必要になってきます。
その点インフラエンジニアは一度インフラを構築すると、後は保守運用のための
- サーバ監視
- スケールアウトの設定
- ログを吐き出すようにする
- エラー通知
などを設定すればそこまで色々とやることは少なくなってきます。
なのでそもそもインフラエンジニアというのは多くのエンジニア数を必要としないです。
そのためバックエンドの方がプロジェクトに必要な人数が多く採用されやすいため、未経験者はまずはバックエンドエンジニアからやるのがおすすめです!
合わせて読みたい
【1日30分】未経験からバックエンドエンジニアの学習ロードマップ
未経験からインフラはイメージがつきづらく難しい
全くのWebエンジニア未経験だとインフラエンジニアの業務はあまりイメージがつきづらく難しいです。
そもそもWebサービスというものがどう動くかも理解しておらず、
- Webの知識
- プログラミング言語の知識
など知らないことが多い中、いきなりWebサーバの構築などをやろうとするのは、難易度が高いです。
そのため、まずはWebサービスが動く仕組みを理解するためにもバックエンドエンジニアをやるのをおすすめしています。
バックエンドからインフラを学ぶことは独学で可能
バックエンドエンジニアというのはフロントエンドにもインフラにも多少の知識が必要になります。
例えばスタートアップはバックエンドエンジニアがインフラごと担うことが多いです。
理由はこのシードやシリーズAくらいのフェーズではインフラ専属のエンジニアを雇う程の余力や必要性もないからです。
そのためバックエンドエンジニアはインフラにも仕事の幅を広げやすいです!
またバックエンドエンジニアはWebの仕組みやサーバの知識はある程度理解しているので、インフラを独学で学ぶのも割と容易です!
AWSを独学で学びたいならSAAを取る勉強をするのが手っ取り早いです!
バックエンドエンジニアになるには?
バックエンドエンジニアになるには以下のロードマップが良いです!
- 未経験者はまず学びやすいプログラミング言語を選ぶ
- その言語についてUdemy講座などで独学で勉強する or メンターを見つける or スクールに通う
- その後企業に就職して実務で技術力を磨く
- バックエンドは知識の幅が広いので、続いてWeb開発における様々な領域を吸収していく(DBやクラス設計、Webの仕組み、API、セキュリティ、インフラなど)
- インフラも出来るとテックリードも出来るようになっていく
まず未経験者であればおすすめのバックエンドのプログラミング言語は
バックエンドおすすめ言語
- PHP
- Ruby
- Python
になります!
これらは動的型付け言語と言って初心者でも理解しやすく学びやすいバックエンドの言語です。
特にPHPは日本でも多く使われているのでおすすめです!
PHPを学びたい方はこちらの記事がとても参考になります!
インフラエンジニアになるには?
インフラエンジニアを目指す場合はまずは一番シェアの高いクラウド、AWSを学ぶのがおすすめです!
- AWS
- Azure
- GCP
の順でシェアが多いので、まずはAWSを学ぶと良いです。
勉強方法はAWS SAA(ソリューションアーキテクトアソシエイト)の資格をまずは取ると良いです!
僕自身もAWS SAAを持っていますが、SAAの資格取得をおすすめするのは
- 勉強するだけでAWSの基礎が学べて
- ただ暗記だけというのではなく、ユースケースに対して一番良いソリューションを答える問題なので実戦向き
という点からです!
詳しくはこちらがおすすめ!
バックエンドとインフラエンジニアは違う!未経験者はまずはバックエンドが良い
今回はバックエンド兼インフラエンジニアをやっているエンジニアの経験から、バックエンドとインフラエンジニアの違いについて解説しました!
未経験でどっちのエンジニアを選ぼうか考えている方はまずはバックエンドから始めると良いです!
未経験からバックエンドエンジニアになるにはこちらの記事がとても参考になります!
すでにバックエンドエンジニアをやっている方はインフラエンジニアになるにはこちらの記事がとても参考になります!
バックエンドとインフラが多少出来るようになったら続いては副業をしていくと、更にスキルが向上して転職でも有利になってきます!