プログラマはインフラをどの程度やるべきか

Share on:

プログラマが WEB 開発を行うには、当然インフラ環境を構築する必要がありますが、インフラエンジニアでもないプログラマがどの程度インフラについての知識があれば良いのかについて解説します。

AWS の使い方がわかっている程度でいい

結論から言うと、AWS の使い方がわかっていて、AWS で WEB サービスを公開することができる程度となります。

WEB サービスによって AWS の使うべき機能が違うので一概には言えませんが、基本的には、「EC2、RDS、S3」が使えれば、WEB サービスの公開はできます。

もう少し具体的に解説すると、「EC2、RDS、S3」は以下のようなインフラ知識が必要になります。

  • EC2:LinuxやNginxを扱うことができる
  • RDS:データベースの構造やSQLを理解している
  • S3:ストレージの役割を理解し、画像などのコンテンツを保存することができる
  • インフラに関しては、以上の知識があればプログラマとしてやっていけると思います。

    オンプレミスサーバを触る必要はありません

    オンプレミスというのは、自社で物理的なサーバやネットワーク機器を運用することです。

    AWSなどのクラウドサービスによって、オンプレミスである必要はなくなってきたので、物理的なサーバやネットワーク機器を使えるようになる必要はありません。

    クラウドといっても、Amazonなどのクラウド事業者はオンプレミスで運用しているわけなので、物理サーバやネットワーク機器がどのように動いているかを知っておくことは大事だと思いますが、プログラマとしてのスキルを効率よく上げることを考えると、わざわざオンプレミスの知識を身につける必要はないです。

    インフラエンジニアになるなら深く学ぶべき

    もしプログラマの域を超えて、インフラエンジニアとしてやっていきたいのであれば、オンプレミスの運用経験や、AWSサービスの操作方法、ネットワークの知識など、それぞれのインフラ分野で深い知識が必要になります。

    AWSでサービスを運用するだけのインフラエンジニアなら、そこまで深い知識は必要ありませんが、オンプレミス運用をしている大企業で働くとなると、物理サーバとネットワーク機器をケーブルで繋いだりしないといけないので、より深い知識が求められます。

    フリーランスのプログラマなら開発環境が作れれば問題ありません

    フリーランスの場合、インフラというセキュリティに関わってくる部分は任せてもらえないことがほとんどですので、インフラを触る機会はほとんどないと思います。

    なので、フリーランスとして働くだけなら、自分のPCに開発環境を作れるレベルでもやっていくことは可能です。

    ただ、正社員になってインフラを触るようになったり、個人開発でWEBサービスを公開するときにはインフラの知識が必要になってくるので、やはりAWSを扱えるくらいの知識は持っておいた方が良いでしょう。

    フロントエンドエンジニアやデザイナーはインフラの知識はほぼ必要ない

    インフラというのはネットワークとサーバなので、サーバサイドエンジニアは知識が必要になってきます。

    ただ、フロントエンドエンジニアやデザイナーはユーザ画面とサーバサイドの連携の部分を担当するので、その先にあるインフラまではほとんど気にする必要がありません。

    開発環境を自分で作ることはあるかもしれませんが、AWSの勉強をするくらいなら、デザインのスキルを磨く方が良いです。

    どのようなエンジニアになりたいのかによって、学ぶべき知識は変わる

    あなたがフロントエンドかサーバサイド、もしくはインフラエンジニアのどれになりたいのかによって、学ぶべきインフラの知識は変わってきます。

    さらに言うと、フルスタックエンジニア(何でもできるエンジニア)になりたいのであればインフラの知識は必要ですし、一つの分野を極めたいのであれば、インフラの重要性は低くなります。

    AWSが流行っているから勉強するのではなく、仕事での需要と自分の将来像を考えて、学ぶべき知識を決めていきましょう。