半年前の私

はじめに

こんにちは!タイトルにもあるように今回はインフラをメインに仕事をやり始めて半年が経過したため振り返ってみたいと思います。

私は約半年前に東京でプログラマ(アーキ面)として働いていたのですが若いうちしかできないと思い、思い切って札幌のWeb系の会社に転職をしました。

そこでインフラチームに配属され、現在でもメインでインフラをやっています。

インフラに興味がある方、開発がメインでインフラの気持ちが知りたいかたなどに読んでいただけたら嬉しいです!!

半年前の私

実際に東京で働いていた時はSIerの会社で働いていてメインはJavaとOracleという典型的なSIerで開発をしていました。

先述したように、ゴリゴリ開発をした経験はあまりなく、どちらかというとアーキテクトチームに所属していたため CSRFのためトークンを! とか セッションダンプとってこれどう?? とかばっかりやっていました。

他にもツールを作成したり、オフショアにやってもらったテスト受け入れだったりな感じの仕事が多かったです。(実際、かなり成長できました!!)

そんなこんなで もっと開発したい と思うようになり、Web系の会社に転職することを決めました。(結局インフラチームとなりましたが。)

転職先を探しているときに札幌が目に入り、幼少期北海道に住んでいたこともあり転職をきめました。

さて、前置きが長くなりましたが半年前の私のスペックを下記に示します。

もちろん、自分のPCにLinuxを入れているなんてことはなく、インフラ面はほとんど初心者の様な感じだったのです。

幸いにもアプリケーションのデプロイはしたことがあったのでLinuxのコマンド(基本的なものに限る)は触ったことがあり、少しはできたのですがそれ以外はほぼわからない状態でした。

インフラ回りの勉強を必死に!!

入社したての頃はそんな感じでインフラの知識はかなり弱く、とてもやっていける状態ではありませんでした。

そんな経験があったからこそ、突如インフラやってといわれたときのために これだけは押さえておけ!! というものを書きたいと思います。

その1 SSH

Linuxのコマンドでサーバー内を色々できないと話になりません。

その前にssh関連のことを勉強しましょう!!

sshはインフラ回りをやるうえでは必須です。

そのため、 公開鍵、秘密鍵、known_host, authorized_keys は最低でも押さえておきましょう。

その2 AWS

AWSはもうどの現場でも必須の知識となっているでしょう。

AWSでは様々ばサービスが提供されていますが中でも

は知識として知っておかないといけないきがします。

⇒インフラな人と話すときはこれくらいはないとAWSの話はできません。

+αとしてRoute53(DNS周り)、ELB(ロードバランサー)、Lambda(サーバーレスランタイム)とかもあると良いかもしれません。

その3 仮想化

KubernatesやDocker, Vagrant(VBox)などWindowsまたはMacの中に仮想環境を作成してその中で開発をすることが多いです。

そのため、これらの知識もあるに越したことはありません。

Vagrantとかは導入も簡単ですぐにCentOSやUbuntuの環境をマシンに入れることができるためオススメです!!

その4 Shell, Bash

これはいろいろなコマンドをファイルとしてまとめて処理を自動化しようというものです。拡張子.shのものです。

インフラをやっていると結構、自動化したいものが多く、shellを書くことが多いです。そのため基本的なshellの書き方はインターネットとかでもたくさんあるので勉強をしておくと役に立ちます!!

おまけ

私の所属するチームでは他にもさまざまなツールを使用していますが、中でも多様しているのがansibleです。

これは構成管理ツールで、管理対象のサーバーに対してansibeで記述した処理を実行することができます。

ansibleによって環境構築を自動化したり、大量のファイル転送の自動化、何より自動でやってくれるため、人的エラーの発生を抑えることができます。(人間がやると何かしら不手際が発生することが多いため自動化が大好きです)

ansibleもドキュメントはかなりたくさんあるため、オススメです!!

最後に

最近はオンプレからAWSへの移管タスクが結構降ってきて移管作業に追われています。

移管作業に伴いDNSまわりの知識やSSL化の知識、、などなどの知識も必要となってくるため、日々勉強になっております。

インフラは開発者からすると結構煙たがられることが多い感じがしますが、インフラは基盤であり大事であると思います。