あらゆる人と、metapsが交わる場所

エンジニア開発合宿2019に行ってきた。

メタップスでエンジニアをしている山浦です。

 

未経験からエンジニアに転職し、早2ヶ月、コード書きながら、常に頭かかえています。笑

周囲にできるエンジニアが多く質問や相談など、遠慮しがちな自分を見かけ、

 

上司が一言

エンジニア開発合宿しよう!!

皆が少しでも仲良くなり、気軽に相談できるように。
チームがより、いちがんとなるように。そして、インフラを理解するために。

合宿行くぞー!!

唐突な掛け声で始まり、あっという間に、目的地や移動手段を確保。

そして…

 

f:id:meetaps:20200114120135j:plain

たびのしおりまで完成!

あっという間の出来事でした。
うちのフロントエンジニアの行動が早すぎる。笑

開発合宿当日

レンタカーを借りて、オフィスがある麻布十番を出発です。

f:id:meetaps:20200114120255j:plain

f:id:meetaps:20200114120356j:plain

途中で海ほたるに寄ることに。

海ほたるに初上陸が2名(そのうち1名は私)いることで終始、ハイテンションでした 笑

 

ランチは、海ほたるで海鮮丼や、ちーば丼(海鮮丼+煮穴子やフライ?)などを食べ、お腹いっぱいに!

 

f:id:meetaps:20200114120446j:plain

昼食後の眠気を抑えつつ、車を走らせること1時間…!

圧倒的、開放感!!

ようやく到着!まず一言、

広いっ!! 

f:id:meetaps:20200114120517j:plain

開放感がすごいですね!

都会の喧騒から離れ、整備された芝が気持ちいい!

圧倒されるあまり、言葉を失う3人 

f:id:meetaps:20200114120559j:plain

(テニスコートありますよ…)

(僕たちが泊まる部屋って、どの建物です?)

(広過ぎて、わからん)

作戦会議

無事に、部屋にたどり着けた6名

ふぅ…
それじゃあ、一休みしてから
施設内の探検にでも行きますか…

 

(神の声)
これは旅行ではなく、開発合宿だ。
切り替えて開発するがよい.....

 

f:id:meetaps:20200114160233j:plain

 

あやうく、平日の昼間に、優雅に昼寝して散歩するとこでしたね。
あぶないあぶない。

開発合宿と、報告会

登壇したメンバーや参加したメンバーから
気になった技術などの話に。

 

登壇した山北のスライドはこちら

speakerdeck.com

 

f:id:meetaps:20200114183553j:plain

稼働しているインフラのコード(Terraform)を解説

現在、メタップスで開発している多くのサービスは、Terraformでコード化されています。

 

AWSなどのインフラ部分の構築を手動で行ってしまうとノウハウが溜まりにくく、もし間違ってしまったときに気付きにくい。

 

Terraformで、コード化をすることで、
gitで管理も容易で、ノウハウも溜まりやすく、
同様の構成で新たにサービスも作成しやすいなど多くの利点があります。

 

しかし、
インフラをコード化するにあたり、Terraformを理解することはもちろんAWSについても、深く理解する必要があり、

 

学習コストが高く、なかなか手が出ませんよね。

 

そこで今回の合宿では、
そんな敷居高めのTerraformのコードを解説しつつ、現在の構成を手動で再現する講座が開催されていました!

 

Terraformを行う上での注意点やノウハウについての説明があり 例えば、

  • ディレクトリ型 vs ワークスペース型の利点/欠点からワークスペース型を選んだ理由は、ディレクトリ型では本番とテストで違う環境になる可能性があり、ワークスペース型は、運用が不便になるが行う価値はあること
  • Terraformは、未だにバージョン0.xであり、v0.11→v0.12の様な破壊的な変更があるので、必ずバージョン指定すること
  • tfstateファイルはS3などのストレージに置いておくことで、同時作業でロックがかかることがなくなり、リモートでの作業もできる様になることから、チーム作業を想定するのであれば、ストレージにおいておくこと。
  • Terraformを使用する以上は、手動で変更しない。緊急時に手動で変更した場合は、tfstateファイルは変更されても、main.tfstateは更新されないので修正が大変になること

上のような基本の考え方をたたき込まれた後に、
実際の構成を再現して行きました。

 

Terrafromを作成する場合は、0から作るのではなくAWS Terraform modulesからmoduleごとのコードを参考にして作成して行きましょう。

 

その中でも、青いチェックが入っているものは
Hashicorp公式で動作が確認されているものなので安心です。

 

時間が来るまで、コードを見ながら手動で作成して行き、

  • VPC
  • VPCペアリング
  • Logクラスタの作成(Fluentd, Datadog)
  • ECSクラスタの作成

まで進んだところで、この日は終了。

 

次の日には、場所をかえてもくもく開発したり

 

f:id:meetaps:20200114120815j:plain

 

詰まっているところを話し合ったりと、 なかなか充実した開発合宿でした。

 

f:id:meetaps:20200114120845j:plain

帰り際…

f:id:meetaps:20200114121131j:plain

テニスしたいっす

 

f:id:meetaps:20200114121214j:plain

やりますか!

f:id:meetaps:20200114121256j:plain

…合宿、楽しかったですね!(筋肉痛)

最後に

今回の1泊2日のエンジニア開発合宿では、
学習コストが少し高めで、踏み出しにくかったTerraformによるインフラのコード化について、しっかり学習することができました。

 

インフラコード化しておくことで、
何をどのように組み込んでいるのか分かりやすいので、 学習しやすいかったですね。

 

合宿のおかげで質問もしやすくなり、
楽しくコード書けているので、本当にメタップスに入社してよかったです!

 

まだまだ、エンジニアは募集しているようなので
少しでも気になるという人は、ご連絡お待ちしてます!