はてなでインフラ研修を受けました

11/20に株式会社はてなにアルバイト入社してちょうど5ヶ月経ちました.

インフラの事をほとんどわかっていない状態からスタートし,実務のタスクをこなしつつ研修を受けていました.

そして先月にそのインフラ研修を終えたのでそのレポートを書いていきます.

Go言語研修

まず最初にやったのはGo言語の研修でした.

はてなではgo言語の採用が進んでおり,mackerel-agentdroot等が実際にgo言語で作られています.

研修としてA Tour of Goを進めました.

defer, slice, goroutineなどを学びすぐ手を動かして試せる環境として良いサイトだと思います.

github.com

ISUCON4予選スコアアップ

次に行った研修はISUCON4の予選を動かしスコアアップを試すというものでした.

そもそも,ミドルウェアの設定について全然知らない状態から始まったため,

実際のISUCON4予選でスコアアップさせた記事を見て進めていきました.

confファイルのパラメータを調整していきながら,

  • どれくらい設定するファイルがあるのか
  • どんなパラメータがあるのか

を知っていきました.

設定を変えたあとはMySQLにインデックスを貼ったり,アプリケーションを変更したりして点数を見ていくと,

インデックスを貼った事による点数の増加が一番大きく,やっぱり「DBのチューニングが大事」というのをよく実感しました.

という感じでISUCONの研修は,模範解答から見て作ったものが多かったですが,

どういうときに何を設定すればいいのか多少見当がつくようになりました.

次回のISUCONは参加してみようと思います.

github.com

ISUCON4予選の環境をChefで再現する

まっさらなamiからChefを適用してISUCON4予選のwebアプリケーションが立ち上がるようにする

という目標で進めていきました.

立ち上がるようになった後は,

  • 3層に分離し,HAProxyで負荷分散
  • 各層ごとにkeepalivedを用いて冗長化

と,少しずつ世の中のwebアプリケーションに似た構成を目標に進めていきました.

Chef自体やそれぞれのミドルウェアの動作,およびネットワーク周りでだいぶ苦労しましたが,

研修を受ける以前と比べて相当知識がついたと思います.

またその途中EC2-VPC環境でkeepalivedを簡単に使うcookbookを作成しました.

github.com

github.com

インフラ研修を終えて・これから

以上でインフラ研修が終わり,今は実際のタスクのみをこなしています.

以前と比べて,特に普段使うことになるChefやAWS周りに関してわかることが増えたと感じていて,以前よりもはるかにタスクをこなしたり自分でissueを見つけたりすることができるようになりました.

今はLambdaを使ったタスクを進めていています.

趣味のプロダクトではGASを使っているのもあり,サーバレスがマイブームになっているので短期的な目標として「サーバレスに詳しい人」を目指していきたいです.

そんな感じで,これからもよろしくお願いします!