エンジニアの種類と特徴について
前の記事でも触れましたが、エンジニアと呼ばれる人たちには、さまざまな種類があり、担当する領域が違います。
本記事ではエンジニアの種類や特徴についてまとめてみたいと思います。
エンジニアの種類
エンジニアの技術は作るものや、関わる領域によって技術も資格も全く違います。
ここでは領域毎の特徴をまとめます。必要な資格に関しては別の記事でまとめていきたいと思います。
コンピューターシステムの開発において提案から設計、開発テストまでの一連の流れに携わるエンジニアには、大きく分けるとアプリなどを開発している領域の「アプリ、開発エンジニア」と、そのアプリなどを開発する環境を作っている領域の「インフラエンジニア」に分かれます。
インフラエンジニア
「インフラ」とはinfrastructure(インフラストラクチャー)の略で、
「基盤」「下部構造」といった意味があります。
イメージされるのは、電気や水道、道路など生活に欠かせないものがあると思います。
インターネットの世界でもなくてはならない、基盤の部分を担当するエンジニアの事を指します。
インフラエンジニアの中でも「サーバーエンジニア」と「ネットワークエンジニア」の2つに大きく分類分けすることができます。
サーバーエンジニア
コンピューターシステムを運用するサーバー機器の構築や、設定を行うエンジニアを指します。
そもそもサーバーとはサービスを提供している企業側のコンピュータを指しインターネットを介して私たちユーザーと繋がっています。WEBページの閲覧、メール、ゲーム、SNSなどインターネットに関わるあらゆるサービスに用いられているものになります。
サーバーには「物理サーバー」と「仮想サーバー」があります。
「物理サーバー」はこれです⇓
会社のどこかにきっと見たことある方もいますよね!
会社のメール機能や、業務システム、機密情報などさまざまなシステムを入れておく箱のようなイメージです。
特徴としては貯めておく情報が多くなれば、1基の容量では賄えず、物理的に機器を置くスペースも大きくなっていきます。
ですが、個別に管理している事で、1基に障害が出てもほかの部分に影響が出ないことがメリットとなります。
対して「仮想サーバー」とは、1台のサーバーの上に複数の仮想的なサーバー環境を構築している仕組みを言います。
仮想化されたサーバーは複製が簡単で、災害などに備えてバックアップを取ることができます。
ですが、仮想サーバーの場合一つの仮想化サーバーに異常があると他の部分にも影響が出る可能性が高いことがデメリットになります。
こんなイメージですね。
また、自社内の設備に機器を設置してシステムを運用することを
「オンプレミス」と言い、外部の事業者が用意した機材やソフトウエアを利用して運用することを「クラウド型」と言います。
「オンプレミス」場合は外部攻撃に強く、機密保持の面で安全性が高いことがメリット。
デメリットは初期導入コストがかかり、スペースを確保する事と保守などを行うための人件費がかかります。
一方で「クラウド」は、初期コストがかからない事がメリットになり、管理維持は外部業者が行う為、人件費などのランニングコストが安いことになります。
ですがデータを外部に持ち出すことになるので、セキュリティ対策は万全に行う必要があります。
<補足>サーバーのイメージ図
(サーバー用ハードウエア:ブレードサーバ・ラックマウント・IBM pシリーズ)
ネットワークエンジニア
PCでシステムを使う為には、サーバー内にあるシステムを引っ張り出す事が必要になります。
もっと身近に捉えると、PCのExcelで作った資料を印刷したい時にプリンターに
を飛ばしますよね?その時にもネットワークが整っていないと印刷はできません。
つまりシステムを使用する為にサーバーとPCを繋いだり、PCとプリンターを繋いだりする為に必要不可欠なものです。
簡単に例えるなら、自宅(PC)からマンション(サーバー)にたどり着くまでの道を作るのがネットワークエンジニアです。
(ネットワーク用ハードウェア:ルーター・スイッチ・ファイアウォール)
データベースエンジニア
その名の通りデータベースの開発、設計開発、運用保守を行うエンジニアです。
開発の中にはデータ管理の為に、どのサーバーを使うのかを選択したりなんてこともあります。
データベースは、膨大なデータを貯めることができる事はイメージしやすいですが、貯めるだけでなく、グループ毎に整理したり、検索するとすぐに取り出せたり、新しい情報がある場合には更新をしたりと様々な機能を持ちます。
最近のビジネスではビックデータ(一般的な管理、処理では扱うことが困難なほど巨大で複雑なデータの集合)の活用が注目されており、技術は重要な役割を担います。
アプリ・開発エンジニア
インフラを基盤に開発されるアプリを作るエンジニア。
一般的皆さんが持つエンジニアのイメージは、おそらくアプリ側のエンジニアであることが多いと思います。
アプリとはケータイのゲームなどのイメージが強いかと思いますが、インフラの上に立つシステム全般を指す場合もあります。
プログラミング言語と言われるインターネット内で使用される特別な言語を用いて、サイトを作ったり、ゲーム、システムを作っています。
WEBエンジニア
WEBサイトやWEBアプリケーションの設計開発、運用保守を行います。