ユーザー体験を縁の下で支えるインフラエンジニア、その使命とは?
ところで「インフラエンジニア」の「インフラ」とは、「ITインフラ」のことであり、システムやインターネットを使用するために必要なサーバーやネットワークを指す。つまり、IT分野における「インフラ」はサービスを支える基盤であり、クラウドサービスでインフラを構築するgrasysではクラウドの管理がインフラエンジニアの仕事になる。
障害が起きた際には復旧のため対応し、使用しているミドルウェアに脆弱性が発見されればパッチを当てる。使用しているOSのサポートがなくなれば更新したり、サーバーのスペックを下げてコストカットを図ったりすることも仕事のうちだ。ユーザーに快適にサービスを使ってもらえるよう、サービスの土台となるITインフラの運用を実施するのが「インフラエンジニア」というわけだ。
なお、grasysのインフラエンジニアは、「PlayStation」「Nintendo Switch」「Steam」「Xbox」などのコンソールゲーム、有名コンテンツのブラウザゲーム、ブランドのホームページなどのインフラ環境の運用も手掛ける。さらに、Google CloudやAWS、Azure環境で運用していたシステムの他サービスへの移設も行う。角田氏も、日本や欧米リージョンで同時に25~30万人が接続する大規模なゲームサービスのインフラを担当しており、Google CloudやAWSで一部マルチクラウド的な使い方もしているという。ストレージにはCloud Storageを使い、BigQueryで大規模データの収集も可能にしている。
また、AWSを使った有名ブランドコンテンツのインフラも角田氏が管理しており、週に1回の人気記事が掲載される時には、通常の200〜300倍というトラフィックが集中する。そうした高負荷にも耐えられるよう、キャッシュやロードバランサーを活用し、負荷を分散している。インフラを最適な状態にチューニングすることは、ユーザー体験の質を担保する上で非常に重要であることは明らかであり、使命感をもって仕事に取り組んでいることがうかがえる。
知識ゼロからエンジニアとして活躍、角田氏の「無限ループ」勉強法とは?
grasysでは安定稼働のためのシステムインフラの設計・構築に加え、24時間365日の運用保守も実施している。そうした業務を遂行するうえで角田氏が必要と感じたスキルは、以下の4領域にまたがっているという。
- OS:チューニング、コマンドなど
- ミドルウェア:NGINX、Apache、proxy系、DB、Terraform、env系など
- ネットワーク
- クラウドサービス:Google Cloud、AWS、Azureなど
まったくの初心者だった角田氏が、どのようにしてこれらのスキルを身に着けていったのか。角田氏はその学習方法をスクリプトで次のように表現した。
まずはドキュメントや関連記事を読むなどして調べる。ある程度知識を入れたところで、仮説を立ててやってみる。さらに、わからない部分があればまた調べて、仮説を立て直してやってみる……というように、ひたすら触って、トライアンドエラーを繰り返す。
「これを無限ループで繰り返すと、いつしかそれっぽい形になる。また、それぞれで学んだことの点と点が線になるように結びつき、つながっていく。そしてある時、ハッと『こういうことだったんだ』と全体が見わたせる瞬間がやってくる」と角田氏は語り、「いつかは点がつながってくると信じて勉強を続けていった。ノリと勢いで飛び込んだ世界でもあり、知識を身に着けていく作業はとても辛いことがあるが、点と点がつながって世界を見渡せたときの爽快感は何ものにも代えがたい」と笑顔を見せた。
そしてインフラエンジニアについて、スキルを学び続けることと共に大変だと思われているのが、24時間365日の運用保守だろう。しかし、ずっと集中して働いているわけではなくアラートが来たら対応するのみで、さほど苦ではないという。実際、角田氏も子育てしながら働いており、「何かあったら対応する」スタイルでプライベートとの両立は十分にできると語る。