理由あって、インターン!〜アカツキさんで2週間インターンした話〜

インターンに行ってきました

縁あって、アカツキさんのところで2週間インターンに行かせてもらいました。 この記事は、その成果報告と感想を兼ねた記録です。

「理由あって」というタイトルですが、そこまで深い意味はないです。

前日譚

別の機会で東京に来たときに、アカツキのエンジニアの方とイベントで知り合い、その縁でインターンとして2週間お邪魔しました。

aniben.connpass.com

ちなみに、その時やったLTです

www.slideshare.net

そこから自分の就活も始まって、色々と縁があって今回のインターンに繋がりました。

さて、アカツキさんといえば八月のシンデレラナインやサウザンドメモリーズといったオリジナルタイトルや、 その他にも共同開発で数々の大規模タイトルのゲームを開発している会社さんです。 ハチナイはアニメ化も決まりましたし、他にも自分が遊んでいるゲームがあったりします。

そんなところでインターンができるということで、ワクワクしながら準備したり色々調べたりしていました。

インターン

初日

自分の配属はある大規模ゲームタイトルのサーバチームに決定。 事前の面談で「実際にやる内容は当日に決めよう」ということだったので、 インターン初日に「じゃあ何をしようか?」というところからスタートです。 結果、現段階で出来そうなタスクの候補の中から面白そうと思ったものをやらせてもらえることに。

色々話し合った結果、タスクは

  • 検証用の環境のローカル化
  • 負荷試験を行うための環境の構築

の2つをやることになりました。

前半(1週目)

初日は事務手続きと開発環境のセットアップ、 2日目はコードを実際に読むだけといった感じでした。

インターンの前半1週間は、検証用の環境のローカル化をやっていくことに。 現状、サーバの検証は、AWS上に作られた検証用環境に検証用クライアントで接続して行っていました。 ただ、その場合だとサーバへの操作が思わぬ形で他の検証用クライアントに影響を与えてしまう可能性がある他、 複数クライアントが一斉に同じサーバへアクセスするので、何かあったときにログなどから原因をトレースしにくいと言う問題があります。

そのため、サーバ全体をコンテナ化して手元の PCで動かせるように調整と変更を行っていくことに。 現状、AWSの機能に依存した構成となっている箇所がいくつかあり、完全にローカルで動かすのは無理ですが、 とりあえず動かせる状態にすることが出来ました。 また、検証用コマンドを発行するための仕組みが必要とのことだったので、各種コマンドを打てる検証用ターミナルも作成。 実際に検証を行う方に使っていただいたところ、課題点や改善点もあったものの好評価をいただけました。

この手の、いわゆる内部ツールというものは直接的にユーザーさんには関係ありませんし、そもそも知られることもありません。 ただ、こういったツールのおかげで安定した質の良いゲームやサービスが成り立つわけで、外からの光が当たらないところとはいえとても重要です。 自分はこういった「地味で目立たないけど、裏から支える」という考え方はとても好きですし、 自分のスキル的にも働き出したらそういう箇所を担当することがほとんどでしょう。 実際にそういったツールを作って、色々と体験できて非常に良かったです。

休日

2019/3/9,10は、アイドルマスターシャイニーカラーズの1stライブがありました。 残念ながら現地ではないのですが、LVで参戦。 非常に良かったですが、ここでは「アイマス最高!」とだけ書いておきます。

その他、関東に住んでいる知り合いと色々飲みに行ったり、 同じ大阪に住んでる人と何故か東京で会ったりと、楽しい休日を過ごせました。 インターンくらいでしか東京に遊びに行ったりできないので、とても良かったです。

後半(2週目)

土日を挟んで、後半は負荷試験環境をECS上にCloudFormationを使って自動構築していくというタスクをやりました。 CloudFormationはAWS上のリソースやその構成をyamljsonで記述して、 それをもとに自動で環境の構築ができるというサービスです。 生のyamljsonをダーッと書いていくのはなかなかつらいですし、 そもそも大規模な環境となると大変以前に無理ってレベルなので、kumogataというRuby製のツールを使っていろいろやってました。

github.com

自分は趣味でVPSを借りてサーバを建てて、そこでDocker上で色々動かしたり、 最近はお試しでGAEとかGKEとかを触って「すげー」とかは普段やってます。 が、AWSをガッツリと触るのは初めてですし、個人とは全く違う規模の構成を見て実際に触ることも出来てとても楽しかったです。

細かい内容は内部的な話になるので書けませんが、 本番と同じインスタンスタイプのマシンを台数を減らして配置して、試験用に設定を変更した状態でデプロイを行う…という感じです。 既存の設定や構成を読んで手を加えて改良するというのは、好きまではいきませんが嫌いじゃないところなので、面白さと楽しみのあるタスクでした。

その他

ランチに誘ってもらったりして、色んなお話が聞けました。 あのゲームの「実は…」とか、あのイベントの「本当は…」とか、1人のオタクとしてめっちゃ面白かったです。

あと、オフィスがすごい綺麗でした。 自分は画像フォルダがオタクか肉/ラーメン/寿司の写真かクソリプに使える画像しかないという感じなので、写真は撮ってないです。 が、めっちゃオフィスめっちゃきれいです。 こんな環境なら快適に働けそうだなぁって感じでした。

最後に

前々から「大きなサービスのインフラってどんな感じになってるんだろう」というのが気になっていたので、 今回はそういったところに関わることが出来てとても良かったです。 また、決して表には出ませんが、検証ツールというとても重要なものの開発もできました。

すごく学びの多かった2週間であり、楽しい2週間でした。 期間中、様々な形で関わってくださった方々、ほんとうにありがとうございました。